diff --git a/library/compiler/alien/alien-invoke.factor b/library/compiler/alien/alien-invoke.factor index 35e284ac19..156d8cbb24 100644 --- a/library/compiler/alien/alien-invoke.factor +++ b/library/compiler/alien/alien-invoke.factor @@ -84,12 +84,3 @@ M: alien-invoke stack-reserve* : define-c-word ( return library function parameters -- ) [ "()" subseq? not ] subset >r pick r> parse-arglist (define-c-word) ; - -M: compound unxref-word* - dup "infer" word-prop [ - dup - { "infer-effect" "base-case" "no-effect" } - reset-props - dup word-def \ alien-invoke swap member? - [ dup update-xt ] unless - ] unless drop ; diff --git a/library/compiler/compiler.factor b/library/compiler/compiler.factor index afa192b4fd..16202aa945 100644 --- a/library/compiler/compiler.factor +++ b/library/compiler/compiler.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2004, 2006 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: compiler -USING: errors hashtables inference io kernel math namespaces -optimizer prettyprint sequences test threads words ; +USING: errors generic hashtables inference io kernel math +namespaces optimizer prettyprint sequences test threads words ; : (compile) ( word -- ) dup compiling? not over compound? and [ @@ -18,7 +18,7 @@ optimizer prettyprint sequences test threads words ; : compiled ( -- ) "compile" get [ word compile ] when ; parsing : try-compile ( word -- ) - [ compile ] [ error. drop ] recover ; + [ compile ] [ error. update-xt ] recover ; : compile-vocabs ( vocabs -- ) [ words ] map concat @@ -31,3 +31,17 @@ optimizer prettyprint sequences test threads words ; define-temp "compile" get [ dup compile ] when ; : compile-1 ( quot -- ) compile-quot execute ; + +: recompile ( -- ) + [ + recompile-words get hash-keys [ try-compile ] each + recompile-words get clear-hash + ] with-class