]> gitweb.factorcode.org Git - factor.git/commitdiff
Fix another problem with call( inline caching
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Nov 2009 13:17:00 +0000 (07:17 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Nov 2009 13:17:00 +0000 (07:17 -0600)
core/compiler/units/units.factor
core/definitions/definitions.factor
core/words/words.factor

index a46e846b0dcc466d0916703bda7f54a13130b92b..9ffb98a383b2bbeabaa993a7d42112d1b3c66975 100644 (file)
@@ -127,8 +127,8 @@ M: object bump-effect-counter* drop f ;
     bi ;
 
 : bump-effect-counter? ( -- ? )
-    changed-effects get old-definitions get first assoc-intersect assoc-empty? not
-    new-definitions get first [ drop bump-effect-counter* ] assoc-any?
+    changed-effects get new-words get assoc-diff assoc-empty? not
+    changed-definitions get [ drop bump-effect-counter* ] assoc-any?
     or ;
 
 : bump-effect-counter ( -- )
@@ -156,6 +156,7 @@ PRIVATE>
         H{ } clone changed-effects set
         H{ } clone outdated-generics set
         H{ } clone outdated-tuples set
+        H{ } clone new-words set
         H{ } clone new-classes set
         [ finish-compilation-unit ] [ ] cleanup
     ] with-scope ; inline
@@ -168,6 +169,7 @@ PRIVATE>
         H{ } clone outdated-generics set
         H{ } clone forgotten-definitions set
         H{ } clone outdated-tuples set
+        H{ } clone new-words set
         H{ } clone new-classes set
         <definitions> new-definitions set
         <definitions> old-definitions set
index d815b9609d8b32216cf1b0be5890e22d11ac29b3..597b195c36036475e6f8f52e43536b7eeda504c7 100644 (file)
@@ -21,8 +21,16 @@ SYMBOL: changed-generics
 
 SYMBOL: outdated-generics
 
+SYMBOL: new-words
+
 SYMBOL: new-classes
 
+: new-word ( word -- )
+    dup new-words get set-in-unit ;
+
+: new-word? ( word -- ? )
+    new-words get key? ;
+
 : new-class ( word -- )
     dup new-classes get set-in-unit ;
 
index 24a95853da0ab159c33383a2cf35dbba0bed45b9..712e3ba55882db93ac3d1989cb6cda34346452cb 100755 (executable)
@@ -135,7 +135,7 @@ M: word reset-word
     ] tri ;
 
 : <word> ( name vocab -- word )
-    2dup [ hashcode ] bi@ bitxor >fixnum (word) ;
+    2dup [ hashcode ] bi@ bitxor >fixnum (word) dup new-word ;
 
 : gensym ( -- word )
     "( gensym )" f \ gensym counter >fixnum (word) ;