From: Nicholas Seckar Date: Sun, 19 Apr 2009 21:31:44 +0000 (-0700) Subject: Merge branch 'autouse-existing-usings' of git@github.com:seckar/factor into cleaner... X-Git-Tag: 0.94~2001^2~2^2~2 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=86a6b75160f0d3d0a103b9dd65bb28350bc857e3;hp=-c Merge branch 'autouse-existing-usings' of git@github.com:seckar/factor into cleaner-using-suggestions --- 86a6b75160f0d3d0a103b9dd65bb28350bc857e3 diff --combined extra/fuel/fuel.factor index 413aefdc76,a8c2adc3e1..3c623212b0 --- a/extra/fuel/fuel.factor +++ b/extra/fuel/fuel.factor @@@ -1,9 -1,9 +1,9 @@@ ! Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz. ! See http://factorcode.org/license.txt for BSD license. - USING: assocs compiler.units fuel.eval fuel.help fuel.remote fuel.xref - help.topics io.pathnames kernel namespaces parser sequences - tools.scaffold vocabs.loader ; + USING: accessors assocs compiler.units continuations fuel.eval fuel.help + fuel.remote fuel.xref help.topics io.pathnames kernel math namespaces parser + sequences tools.scaffold vocabs.loader ; IN: fuel @@@ -28,6 -28,24 +28,24 @@@ > [ "Use the " head? ] [ " vocabulary" tail? ] bi and ; + + : get-restart-vocab ( restart -- vocab ) + [ "Use the " length ] dip + name>> [ length " vocabulary" length - ] keep + subseq ; + + : is-suggested-restart ( restart -- ? ) + dup is-use-restart [ + get-restart-vocab :uses-suggestions get member? + ] [ drop f ] if ; + + : try-suggested-restarts ( -- ) + restarts get [ is-suggested-restart ] filter + dup length 1 = [ first restart ] [ drop ] if ; : fuel-set-use-hook ( -- ) [ amended-use get clone :uses prefix fuel-eval-set-result ] @@@ -38,6 -56,10 +56,10 @@@ PRIVATE> + : fuel-use-suggested-vocabs ( ... suggestions quot: ( ... -- ... ) -- ... ) + [ :uses-suggestions set ] dip + [ try-suggested-restarts rethrow ] recover ; + : fuel-run-file ( path -- ) [ fuel-set-use-hook run-file ] curry with-scope ; inline @@@ -104,7 -126,7 +126,7 @@@ : fuel-vocab-summary ( name -- ) (fuel-vocab-summary) fuel-eval-set-result ; -: fuel-index ( quot -- ) call format-index fuel-eval-set-result ; +: fuel-index ( quot -- ) call( -- seq ) format-index fuel-eval-set-result ; : fuel-get-vocabs/tag ( tag -- ) (fuel-get-vocabs/tag) fuel-eval-set-result ;