]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.crossref: clean up and fix bug with forgotten classes
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 1 Feb 2010 04:20:08 +0000 (17:20 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 1 Feb 2010 04:20:08 +0000 (17:20 +1300)
basis/compiler/compiler.factor
basis/compiler/crossref/crossref.factor
basis/tools/deploy/shaker/shaker.factor
basis/tools/profiler/profiler.factor

index 94b927ca825ee020be5156719c7132e2baf274b3..5be2b0de8744626cfa38a0f341410d11be7edcd2 100644 (file)
@@ -183,9 +183,9 @@ SINGLETON: optimizing-compiler
 M: optimizing-compiler update-call-sites ( class generic -- words )
     #! Words containing call sites with inferred type 'class'
     #! which inlined a method on 'generic'
-    compiled-generic-usage swap '[
-        nip dup classoid?
-        [ _ classes-intersect? ] [ drop f ] if
+    generic-call-sites-of swap '[
+        nip _ 2dup [ classoid? ] both?
+        [ classes-intersect? ] [ 2drop f ] if
     ] assoc-filter keys ;
 
 M: optimizing-compiler recompile ( words -- alist )
index d6c000b28677142a038648e00e7bbfd38676cdaf..07c3d6f23a9470083ebaf5641d163ef459cb3d4e 100644 (file)
@@ -9,9 +9,9 @@ SYMBOL: compiled-crossref
 
 compiled-crossref [ H{ } clone ] initialize
 
-SYMBOL: compiled-generic-crossref
+SYMBOL: generic-call-site-crossref
 
-compiled-generic-crossref [ H{ } clone ] initialize
+generic-call-site-crossref [ H{ } clone ] initialize
 
 : effect-dependencies-of ( word -- assoc )
     compiled-crossref get at ;
@@ -37,14 +37,14 @@ compiled-generic-crossref [ H{ } clone ] initialize
         [ drop _ dependencies-satisfied? not ] assoc-filter
     ] { } assoc>map ;
 
-: compiled-generic-usage ( word -- assoc )
-    compiled-generic-crossref get at ;
+: generic-call-sites-of ( word -- assoc )
+    generic-call-site-crossref get at ;
 
 : only-xref ( assoc -- assoc' )
     [ drop crossref? ] { } assoc-filter-as ;
 
-: set-compiled-generic-uses ( word alist -- )
-    concat f like "compiled-generic-uses" set-word-prop ;
+: set-generic-call-sites ( word alist -- )
+    concat f like "generic-call-sites" set-word-prop ;
 
 : split-dependencies ( assoc -- effect-deps cond-deps def-deps )
     [ nip effect-dependency eq? ] assoc-partition
@@ -59,12 +59,12 @@ compiled-generic-crossref [ H{ } clone ] initialize
     [ (store-dependencies) ] tri-curry@ tri-curry* tri ;
 
 : (compiled-xref) ( word dependencies generic-dependencies -- )
-    compiled-crossref compiled-generic-crossref
+    compiled-crossref generic-call-site-crossref
     [ get add-vertex* ] bi-curry@ bi-curry* bi ;
 
 : compiled-xref ( word dependencies generic-dependencies -- )
     [ only-xref ] bi@
-    [ nip set-compiled-generic-uses ]
+    [ nip set-generic-call-sites ]
     [ drop store-dependencies ]
     [ (compiled-xref) ]
     3tri ;
@@ -88,23 +88,23 @@ compiled-generic-crossref [ H{ } clone ] initialize
 : (compiled-unxref) ( word dependencies variable -- )
     get remove-vertex* ;
 
-: compiled-generic-uses ( word -- alist )
-    "compiled-generic-uses" word-prop 2 <groups> ;
+: generic-call-sites ( word -- alist )
+    "generic-call-sites" word-prop 2 <groups> ;
 
 : compiled-unxref ( word -- )
     {
         [ dup load-dependencies compiled-crossref (compiled-unxref) ]
-        [ dup compiled-generic-uses compiled-generic-crossref (compiled-unxref) ]
+        [ dup generic-call-sites generic-call-site-crossref (compiled-unxref) ]
         [ "effect-dependencies" remove-word-prop ]
         [ "conditional-dependencies" remove-word-prop ]
         [ "definition-dependencies" remove-word-prop ]
-        [ "compiled-generic-uses" remove-word-prop ]
+        [ "generic-call-sites" remove-word-prop ]
     } cleave ;
 
 : delete-compiled-xref ( word -- )
     [ compiled-unxref ]
     [ compiled-crossref get delete-at ]
-    [ compiled-generic-crossref get delete-at ]
+    [ generic-call-site-crossref get delete-at ]
     tri ;
 
 : set-dependency-checks ( word deps -- )
index 19d3a2cbb95a2aee92610e339021b2411787237f..c9485a458c43c5b5d56530052e87558aab4e5d91 100755 (executable)
@@ -127,7 +127,7 @@ IN: tools.deploy.shaker
                 "boa-check"
                 "coercer"
                 "combination"
-                "compiled-generic-uses"
+                "generic-call-sites"
                 "effect-dependencies"
                 "definition-dependencies"
                 "conditional-dependencies"
@@ -343,7 +343,7 @@ IN: tools.deploy.shaker
                 classes.private:update-map
                 main-vocab-hook
                 compiler.crossref:compiled-crossref
-                compiler.crossref:compiled-generic-crossref
+                compiler.crossref:generic-call-site-crossref
                 compiler-impl
                 compiler.errors:compiler-errors
                 lexer-factory
index 76d62cec3ae496ed3292d9a27901eb01fd4d7ff4..b0ce5dfbe4a173326386f7f68c9d1bf9d2134d70 100644 (file)
@@ -1,4 +1,4 @@
-! Copyright (C) 2007, 2008 Slava Pestov.
+! Copyright (C) 2007, 2010 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors words sequences math prettyprint kernel arrays
 io io.styles namespaces assocs kernel.private strings
@@ -39,7 +39,7 @@ IN: tools.profiler
 
 : profiler-usage ( word -- words )
     [ smart-usage [ word? ] filter ]
-    [ compiled-generic-usage keys ]
+    [ generic-call-sites-of keys ]
     [ effect-dependencies-of keys ]
     tri 3append prune ;