     fuel-status-stack get push ;
 
 : fuel-pop-restarts ( restarts -- )
-    fuel-eval-restartable? [ drop ] [ clone restarts set-global ] if ; inline
+    fuel-eval-restartable? [ drop ] [ clone restarts set-global ] if ;
 
 : fuel-pop-status ( -- )
     fuel-status-stack get empty? [

! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays compiler.units continuations debugger
fuel.pprint io io.streams.string kernel namespaces parser sequences
vectors vocabs.parser eval fry ;

IN: fuel.eval


        [ restarts>> fuel-pop-restarts ] tri
    ] unless ;

: fuel-forget-error ( -- ) f error set-global ;
: fuel-forget-result ( -- ) f fuel-eval-result set-global ;
: fuel-forget-output ( -- ) f fuel-eval-output set-global ;
: fuel-forget-status ( -- )
    fuel-forget-error fuel-forget-result fuel-forget-output ;

: fuel-send-retort ( -- )
    error get fuel-eval-result get-global fuel-eval-output get-global
    3array fuel-pprint flush nl "<~FUEL~>" write nl flush ;

: (fuel-begin-eval) ( -- )
    fuel-push-status fuel-forget-status ;

: (fuel-end-eval) ( output -- )
    fuel-eval-output set-global fuel-send-retort fuel-pop-status ;

: (fuel-eval) ( lines -- )
    [ [ parse-lines ] with-compilation-unit call( -- ) ] curry
    [ print-error ] recover ;

: (fuel-eval-each) ( lines -- )
    [ (fuel-eval) ] each ;
