]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 30 Jun 2008 21:06:30 +0000 (16:06 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 30 Jun 2008 21:06:30 +0000 (16:06 -0500)
16 files changed:
extra/bake/bake.factor
extra/builder/release/release.factor
extra/builder/util/util.factor
extra/combinators/conditional/conditional.factor [new file with mode: 0644]
extra/io/unix/linux/monitors/monitors-tests.factor
extra/newfx/newfx.factor
extra/random-weighted/random-weighted.factor
extra/raptor/raptor.factor
extra/rewrite-closures/rewrite-closures.factor
extra/size-of/size-of.factor
extra/springies/models/2x2snake/2x2snake.factor
extra/springies/models/3snake/3snake.factor
extra/springies/models/belt-tire/belt-tire.factor
extra/springies/models/nifty/nifty.factor
extra/springies/models/urchin/urchin.factor
extra/springies/ui/ui.factor

index 987122f05cfbd3c4a4dc480ccda11fec99ef82ea..7a12a3cc97ce16f2eb8715c193e0e8770962d722 100644 (file)
@@ -1,61 +1,59 @@
 
-USING: kernel parser namespaces quotations arrays vectors strings
-       sequences assocs classes.tuple math combinators ;
+USING: kernel parser combinators sequences splitting quotations arrays macros
+       arrays.lib combinators.cleave combinators.conditional newfx ;
 
 IN: bake
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-TUPLE: insert-quot expr ;
+SYMBOL: ,
+SYMBOL: @
 
-C: <insert-quot> insert-quot 
-
-: ,[ \ ] [ >quotation <insert-quot> ] parse-literal ; parsing
+: comma? ( obj -- ? ) , = ;
+: atsym? ( obj -- ? ) @ = ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-TUPLE: splice-quot expr ;
-
-C: <splice-quot> splice-quot
+DEFER: [bake-array]
 
-: %[ \ ] [ >quotation <splice-quot> ] parse-literal ; parsing
+: broil-element ( obj -- quot )
+    {
+      { [ comma? ] [ drop [ >r ]               ] }
+      { [ array? ] [ [bake-array] [ >r ] append ] }
+      { [ drop t ] [ [ >r ] prefix-on          ] }
+    }
+  1cond ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: ,u ( seq -- seq ) unclip building get push ;
+: [broil] ( array -- quot )
+    [ reverse [ broil-element ] map concat ]
+    [ length [ drop [ r> ] ] map concat ]
+    [ length [ narray ] prefix-on ]
+  tri append append
+  >quotation ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-SYMBOL: exemplar
+: [simmer] ( array -- quot )
 
-: reset-building ( -- ) 1024 <vector> building set ;
+  { @ } split reverse
+    [        [ [bake-array] [ append ] append [ >r ] append ] map concat ]
+    [ length [ drop [ r> append ]                          ] map concat ]
+  bi
 
-: save-exemplar ( seq -- seq ) dup exemplar set ;
+  >r 2 head* [ >r ] append r> ! remove the last append
 
-: finish-baking ( -- seq ) building get exemplar get like ;
+  [ { } ] swap append
 
-DEFER: bake
+  append ;
 
-: bake-item ( item -- )
-  { { [ dup \ , = ]        [ drop , ] }
-    { [ dup \ % = ]        [ drop % ] }
-    { [ dup \ ,u = ]       [ drop ,u ] }
-    { [ dup insert-quot? ] [ insert-quot-expr call , ] }
-    { [ dup splice-quot? ] [ splice-quot-expr call % ] }
-    { [ dup integer? ]     [ , ] }
-    { [ dup string? ]      [ , ] }
-    { [ dup tuple? ]       [ tuple>array bake >tuple , ] }
-    { [ dup assoc? ]       [ [ >alist bake ] keep assoc-like , ] }
-    { [ dup sequence? ]    [ bake , ] }
-    { [ t ]                [ , ] } }
-  cond ;
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: bake-items ( seq -- ) [ bake-item ] each ;
+: [bake-array] ( array -- quot ) [ @ member? ] [ [simmer] ] [ [broil] ] 1if ;
 
-: bake ( seq -- seq )
-  [ reset-building save-exemplar bake-items finish-baking ] with-scope ;
+MACRO: bake-array ( array -- quot ) [bake-array] ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: `{ \ } [ >array ] parse-literal \ bake parsed ; parsing
-
+: `{ \ } [ >array ] parse-literal \ bake-array parsed ; parsing
\ No newline at end of file
index 8f4c0e30f537430a93dcc75597c335afd12e4058..28ce3e8b35f9fa28aca9d5a6d1b23ed2e75ef6a2 100644 (file)
@@ -1,7 +1,7 @@
 
 USING: kernel debugger system namespaces sequences splitting combinators
        io io.files io.launcher prettyprint bootstrap.image
-       bake combinators.cleave
+       combinators.cleave
        builder.util
        builder.common
        builder.release.branch
index db3b476365419ef99df1874f1987adbb435cde6a..320f0e0448578f37361c68c62c3c86268d203d75 100644 (file)
@@ -6,7 +6,7 @@ USING: kernel words namespaces classes parser continuations
        combinators sequences splitting quotations arrays strings tools.time
        sequences.deep accessors assocs.lib
        io.encodings.utf8
-       combinators.cleave bake calendar calendar.format ;
+       combinators.cleave calendar calendar.format ;
 
 IN: builder.util
 
diff --git a/extra/combinators/conditional/conditional.factor b/extra/combinators/conditional/conditional.factor
new file mode 100644 (file)
index 0000000..cb27ef3
--- /dev/null
@@ -0,0 +1,17 @@
+
+USING: kernel combinators sequences macros fry newfx combinators.cleave ;
+
+IN: combinators.conditional
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: 1if ( test then else -- ) '[ dup @ , , if ] ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: 1cond ( tbl -- )
+  [ [ 1st [ dup ] prepend ] [ 2nd ] bi {2} ] map
+  [ cond ] prefix-on ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
index 923bfaa8908b0d8c6f79f11e70b5719f7b326614..c71b0539194779e470a31aea117aaaab7a2b4ed0 100644 (file)
@@ -15,7 +15,7 @@ threads calendar prettyprint destructors io.timeouts ;
 
     [ t ] [
         "m" get next-change drop
-        [ "." = ] [ "monitor-test-self" temp-file = ] bi or
+        [ "" = ] [ "monitor-test-self" temp-file = ] bi or
     ] unit-test
 
     [ ] [ "m" get dispose ] unit-test
index 37c738cd6a8c56af42a3b4c22370a0fcea2b1094..b59e204e0cdc9da088e2253988423351c9cb0158 100644 (file)
@@ -195,4 +195,8 @@ METHOD: as-mutate { object object assoc }       set-at ;
 : adjoin      ( seq elt -- seq ) over sets:adjoin ;
 : adjoin-on   ( elt seq -- seq ) tuck sets:adjoin ;
 : adjoined    ( set elt --     ) swap sets:adjoin ;
-: adjoined-on ( elt set --     )      sets:adjoin ;
\ No newline at end of file
+: adjoined-on ( elt set --     )      sets:adjoin ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: start ( seq subseq -- i ) swap sequences:start ;
\ No newline at end of file
index 59cc15cba675ac7a95e3dff33f15548039c4d4f7..3f7a5d09b58cc0590830c1b0d09a023d2ee63fbc 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel namespaces arrays quotations sequences assocs combinators
-       mirrors math math.vectors random macros bake ;
+       mirrors math math.vectors random macros fry ;
 
 IN: random-weighted
 
@@ -16,5 +16,5 @@ probabilities layers [ 1000 * ] map 1000 random [ > ] curry find drop ;
 dup [ second ] map swap [ first ] map random-weighted swap nth ;
 
 MACRO: call-random-weighted ( exp -- )
-  [ keys ] [ values <enum> >alist ] bi swap
-  [ , random-weighted , case ] bake ;
+  [ keys ] [ values <enum> >alist ] bi
+  '[ , random-weighted , case ] ;
index d58e242d868f7c03ba8e406e95a48bae30cbfb08..933275e5bfc9a1e25a78d1382c418496ebbc5643 100755 (executable)
@@ -1,5 +1,6 @@
 
-USING: kernel parser namespaces threads arrays sequences unix unix.process bake ;
+USING: kernel parser namespaces threads arrays sequences unix unix.process
+       bake ;
 
 IN: raptor
 
index ccd3989d1a156b2c4b3320adaa2a8a6e646bb75d..0136d5e271f9bd750c160f8a3276f9c85d4d5ec9 100644 (file)
@@ -14,8 +14,11 @@ IN: rewrite-closures
 
 \ set-parameters [ [set-parameters] ] 1 define-transform
 
-: parametric-quot ( parameters quot -- quot )
-[ [ swap ] set-parameters [ ] call ] make* ;
+! : parametric-quot ( parameters quot -- quot )
+! [ [ swap ] set-parameters [ ] call ] make* ;
+
+: parametric-quot ( parameters quot -- quot ) '[ , set-parameters , call ] ;
+
 
 : scoped-quot ( quot -- quot ) [ with-scope ] curry ;
 
index a2b47fc0aab9f72a6f75ce44f6ee541233ba28d2..8157ba7dcf76dfc9ccea2ddea7753cad44831e93 100644 (file)
@@ -12,15 +12,15 @@ IN: size-of
 VAR: headers
 
 : include-headers ( -- seq )
-  headers> [ { "#include <" , ">" } bake to-string ] map ;
+  headers> [ `{ "#include <" , ">" } to-string ] map ;
 
 : size-of-c-program ( type -- lines )
-  {
+  `{
     "#include <stdio.h>"
     include-headers
     { "main() { printf( \"%i\" , sizeof( " , " ) ) ; }" }
   }
-  bake to-strings ;
+  to-strings ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index 7c54e72578aa24c1fe615e6ef020006034d8ac17..6e794eb744846ef7a94d4644329ba754edd47988 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel namespaces arrays sequences threads math math.vectors
-       ui random bake springies springies.ui ;
+       ui random springies springies.ui ;
 
 IN: springies.models.2x2snake
 
index 92d39ac2c290797f7c7e0aef39395b61a573aca0..e65c9c64a6af3e7c0d66bed697f6e8206774dc03 100644 (file)
@@ -1,5 +1,5 @@
 
-USING: kernel namespaces arrays sequences threads math ui random bake
+USING: kernel namespaces arrays sequences threads math ui random fry
        springies springies.ui ;
 
 IN: springies.models.3snake
@@ -158,8 +158,10 @@ times
 
 ;
 
-: go* ( quot -- )
-  [ [ [ springies-window* 1000 sleep % ] with-scope ] with-ui ] bake call ;
+! : go* ( quot -- )
+!   [ [ [ springies-window* 1000 sleep % ] with-scope ] with-ui ] bake call ;
+
+: go* ( quot -- ) '[ [ springies-window* 1000 sleep @ ] with-scope ] with-ui ;
 
 ! : go ( -- ) [ [ springies-window* 1000 sleep model ] with-scope ] with-ui ;
 
index 6604f85a3f8ba185e1859ee02ab70c72137d3d33..e00a93b310ffc57b6dda00f931ffedfdb7822a5a 100644 (file)
@@ -1,5 +1,5 @@
 
-USING: kernel namespaces arrays sequences threads math ui random bake
+USING: kernel namespaces arrays sequences threads math ui random
        springies springies.ui ;
 
 IN: springies.models.belt-tire
index db644f2248b8f1cd2530c54ca3908b69afa5cb9a..2b9a31b234906aff340e512c0926e7c529da9f21 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel namespaces arrays sequences threads math math.vectors
-       ui random bake springies springies.ui ;
+       ui random springies springies.ui ;
 
 IN: springies.models.nifty
 
index 734a1c2f6d663bf2071d31541f82868f7dabc940..8870c714e82f58ed04cfc913333a8ae3d3dd9481 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel namespaces arrays sequences threads math math.vectors
-       ui random bake
+       ui random
        springies springies.ui ;
 
 IN: springies.models.urchin
index bebe813925831245de54d727daf8e5ad76bab54f..8aabe6b70bfe703560af56b27fe8a6d9cd457910 100644 (file)
@@ -1,7 +1,7 @@
 
 USING: kernel namespaces threads sequences math math.vectors
        opengl.gl opengl colors ui ui.gadgets ui.gadgets.slate
-       bake rewrite-closures vars springies ;
+       fry rewrite-closures vars springies ;
 
 IN: springies.ui
 
@@ -62,5 +62,4 @@ DEFER: maybe-loop
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: go* ( quot -- )
-  [ [ [ springies-window* 1000 sleep % ] with-scope ] with-ui ] bake call ;
+: go* ( quot -- ) '[ [ springies-window* 1000 sleep @ ] with-scope ] with-ui ;
\ No newline at end of file