Merge branch 'master' of git://factorcode.org/git/factor

db4
Daniel Ehrenberg 2009-01-09 15:55:17 -06:00
commit fa52490fe9
10 changed files with 27 additions and 24 deletions

View File

@ -48,7 +48,7 @@ HELP: output>sequence
} }
} ; } ;
HELP: reduce-output HELP: reduce-outputs
{ $values { $values
{ "quot" quotation } { "operation" quotation } { "quot" quotation } { "operation" quotation }
{ "newquot" quotation } { "newquot" quotation }
@ -57,7 +57,7 @@ HELP: reduce-output
{ $examples { $examples
{ $example { $example
"USING: combinators.smart kernel math prettyprint ;" "USING: combinators.smart kernel math prettyprint ;"
"3 [ [ 4 * ] [ 4 / ] [ 4 - ] tri ] [ * ] reduce-output ." "3 [ [ 4 * ] [ 4 / ] [ 4 - ] tri ] [ * ] reduce-outputs ."
"-9" "-9"
} }
} ; } ;
@ -84,7 +84,7 @@ ARTICLE: "combinators.smart" "Smart combinators"
{ $subsection output>sequence } { $subsection output>sequence }
{ $subsection output>array } { $subsection output>array }
"Reducing the output of a quotation:" "Reducing the output of a quotation:"
{ $subsection reduce-output } { $subsection reduce-outputs }
"Summing the output of a quotation:" "Summing the output of a quotation:"
{ $subsection sum-outputs } ; { $subsection sum-outputs } ;

View File

@ -14,8 +14,8 @@ IN: combinators.smart.tests
[ 6 ] [ [ 1 2 3 ] [ + ] reduce-output ] unit-test [ 6 ] [ [ 1 2 3 ] [ + ] reduce-outputs ] unit-test
[ [ 1 2 3 ] [ + ] reduce-output ] must-infer [ [ 1 2 3 ] [ + ] reduce-outputs ] must-infer
[ 6 ] [ [ 1 2 3 ] sum-outputs ] unit-test [ 6 ] [ [ 1 2 3 ] sum-outputs ] unit-test

View File

@ -15,8 +15,8 @@ MACRO: input<sequence ( quot -- newquot )
[ infer in>> ] keep [ infer in>> ] keep
'[ _ firstn @ ] ; '[ _ firstn @ ] ;
MACRO: reduce-output ( quot operation -- newquot ) MACRO: reduce-outputs ( quot operation -- newquot )
[ dup infer out>> 1 [-] ] dip n*quot compose ; [ dup infer out>> 1 [-] ] dip n*quot compose ;
: sum-outputs ( quot -- n ) : sum-outputs ( quot -- n )
[ + ] reduce-output ; inline [ + ] reduce-outputs ; inline

View File

@ -3,7 +3,7 @@
USING: accessors kernel arrays sequences math math.order USING: accessors kernel arrays sequences math math.order
math.partial-dispatch generic generic.standard generic.math math.partial-dispatch generic generic.standard generic.math
classes.algebra classes.union sets quotations assocs combinators classes.algebra classes.union sets quotations assocs combinators
words namespaces continuations classes fry words namespaces continuations classes fry combinators.smart
compiler.tree compiler.tree
compiler.tree.builder compiler.tree.builder
compiler.tree.recursive compiler.tree.recursive
@ -134,17 +134,19 @@ DEFER: (flat-length)
over 2 <= [ drop ] [ 2/ 1+ * ] if 24 swap [-] 4 /i ; over 2 <= [ drop ] [ 2/ 1+ * ] if 24 swap [-] 4 /i ;
: inlining-rank ( #call word -- n ) : inlining-rank ( #call word -- n )
[ classes-known? 2 0 ? ]
[ [
{ [ classes-known? 2 0 ? ]
[ body-length-bias ] [
[ "default" word-prop -4 0 ? ] {
[ "specializer" word-prop 1 0 ? ] [ body-length-bias ]
[ method-body? 1 0 ? ] [ "default" word-prop -4 0 ? ]
} cleave [ "specializer" word-prop 1 0 ? ]
node-count-bias [ method-body? 1 0 ? ]
loop-nesting get 0 or 2 * } cleave
] bi* + + + + + + ; node-count-bias
loop-nesting get 0 or 2 *
] bi*
] sum-outputs ;
: should-inline? ( #call word -- ? ) : should-inline? ( #call word -- ? )
dup "inline" word-prop [ 2drop t ] [ inlining-rank 5 >= ] if ; dup "inline" word-prop [ 2drop t ] [ inlining-rank 5 >= ] if ;

View File

@ -3,7 +3,7 @@
USING: accessors alien.c-types alien.syntax combinators USING: accessors alien.c-types alien.syntax combinators
io.backend io.files io.files.info io.files.unix kernel math system unix io.backend io.files io.files.info io.files.unix kernel math system unix
unix.statfs.freebsd unix.statvfs.freebsd unix.getfsstat.freebsd unix.statfs.freebsd unix.statvfs.freebsd unix.getfsstat.freebsd
sequences grouping alien.strings io.encodings.utf8 sequences grouping alien.strings io.encodings.utf8 unix.types
specialized-arrays.direct.uint arrays io.files.info.unix ; specialized-arrays.direct.uint arrays io.files.info.unix ;
IN: io.files.info.unix.freebsd IN: io.files.info.unix.freebsd

View File

@ -5,7 +5,7 @@ io.backend io.encodings.utf8 io.files io.files.info io.streams.string
io.files.unix kernel math.order namespaces sequences sorting io.files.unix kernel math.order namespaces sequences sorting
system unix unix.statfs.linux unix.statvfs.linux io.files.links system unix unix.statfs.linux unix.statvfs.linux io.files.links
specialized-arrays.direct.uint arrays io.files.info.unix assocs specialized-arrays.direct.uint arrays io.files.info.unix assocs
io.pathnames ; io.pathnames unix.types ;
IN: io.files.info.unix.linux IN: io.files.info.unix.linux
TUPLE: linux-file-system-info < unix-file-system-info TUPLE: linux-file-system-info < unix-file-system-info

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax ; USING: alien.syntax unix.types ;
IN: unix.statfs.freebsd IN: unix.statfs.freebsd
CONSTANT: MFSNAMELEN 16 ! length of type name including null */ CONSTANT: MFSNAMELEN 16 ! length of type name including null */

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax ; USING: alien.syntax unix.types ;
IN: unix.statfs.linux IN: unix.statfs.linux
C-STRUCT: statfs64 C-STRUCT: statfs64

View File

@ -2,7 +2,8 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types io.encodings.utf8 io.encodings.string USING: alien.c-types io.encodings.utf8 io.encodings.string
kernel sequences unix.stat accessors unix combinators math kernel sequences unix.stat accessors unix combinators math
grouping system alien.strings math.bitwise alien.syntax ; grouping system alien.strings math.bitwise alien.syntax
unix.types ;
IN: unix.statfs.macosx IN: unix.statfs.macosx
CONSTANT: MNT_RDONLY HEX: 00000001 CONSTANT: MNT_RDONLY HEX: 00000001

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax ; USING: alien.syntax unix.types ;
IN: unix.statfs.openbsd IN: unix.statfs.openbsd
CONSTANT: MFSNAMELEN 16 CONSTANT: MFSNAMELEN 16