diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 0c14204d59..475d563935 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -14,8 +14,11 @@ - [ [ dup call ] dup call ] infer hangs - the invalid recursion form case needs to be fixed, for inlines too - graphical module manager tool -- instead of decompiling words, add them to a 'recompile' set; compiler - treats words in the recompile set as if they were not compiled +- forget should remove words from the recompile set + - unit test this +- define should add words to the recompile set if they're interned + - unit test this +- make sure the changed-words thing works with bootstrap too - see if alien calls can be made faster ======================================================================== diff --git a/library/compiler/compiler.factor b/library/compiler/compiler.factor index 16202aa945..db8061e722 100644 --- a/library/compiler/compiler.factor +++ b/library/compiler/compiler.factor @@ -34,14 +34,14 @@ namespaces optimizer prettyprint sequences test threads words ; : recompile ( -- ) [ - recompile-words get hash-keys [ try-compile ] each - recompile-words get clear-hash + changed-words get hash-keys [ try-compile ] each + changed-words get clear-hash ] with-class [ dup word-name swap word-vocabulary 2array ] 2apply <=> ; @@ -190,6 +195,7 @@ M: word subdefs drop f ; : forget-word ( word -- ) dup unxref-word dup remove-word-help + dup changed-words remove-hash crossref get [ dupd remove-hash ] when* dup word-name swap word-vocabulary vocab remove-hash ;