fuel.eval: using a local fuel-eval-error symbol. Fixes #142.

db4
John Benediktsson 2011-09-18 20:19:49 -07:00
parent db324a65ee
commit 2a72c5c34d
1 changed files with 9 additions and 4 deletions

View File

@ -11,6 +11,9 @@ TUPLE: fuel-status manifest restarts ;
SYMBOL: fuel-status-stack SYMBOL: fuel-status-stack
V{ } clone fuel-status-stack set-global V{ } clone fuel-status-stack set-global
SYMBOL: fuel-eval-error
f fuel-eval-error set-global
SYMBOL: fuel-eval-result SYMBOL: fuel-eval-result
f fuel-eval-result set-global f fuel-eval-result set-global
@ -39,15 +42,17 @@ t fuel-eval-res-flag set-global
bi bi
] unless ; ] unless ;
: fuel-forget-error ( -- ) f error set-global ; : fuel-forget-error ( -- ) f fuel-eval-error set-global ;
: fuel-forget-result ( -- ) f fuel-eval-result set-global ; : fuel-forget-result ( -- ) f fuel-eval-result set-global ;
: fuel-forget-output ( -- ) f fuel-eval-output set-global ; : fuel-forget-output ( -- ) f fuel-eval-output set-global ;
: fuel-forget-status ( -- ) : fuel-forget-status ( -- )
fuel-forget-error fuel-forget-result fuel-forget-output ; fuel-forget-error fuel-forget-result fuel-forget-output ;
: fuel-send-retort ( -- ) : fuel-send-retort ( -- )
error get fuel-eval-result get-global fuel-eval-output get-global fuel-eval-error get-global
3array fuel-pprint flush nl "<~FUEL~>" write nl flush ; fuel-eval-result get-global
fuel-eval-output get-global 3array
fuel-pprint flush nl "<~FUEL~>" write nl flush ;
: (fuel-begin-eval) ( -- ) : (fuel-begin-eval) ( -- )
fuel-push-status fuel-forget-status ; fuel-push-status fuel-forget-status ;
@ -57,7 +62,7 @@ t fuel-eval-res-flag set-global
: (fuel-eval) ( lines -- ) : (fuel-eval) ( lines -- )
[ [ parse-lines ] with-compilation-unit call( -- ) ] curry [ [ parse-lines ] with-compilation-unit call( -- ) ] curry
[ print-error ] recover ; [ [ fuel-eval-error set-global ] [ print-error ] bi ] recover ;
: (fuel-eval-usings) ( usings -- ) : (fuel-eval-usings) ( usings -- )
[ [ use-vocab ] curry [ drop ] recover ] each [ [ use-vocab ] curry [ drop ] recover ] each