Merge branch 'master' of git@github.com:seckar/factor into autouse-existing-usings

db4
Nicholas Seckar 2009-04-22 15:35:47 -07:00
commit ca853d5eac
2 changed files with 39 additions and 8 deletions

View File

@ -0,0 +1,33 @@
! Copyright (C) 2009 Nicholas Seckar.
! See http://factorcode.org/license.txt for BSD license.
USING: continuations eval fuel fuel.private namespaces tools.test words ;
IN: fuel.tests
: fake-continuation ( -- continuation )
f f f "fake" f <continuation> ;
: make-uses-restart ( -- restart )
"Use the words vocabulary" \ word?
fake-continuation <restart> ;
: make-defer-restart ( -- restart )
"Defer word in current vocabulary" f
fake-continuation <restart> ;
{ f } [ make-defer-restart is-use-restart ] unit-test
{ t } [ make-uses-restart is-use-restart ] unit-test
{ "words" } [ make-uses-restart get-restart-vocab ] unit-test
{ f } [ make-defer-restart is-suggested-restart ] unit-test
{ f } [ make-uses-restart is-suggested-restart ] unit-test
{ f } [ { "io" } :uses-suggestions
[ make-uses-restart is-suggested-restart ] with-variable
] unit-test
{ t } [ { "words" } :uses-suggestions
[ make-uses-restart is-suggested-restart ] with-variable
] unit-test
{ } [
{ "kernel" } [ "\\ dup drop" eval( -- ) ] fuel-use-suggested-vocabs
] unit-test

View File

@ -2,8 +2,8 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs compiler.units continuations fuel.eval fuel.help USING: accessors assocs compiler.units continuations fuel.eval fuel.help
fuel.remote fuel.xref help.topics io.pathnames kernel math namespaces parser fuel.remote fuel.xref help.topics io.pathnames kernel namespaces parser
sequences tools.scaffold vocabs.loader ; sequences tools.scaffold vocabs.loader words ;
IN: fuel IN: fuel
@ -33,10 +33,8 @@ SYMBOL: :uses-suggestions
: is-use-restart ( restart -- ? ) : is-use-restart ( restart -- ? )
name>> [ "Use the " head? ] [ " vocabulary" tail? ] bi and ; name>> [ "Use the " head? ] [ " vocabulary" tail? ] bi and ;
: get-restart-vocab ( restart -- vocab ) : get-restart-vocab ( restart -- vocab/f )
[ "Use the " length ] dip obj>> dup word? [ vocabulary>> ] [ drop f ] if ;
name>> [ length " vocabulary" length - ] keep
subseq ;
: is-suggested-restart ( restart -- ? ) : is-suggested-restart ( restart -- ? )
dup is-use-restart [ dup is-use-restart [
@ -56,9 +54,9 @@ SYMBOL: :uses-suggestions
PRIVATE> PRIVATE>
: fuel-use-suggested-vocabs ( ... suggestions quot: ( ... -- ... ) -- ... ) : fuel-use-suggested-vocabs ( suggestions quot ... suggestions quot: ( ... -- ... ) -- ... )
[ :uses-suggestions set ] dip [ :uses-suggestions set ] dip
[ try-suggested-restarts rethrow ] recover ; [ try-suggested-restarts rethrow ] recover ; inline
: fuel-run-file ( path -- ) : fuel-run-file ( path -- )
[ fuel-set-use-hook run-file ] curry with-scope ; inline [ fuel-set-use-hook run-file ] curry with-scope ; inline