Set up listener's manifest so that words defined in "scratchpad" take precedence over other vocabularies and do not raise a restart. This matches the behavior of IN: and USE: in files, where the IN: takes precedence. Also remove unused clear-manifest word. Fixes #407

db4
Slava Pestov 2012-01-02 23:18:52 -06:00
parent b994848d5f
commit d1b6106011
3 changed files with 16 additions and 12 deletions

View File

@ -1,6 +1,6 @@
USING: io io.streams.string io.streams.duplex listener
tools.test parser math namespaces continuations vocabs kernel
compiler.units eval vocabs.parser ;
compiler.units eval vocabs.parser words definitions ;
IN: listener.tests
SYNTAX: hello "Hi" print ;
@ -52,3 +52,16 @@ SYNTAX: hello "Hi" print ;
drop
] unit-test
] with-file-vocabs
[ "call" "scratchpad" create drop ] with-compilation-unit
[
[ t ]
[
"call" "scratchpad" lookup-word
[ "call" search ] with-interactive-vocabs
eq?
] unit-test
] with-file-vocabs
[ "call" "scratchpad" lookup-word forget ] with-compilation-unit

View File

@ -185,11 +185,9 @@ SYMBOL: interactive-vocabs
"vocabs.refresh"
"vocabs.hierarchy"
"words"
"scratchpad"
} interactive-vocabs set-global
: only-use-vocabs ( vocabs -- )
clear-manifest
: use-loaded-vocabs ( vocabs -- )
[ lookup-vocab ] filter
[
lookup-vocab
@ -201,7 +199,7 @@ SYMBOL: interactive-vocabs
: with-interactive-vocabs ( quot -- )
[
"scratchpad" set-current-vocab
interactive-vocabs get only-use-vocabs
interactive-vocabs get use-loaded-vocabs
call
] with-manifest ; inline

View File

@ -49,13 +49,6 @@ M: extra-words equal?
C: <extra-words> extra-words
: clear-manifest ( -- )
manifest get
[ search-vocab-names>> clear-assoc ]
[ search-vocabs>> delete-all ]
[ qualified-vocabs>> delete-all ]
tri ;
ERROR: no-word-in-vocab word vocab ;
<PRIVATE