Recent vocabs.parser change had a regression: vocabs with no roots (scratchpad) were excluded from default use list. Also move with-interactive-vocabs to listener vocab
parent
d93093a1cf
commit
c491d05763
|
@ -3,7 +3,7 @@
|
||||||
USING: assocs continuations fry help help.lint.checks
|
USING: assocs continuations fry help help.lint.checks
|
||||||
help.topics io kernel namespaces parser sequences
|
help.topics io kernel namespaces parser sequences
|
||||||
source-files.errors vocabs.hierarchy vocabs words classes
|
source-files.errors vocabs.hierarchy vocabs words classes
|
||||||
locals tools.errors ;
|
locals tools.errors listener ;
|
||||||
FROM: help.lint.checks => all-vocabs ;
|
FROM: help.lint.checks => all-vocabs ;
|
||||||
IN: help.lint
|
IN: help.lint
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,10 @@ ARTICLE: "listener-watch" "Watching variables in the listener"
|
||||||
"Hiding all visible variables:"
|
"Hiding all visible variables:"
|
||||||
{ $subsection hide-all-vars } ;
|
{ $subsection hide-all-vars } ;
|
||||||
|
|
||||||
|
HELP: only-use-vocabs
|
||||||
|
{ $values { "vocabs" "a sequence of vocabulary specifiers" } }
|
||||||
|
{ $description "Replaces the current manifest's vocabulary search path with the given set of vocabularies." } ;
|
||||||
|
|
||||||
HELP: show-var
|
HELP: show-var
|
||||||
{ $values { "var" "a variable name" } }
|
{ $values { "var" "a variable name" } }
|
||||||
{ $description "Adds a variable to the watch list; its value will be printed by the listener after every expression." } ;
|
{ $description "Adds a variable to the watch list; its value will be printed by the listener after every expression." } ;
|
||||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays hashtables io kernel math math.parser memory
|
||||||
namespaces parser lexer sequences strings io.styles
|
namespaces parser lexer sequences strings io.styles
|
||||||
vectors words generic system combinators continuations debugger
|
vectors words generic system combinators continuations debugger
|
||||||
definitions compiler.units accessors colors prettyprint fry
|
definitions compiler.units accessors colors prettyprint fry
|
||||||
sets vocabs.parser source-files.errors locals ;
|
sets vocabs.parser source-files.errors locals vocabs vocabs.loader ;
|
||||||
IN: listener
|
IN: listener
|
||||||
|
|
||||||
GENERIC: stream-read-quot ( stream -- quot/f )
|
GENERIC: stream-read-quot ( stream -- quot/f )
|
||||||
|
@ -124,6 +124,78 @@ t error-summary? set-global
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
SYMBOL: interactive-vocabs
|
||||||
|
|
||||||
|
{
|
||||||
|
"accessors"
|
||||||
|
"arrays"
|
||||||
|
"assocs"
|
||||||
|
"combinators"
|
||||||
|
"compiler"
|
||||||
|
"compiler.errors"
|
||||||
|
"compiler.units"
|
||||||
|
"continuations"
|
||||||
|
"debugger"
|
||||||
|
"definitions"
|
||||||
|
"editors"
|
||||||
|
"help"
|
||||||
|
"help.apropos"
|
||||||
|
"help.lint"
|
||||||
|
"help.vocabs"
|
||||||
|
"inspector"
|
||||||
|
"io"
|
||||||
|
"io.files"
|
||||||
|
"io.pathnames"
|
||||||
|
"kernel"
|
||||||
|
"listener"
|
||||||
|
"math"
|
||||||
|
"math.order"
|
||||||
|
"memory"
|
||||||
|
"namespaces"
|
||||||
|
"parser"
|
||||||
|
"prettyprint"
|
||||||
|
"see"
|
||||||
|
"sequences"
|
||||||
|
"slicing"
|
||||||
|
"sorting"
|
||||||
|
"stack-checker"
|
||||||
|
"strings"
|
||||||
|
"syntax"
|
||||||
|
"tools.annotations"
|
||||||
|
"tools.crossref"
|
||||||
|
"tools.disassembler"
|
||||||
|
"tools.errors"
|
||||||
|
"tools.memory"
|
||||||
|
"tools.profiler"
|
||||||
|
"tools.test"
|
||||||
|
"tools.threads"
|
||||||
|
"tools.time"
|
||||||
|
"vocabs"
|
||||||
|
"vocabs.loader"
|
||||||
|
"vocabs.refresh"
|
||||||
|
"vocabs.hierarchy"
|
||||||
|
"words"
|
||||||
|
"scratchpad"
|
||||||
|
} interactive-vocabs set-global
|
||||||
|
|
||||||
|
: only-use-vocabs ( vocabs -- )
|
||||||
|
clear-manifest
|
||||||
|
[ vocab ] filter
|
||||||
|
[
|
||||||
|
vocab
|
||||||
|
[ find-vocab-root not ]
|
||||||
|
[ source-loaded?>> +done+ eq? ] bi or
|
||||||
|
] filter
|
||||||
|
[ use-vocab ] each ;
|
||||||
|
|
||||||
|
: with-interactive-vocabs ( quot -- )
|
||||||
|
[
|
||||||
|
<manifest> manifest set
|
||||||
|
"scratchpad" set-current-vocab
|
||||||
|
interactive-vocabs get only-use-vocabs
|
||||||
|
call
|
||||||
|
] with-scope ; inline
|
||||||
|
|
||||||
: listener ( -- )
|
: listener ( -- )
|
||||||
[ [ { } (listener) ] with-interactive-vocabs ] with-return ;
|
[ [ { } (listener) ] with-interactive-vocabs ] with-return ;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,8 @@ kernel math namespaces parser prettyprint prettyprint.config
|
||||||
prettyprint.sections sequences tools.test vectors words
|
prettyprint.sections sequences tools.test vectors words
|
||||||
effects splitting generic.standard prettyprint.private
|
effects splitting generic.standard prettyprint.private
|
||||||
continuations generic compiler.units tools.continuations
|
continuations generic compiler.units tools.continuations
|
||||||
tools.continuations.private eval accessors make vocabs.parser see ;
|
tools.continuations.private eval accessors make vocabs.parser see
|
||||||
|
listener ;
|
||||||
IN: prettyprint.tests
|
IN: prettyprint.tests
|
||||||
|
|
||||||
[ "4" ] [ 4 unparse ] unit-test
|
[ "4" ] [ 4 unparse ] unit-test
|
||||||
|
|
|
@ -112,68 +112,6 @@ SYMBOL: bootstrap-syntax
|
||||||
call
|
call
|
||||||
] with-scope ; inline
|
] with-scope ; inline
|
||||||
|
|
||||||
SYMBOL: interactive-vocabs
|
|
||||||
|
|
||||||
{
|
|
||||||
"accessors"
|
|
||||||
"arrays"
|
|
||||||
"assocs"
|
|
||||||
"combinators"
|
|
||||||
"compiler"
|
|
||||||
"compiler.errors"
|
|
||||||
"compiler.units"
|
|
||||||
"continuations"
|
|
||||||
"debugger"
|
|
||||||
"definitions"
|
|
||||||
"editors"
|
|
||||||
"help"
|
|
||||||
"help.apropos"
|
|
||||||
"help.lint"
|
|
||||||
"help.vocabs"
|
|
||||||
"inspector"
|
|
||||||
"io"
|
|
||||||
"io.files"
|
|
||||||
"io.pathnames"
|
|
||||||
"kernel"
|
|
||||||
"listener"
|
|
||||||
"math"
|
|
||||||
"math.order"
|
|
||||||
"memory"
|
|
||||||
"namespaces"
|
|
||||||
"parser"
|
|
||||||
"prettyprint"
|
|
||||||
"see"
|
|
||||||
"sequences"
|
|
||||||
"slicing"
|
|
||||||
"sorting"
|
|
||||||
"stack-checker"
|
|
||||||
"strings"
|
|
||||||
"syntax"
|
|
||||||
"tools.annotations"
|
|
||||||
"tools.crossref"
|
|
||||||
"tools.disassembler"
|
|
||||||
"tools.errors"
|
|
||||||
"tools.memory"
|
|
||||||
"tools.profiler"
|
|
||||||
"tools.test"
|
|
||||||
"tools.threads"
|
|
||||||
"tools.time"
|
|
||||||
"vocabs"
|
|
||||||
"vocabs.loader"
|
|
||||||
"vocabs.refresh"
|
|
||||||
"vocabs.hierarchy"
|
|
||||||
"words"
|
|
||||||
"scratchpad"
|
|
||||||
} interactive-vocabs set-global
|
|
||||||
|
|
||||||
: with-interactive-vocabs ( quot -- )
|
|
||||||
[
|
|
||||||
<manifest> manifest set
|
|
||||||
"scratchpad" set-current-vocab
|
|
||||||
interactive-vocabs get only-use-vocabs
|
|
||||||
call
|
|
||||||
] with-scope ; inline
|
|
||||||
|
|
||||||
SYMBOL: print-use-hook
|
SYMBOL: print-use-hook
|
||||||
|
|
||||||
print-use-hook [ [ ] ] initialize
|
print-use-hook [ [ ] ] initialize
|
||||||
|
|
|
@ -65,7 +65,6 @@ $nl
|
||||||
"Words for working with the current manifest:"
|
"Words for working with the current manifest:"
|
||||||
{ $subsection use-vocab }
|
{ $subsection use-vocab }
|
||||||
{ $subsection unuse-vocab }
|
{ $subsection unuse-vocab }
|
||||||
{ $subsection only-use-vocabs }
|
|
||||||
{ $subsection add-qualified }
|
{ $subsection add-qualified }
|
||||||
{ $subsection add-words-from }
|
{ $subsection add-words-from }
|
||||||
{ $subsection add-words-excluding }
|
{ $subsection add-words-excluding }
|
||||||
|
@ -117,10 +116,6 @@ HELP: unuse-vocab
|
||||||
{ $description "Removes a vocabulary from the current manifest." }
|
{ $description "Removes a vocabulary from the current manifest." }
|
||||||
{ $notes "This word is used to implement " { $link POSTPONE: UNUSE: } "." } ;
|
{ $notes "This word is used to implement " { $link POSTPONE: UNUSE: } "." } ;
|
||||||
|
|
||||||
HELP: only-use-vocabs
|
|
||||||
{ $values { "vocabs" "a sequence of vocabulary specifiers" } }
|
|
||||||
{ $description "Replaces the current manifest's vocabulary search path with the given set of vocabularies." } ;
|
|
||||||
|
|
||||||
HELP: add-qualified
|
HELP: add-qualified
|
||||||
{ $values { "vocab" "a vocabulary specifier" } { "prefix" string } }
|
{ $values { "vocab" "a vocabulary specifier" } { "prefix" string } }
|
||||||
{ $description "Adds the vocabulary's words, prefixed with the given string, to the current manifest." }
|
{ $description "Adds the vocabulary's words, prefixed with the given string, to the current manifest." }
|
||||||
|
|
|
@ -52,8 +52,6 @@ M: extra-words equal?
|
||||||
|
|
||||||
C: <extra-words> extra-words
|
C: <extra-words> extra-words
|
||||||
|
|
||||||
<PRIVATE
|
|
||||||
|
|
||||||
: clear-manifest ( -- )
|
: clear-manifest ( -- )
|
||||||
manifest get
|
manifest get
|
||||||
[ search-vocab-names>> clear-assoc ]
|
[ search-vocab-names>> clear-assoc ]
|
||||||
|
@ -61,6 +59,8 @@ C: <extra-words> extra-words
|
||||||
[ qualified-vocabs>> delete-all ]
|
[ qualified-vocabs>> delete-all ]
|
||||||
tri ;
|
tri ;
|
||||||
|
|
||||||
|
<PRIVATE
|
||||||
|
|
||||||
: (add-qualified) ( qualified -- )
|
: (add-qualified) ( qualified -- )
|
||||||
manifest get qualified-vocabs>> push ;
|
manifest get qualified-vocabs>> push ;
|
||||||
|
|
||||||
|
@ -126,12 +126,6 @@ TUPLE: no-current-vocab ;
|
||||||
2bi
|
2bi
|
||||||
] [ drop ] if ;
|
] [ drop ] if ;
|
||||||
|
|
||||||
: only-use-vocabs ( vocabs -- )
|
|
||||||
clear-manifest
|
|
||||||
[ vocab ] filter
|
|
||||||
[ vocab source-loaded?>> +done+ eq? ] filter
|
|
||||||
[ use-vocab ] each ;
|
|
||||||
|
|
||||||
TUPLE: qualified vocab prefix words ;
|
TUPLE: qualified vocab prefix words ;
|
||||||
|
|
||||||
: <qualified> ( vocab prefix -- qualified )
|
: <qualified> ( vocab prefix -- qualified )
|
||||||
|
|
Loading…
Reference in New Issue