Merge branch 'master' of git://factorcode.org/git/factor
commit
c139077b52
|
@ -73,10 +73,12 @@ HELP: C-ENUM:
|
||||||
{ $syntax "C-ENUM: words... ;" }
|
{ $syntax "C-ENUM: words... ;" }
|
||||||
{ $values { "words" "a sequence of word names" } }
|
{ $values { "words" "a sequence of word names" } }
|
||||||
{ $description "Creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to its index in the enumeration definition. The first word pushes 0." }
|
{ $description "Creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to its index in the enumeration definition. The first word pushes 0." }
|
||||||
{ $notes "This word emulates a C-style " { $snippet "enum" } " in Factor. While this feature can be used for any purpose, using integer constants is discouraged unless it is for interfacing with C libraries. Factor code should use symbolic constants instead." }
|
{ $notes "This word emulates a C-style " { $snippet "enum" } " in Factor. While this feature can be used for any purpose, using integer constants is discouraged unless it is for interfacing with C libraries. Factor code should use " { $link "words.symbol" } " or " { $link "singletons" } " instead." }
|
||||||
{ $examples
|
{ $examples
|
||||||
"The following two lines are equivalent:"
|
"Here is an example enumeration definition:"
|
||||||
{ $code "C-ENUM: red green blue ;" ": red 0 ; : green 1 ; : blue 2 ;" }
|
{ $code "C-ENUM: red green blue ;" }
|
||||||
|
"It is equivalent to the following series of definitions:"
|
||||||
|
{ $code "CONSTANT: red 0" "CONSTANT: green 1" "CONSTANT: blue 2" }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
HELP: &:
|
HELP: &:
|
||||||
|
|
|
@ -81,7 +81,10 @@ IN: compiler.tree.propagation.known-words
|
||||||
class>> dup null-class? [ drop null ] [ math-closure ] if ;
|
class>> dup null-class? [ drop null ] [ math-closure ] if ;
|
||||||
|
|
||||||
: unary-op-interval ( info quot -- newinterval )
|
: unary-op-interval ( info quot -- newinterval )
|
||||||
[ interval>> ] dip call ; inline
|
[
|
||||||
|
dup class>> real classes-intersect?
|
||||||
|
[ interval>> ] [ drop full-interval ] if
|
||||||
|
] dip call ; inline
|
||||||
|
|
||||||
: unary-op ( word interval-quot post-proc-quot -- )
|
: unary-op ( word interval-quot post-proc-quot -- )
|
||||||
'[
|
'[
|
||||||
|
|
|
@ -186,6 +186,10 @@ IN: compiler.tree.propagation.tests
|
||||||
|
|
||||||
[ t ] [ [ { complex } declare absq ] final-info first interval>> [0,inf] = ] unit-test
|
[ t ] [ [ { complex } declare absq ] final-info first interval>> [0,inf] = ] unit-test
|
||||||
|
|
||||||
|
[ t ] [ [ { float float } declare rect> C{ 0.0 0.0 } + absq ] final-info first interval>> [0,inf] = ] unit-test
|
||||||
|
|
||||||
|
[ V{ float } ] [ [ { float float } declare rect> C{ 0.0 0.0 } + absq ] final-classes ] unit-test
|
||||||
|
|
||||||
[ t ] [ [ [ - absq ] [ + ] 2map-reduce ] final-info first interval>> [0,inf] = ] unit-test
|
[ t ] [ [ [ - absq ] [ + ] 2map-reduce ] final-info first interval>> [0,inf] = ] unit-test
|
||||||
|
|
||||||
[ t ] [ [ { double-array double-array } declare [ - absq ] [ + ] 2map-reduce ] final-info first interval>> [0,inf] = ] unit-test
|
[ t ] [ [ { double-array double-array } declare [ - absq ] [ + ] 2map-reduce ] final-info first interval>> [0,inf] = ] unit-test
|
||||||
|
|
Loading…
Reference in New Issue