vocabs.parser: cleanup update-manifest, make update-search-vocabs a little faster.

db4
John Benediktsson 2015-06-09 10:29:44 -07:00
parent 950cbc5e7d
commit f00c90bb63
1 changed files with 21 additions and 6 deletions

View File

@ -223,14 +223,29 @@ M: qualified update
M: vocab update dup name>> lookup-vocab eq? ;
: update-manifest ( manifest -- )
[ dup [ name>> lookup-vocab ] when ] change-current-vocab
[ members [ lookup-vocab ] filter dup fast-set ] change-search-vocab-names
swap [ lookup-vocab ] V{ } map-as >>search-vocabs
qualified-vocabs>> [ update ] filter! drop ;
: update-current-vocab ( manifest -- manifest )
[ dup [ name>> lookup-vocab ] when ] change-current-vocab ; inline
: compute-search-vocabs ( manifest -- search-vocab-names search-vocabs )
search-vocab-names>> members dup length <vector> [
[ push ] curry [ when* ] curry
[ lookup-vocab dup ] prepose filter fast-set
] keep ; inline
: update-search-vocabs ( manifest -- manifest )
dup compute-search-vocabs
[ >>search-vocab-names ] [ >>search-vocabs ] bi* ; inline
: update-qualified-vocabs ( manifest -- manifest )
dup qualified-vocabs>> [ update ] filter! drop ; inline
: update-manifest ( manifest -- manifest )
update-current-vocab
update-search-vocabs
update-qualified-vocabs ; inline
M: manifest definitions-changed
nip update-manifest ;
nip update-manifest drop ;
PRIVATE>