]> gitweb.factorcode.org Git - factor.git/commitdiff
a few regression fixes
authorSlava Pestov <slava@factorcode.org>
Tue, 30 Aug 2005 07:31:20 +0000 (07:31 +0000)
committerSlava Pestov <slava@factorcode.org>
Tue, 30 Aug 2005 07:31:20 +0000 (07:31 +0000)
TODO.FACTOR.txt
library/compiler/compiler.factor
library/compiler/intrinsics.factor
library/compiler/simplifier.factor
library/inference/optimizer.factor
library/test/gadgets/gradients.factor
library/test/inspector.factor
library/test/lists/namespaces.factor
library/test/redefine.factor
library/test/strings.factor

index 5a84c7dc9b6af5a82c9327fe669d4711e52e5711..cd64d841d074f196f19d6b118e34c0a18c74678f 100644 (file)
@@ -1,6 +1,6 @@
 - reader syntax for arrays, byte arrays, displaced aliens\r
 - out of memory error when printing global namespace\r
-- decompile is broken\r
+- removing unneeded #label\r
 \r
 + ui:\r
 \r
@@ -49,6 +49,7 @@
 - value type structs\r
 - bitfields in C structs\r
 - setting struct members that are not *\r
+- callbacks\r
 \r
 + compiler:\r
 \r
index cc9b8828182f2929f66a1e807626d35dbb830952..e5f6fc447ee1223100ef9f143b69acf413262012 100644 (file)
@@ -50,8 +50,7 @@ M: compound (compile) ( word -- )
 
 : decompile ( word -- )
     dup compiled? [
-        "Decompiling " write dup .
-        [ word-primitive ] keep set-word-primitive
+        "Decompiling " write dup . update-xt
     ] [
         drop
     ] ifte ;
index 3dfe44a471bc3d663c8293c1eefe93b0c742bee1..00d33f4d62a7aa13757f560740455f1c0b0b54fb 100644 (file)
@@ -201,7 +201,7 @@ sequences vectors words ;
 
 \ fixnum* [
     ! Turn multiplication by a power of two into a left shift.
-    dup node-peek dup literal-fixnum? [
+    dup node-peek dup literal-immediate? [
         literal-value dup power-of-2? [
             nip fast-fixnum*
         ] [
index 37cc99569fba265c8fe22ae698c3f31bd91fa86e..2a2e1c1482fefd6b3c1c0916722dfd62188f36b4 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2004, 2005 Slava Pestov.
 ! See http://factor.sf.net/license.txt for BSD license.
 IN: compiler-backend
-USING: generic inference kernel lists math namespaces
+USING: generic kernel lists math namespaces
 prettyprint sequences strings words ;
 
 ! A peephole optimizer operating on the linear IR.
index d0f250103feb3887e8fe982a641b611c38711607..29f9479902c1d4dace4345caab8c8efd715e23e4 100644 (file)
@@ -82,20 +82,23 @@ M: #return optimize-node* ( node -- node/t )
     optimize-fold ;
 
 ! #label
-GENERIC: calls-label? ( label node -- ? )
-
-M: node calls-label? 2drop f ;
-
-M: #call-label calls-label? node-param eq? ;
-
-M: #label optimize-node* ( node -- node/t )
-    dup node-param over node-children first calls-label? [
-        drop t
-    ] [
-        dup node-children first dup node-successor [
-            dup penultimate-node rot
-            node-successor swap set-node-successor
-        ] [
-            drop node-successor
-        ] ifte
-    ] ifte ;
+GENERIC: calls-label* ( label node -- ? )
+
+M: node calls-label* 2drop f ;
+
+M: #call-label calls-label* node-param eq? ;
+
+: calls-label? ( label node -- ? )
+    [ calls-label? not ] all-nodes-with? not ;
+
+! M: #label optimize-node* ( node -- node/t )
+!     dup node-param over node-children first calls-label? [
+!         drop t
+!     ] [
+!         dup node-children first dup node-successor [
+!             dup penultimate-node rot
+!             node-successor swap set-node-successor
+!         ] [
+!             drop node-successor
+!         ] ifte
+!     ] ifte ;
index 6a4870b9e5ad0fc44a288a53cd71ec59a010af2b..b3a82702548c3686726f4793b5d036ed28e48e40 100644 (file)
@@ -1,22 +1,17 @@
 IN: temporary
 USING: gadgets namespaces styles test ;
 
-[
-    0 x set
-    0 y set
-    
-    [ { 255 0 0 } ] [ { 1 0 0 } red green <gradient> 0 gradient-color ] unit-test
-    [ { 0 255 0 } ] [ { 1 0 0 } red green <gradient> 1 gradient-color ] unit-test
-    
-    [ 0 100 0 { 255 0 0 } ]
-    [ { 0 1 0 } red green <gradient> { 100 200 0 } 0 (gradient-x) ] unit-test
-    
-    [ 0 100 100 { 255/2 255/2 0 } ]
-    [ { 0 1 0 } red green <gradient> { 100 200 0 } 100 (gradient-x) ] unit-test
-    
-    [ 0 0 200 { 255 0 0 } ]
-    [ { 1 0 0 } red green <gradient> { 100 200 0 } 0 (gradient-y) ] unit-test
-    
-    [ 50 0 200 { 255/2 255/2 0 } ]
-    [ { 1 0 0 } red green <gradient> { 100 200 0 } 50 (gradient-y) ] unit-test
-] with-scope
+[ { 255 0 0 } ] [ { 1 0 0 } red green <gradient> 0 gradient-color ] unit-test
+[ { 0 255 0 } ] [ { 1 0 0 } red green <gradient> 1 gradient-color ] unit-test
+
+[ 0 100 0 { 255 0 0 } ]
+[ { 0 1 0 } red green <gradient> { 100 200 0 } 0 (gradient-x) ] unit-test
+
+[ 0 100 100 { 255/2 255/2 0 } ]
+[ { 0 1 0 } red green <gradient> { 100 200 0 } 100 (gradient-x) ] unit-test
+
+[ 0 0 200 { 255 0 0 } ]
+[ { 1 0 0 } red green <gradient> { 100 200 0 } 0 (gradient-y) ] unit-test
+
+[ 50 0 200 { 255/2 255/2 0 } ]
+[ { 1 0 0 } red green <gradient> { 100 200 0 } 50 (gradient-y) ] unit-test
index 7c08ce93b0d9be978de874e9b0984b1fd1c167d7..5236988e39656655fd82b09188ee37ec9f1cf0ad 100644 (file)
@@ -1,11 +1,14 @@
 IN: temporary
-USING: inspector math namespaces prettyprint test ;
+USING: kernel inspector math namespaces prettyprint test
+sequences ;
 
-[[ "hello" "world" ]] inspect
+{ } clone inspector-stack set
 
-[ "hello" ] [ 0 get ] unit-test
-[ "world" ] [ 1 get ] unit-test
+[[ "hello" "world" ]] (inspect)
 
-[ 1 2 3 ] inspect
-f inspect
-\ + inspect
+[ "hello" ] [ 0 inspector-slots get nth ] unit-test
+[ "world" ] [ 1 inspector-slots get nth ] unit-test
+
+[ 1 2 3 ] (inspect)
+f (inspect)
+\ + (inspect)
index f16a1aacb06b6f2eb45b4496750095ef484ddf7a..46d795d78e42747f9f8bf4901ad2550543f44c9f 100644 (file)
@@ -32,10 +32,3 @@ USE: sequences
     "hello" "x" unique@
     "x" get
 ] unit-test
-
-[ [ "xyz" #{ 3 2 }# 1/5 [ { } ] ] ] [
-    [ "xyz" , "xyz" unique,
-    #{ 3 2 }# , #{ 3 2 }# unique,
-    1/5 , 1/5 unique,
-    [ { } unique, ] [ ] make , ] [ ] make
-] unit-test
index eb08293aebb8415e3e55f0d47be4022dee5354a9..8cad84c75970687e9bab90c8af68f8ffe12e927f 100644 (file)
@@ -1,7 +1,5 @@
 IN: temporary
-USING: compiler inference math generic parser ;
-
-USE: test
+USING: compiler inference math generic parser test ;
 
 : foo 1 2 ;
 : bar foo foo ; compiled
index de36d62a931014143fe2983c804f75753388b222..03b59d067e882dd35a805a4c6078b3451b55fee0 100644 (file)
@@ -73,7 +73,7 @@ unit-test
 
 [ f ] [ [ 0 10 "hello" subseq ] [ not ] catch ] unit-test
 
-[ [ "hell" "o wo" "rld" ] ] [ 4 "hello world" group ] unit-test
+[ { "hell" "o wo" "rld" } ] [ 4 "hello world" group ] unit-test
 
 [ 4 ] [
     0 "There are Four Upper Case characters"