From e7de95e72bca6ae335676fa34428e64666c4f966 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 1 Feb 2010 17:20:08 +1300 Subject: [PATCH] compiler.crossref: clean up and fix bug with forgotten classes --- basis/compiler/compiler.factor | 6 +++--- basis/compiler/crossref/crossref.factor | 26 ++++++++++++------------- basis/tools/deploy/shaker/shaker.factor | 4 ++-- basis/tools/profiler/profiler.factor | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/basis/compiler/compiler.factor b/basis/compiler/compiler.factor index 94b927ca82..5be2b0de87 100644 --- a/basis/compiler/compiler.factor +++ b/basis/compiler/compiler.factor @@ -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 ) diff --git a/basis/compiler/crossref/crossref.factor b/basis/compiler/crossref/crossref.factor index d6c000b286..07c3d6f23a 100644 --- a/basis/compiler/crossref/crossref.factor +++ b/basis/compiler/crossref/crossref.factor @@ -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 ; +: generic-call-sites ( word -- alist ) + "generic-call-sites" word-prop 2 ; : 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 -- ) diff --git a/basis/tools/deploy/shaker/shaker.factor b/basis/tools/deploy/shaker/shaker.factor index 19d3a2cbb9..c9485a458c 100755 --- a/basis/tools/deploy/shaker/shaker.factor +++ b/basis/tools/deploy/shaker/shaker.factor @@ -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 diff --git a/basis/tools/profiler/profiler.factor b/basis/tools/profiler/profiler.factor index 76d62cec3a..b0ce5dfbe4 100644 --- a/basis/tools/profiler/profiler.factor +++ b/basis/tools/profiler/profiler.factor @@ -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 ;