fuel,fuel.eval: renaming fuel- prefix words

char-rename
Björn Lindqvist 2017-01-08 13:18:50 +01:00
parent 340ca944d4
commit c11c59876f
3 changed files with 67 additions and 54 deletions

View File

@ -1,14 +1,30 @@
! Copyright (C) 2009 Jose Antonio Ortega Ruiz. ! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: fuel fuel.eval io.streams.string math namespaces random.data USING: continuations fuel fuel.eval io.streams.string kernel math
sequences tools.test ; namespaces random.data sequences strings tools.test ;
IN: fuel.eval.tests IN: fuel.eval.tests
! pop-restarts
{ V{ "um" } } [
fuel-eval-non-restartable V{ } clone restarts set-global
V{ "um" } pop-restarts
restarts get-global
V{ } clone restarts set-global
] unit-test
! push-status
{ 1 } [
V{ } clone [ status-stack set-global ] keep push-status
length
pop-status
] unit-test
! Make sure prettyprint doesn't limit output. ! Make sure prettyprint doesn't limit output.
{ t } [ { t } [
1000 random-string fuel-eval-result set-global 1000 random-string eval-result set-global
[ fuel-send-retort ] with-string-writer length 1000 > [ send-retort ] with-string-writer length 1000 >
f eval-result set-global
] unit-test ] unit-test
{ {
@ -17,4 +33,5 @@ IN: fuel.eval.tests
[ [
V{ "\"dup\"" "fuel-word-synopsis" } "scratchpad" V{ } fuel-eval-in-context V{ "\"dup\"" "fuel-word-synopsis" } "scratchpad" V{ } fuel-eval-in-context
] with-string-writer ] with-string-writer
f eval-result set-global
] unit-test ] unit-test

View File

@ -3,75 +3,72 @@
USING: accessors arrays continuations debugger fuel.pprint io USING: accessors arrays continuations debugger fuel.pprint io
io.streams.string kernel listener namespaces prettyprint.config sequences io.streams.string kernel listener namespaces prettyprint.config sequences
vocabs.parser ; vocabs.parser ;
IN: fuel.eval IN: fuel.eval
TUPLE: fuel-status manifest restarts ; TUPLE: status manifest restarts ;
SYMBOL: fuel-status-stack SYMBOL: status-stack
V{ } clone fuel-status-stack set-global V{ } clone status-stack set-global
SYMBOL: fuel-eval-error SYMBOL: eval-error
f fuel-eval-error set-global f eval-error set-global
SYMBOL: fuel-eval-result SYMBOL: eval-result
f fuel-eval-result set-global f eval-result set-global
SYMBOL: fuel-eval-output SYMBOL: eval-output
f fuel-eval-result set-global f eval-output set-global
SYMBOL: fuel-eval-res-flag SYMBOL: eval-res-flag
t fuel-eval-res-flag set-global t eval-res-flag set-global
: fuel-eval-restartable? ( -- ? ) : eval-restartable? ( -- ? )
fuel-eval-res-flag get-global ; eval-res-flag get-global ;
: fuel-push-status ( -- ) : push-status ( -- )
manifest get clone restarts get-global clone manifest get clone restarts get-global clone status boa
fuel-status boa status-stack get push ;
fuel-status-stack get push ;
: fuel-pop-restarts ( restarts -- ) : pop-restarts ( restarts -- )
fuel-eval-restartable? [ drop ] [ clone restarts set-global ] if ; eval-restartable? [ drop ] [ clone restarts set-global ] if ;
: fuel-pop-status ( -- ) : pop-status ( -- )
fuel-status-stack get [ status-stack get [
pop pop
[ manifest>> clone manifest set ] [ manifest>> clone manifest set ]
[ restarts>> fuel-pop-restarts ] [ restarts>> pop-restarts ]
bi bi
] unless-empty ; ] unless-empty ;
: fuel-forget-error ( -- ) f fuel-eval-error set-global ; : forget-status ( -- )
: fuel-forget-result ( -- ) f fuel-eval-result set-global ; f eval-error set-global
: fuel-forget-output ( -- ) f fuel-eval-output set-global ; f eval-result set-global
: fuel-forget-status ( -- ) f eval-output set-global ;
fuel-forget-error fuel-forget-result fuel-forget-output ;
: fuel-send-retort ( -- ) : send-retort ( -- )
fuel-eval-error get-global eval-error get-global
fuel-eval-result get-global eval-result get-global
fuel-eval-output get-global 3array eval-output get-global 3array
[ fuel-pprint ] without-limits [ fuel-pprint ] without-limits
flush nl "<~FUEL~>" write nl flush ; flush nl "<~FUEL~>" write nl flush ;
: (fuel-begin-eval) ( -- ) : begin-eval ( -- )
fuel-push-status fuel-forget-status ; push-status forget-status ;
: (fuel-end-eval) ( output -- ) : end-eval ( output -- )
fuel-eval-output set-global fuel-send-retort fuel-pop-status ; eval-output set-global send-retort pop-status ;
: (fuel-eval) ( lines -- ) : eval ( lines -- )
[ parse-lines-interactive call( -- ) ] curry [ parse-lines-interactive call( -- ) ] curry
[ [ fuel-eval-error set-global ] [ print-error ] bi ] recover ; [ [ eval-error set-global ] [ print-error ] bi ] recover ;
: (fuel-eval-usings) ( usings -- ) : eval-usings ( usings -- )
[ [ use-vocab ] curry [ drop ] recover ] each ; [ [ use-vocab ] curry [ drop ] recover ] each ;
: (fuel-eval-in) ( in -- ) : eval-in ( in -- )
[ set-current-vocab ] when* ; [ set-current-vocab ] when* ;
: (fuel-eval-in-context) ( lines in usings -- ) : eval-in-context ( lines in usings -- )
(fuel-begin-eval) begin-eval
[ (fuel-eval-usings) (fuel-eval-in) (fuel-eval) ] with-string-writer [ eval-usings eval-in eval ] with-string-writer
(fuel-end-eval) ; end-eval ;

View File

@ -4,24 +4,23 @@ USING: accessors assocs compiler.units continuations fuel.eval
fuel.help fuel.xref help.topics io.pathnames kernel namespaces parser fuel.help fuel.xref help.topics io.pathnames kernel namespaces parser
sequences tools.scaffold vocabs vocabs.files vocabs.hierarchy sequences tools.scaffold vocabs vocabs.files vocabs.hierarchy
vocabs.loader vocabs.metadata vocabs.parser words ; vocabs.loader vocabs.metadata vocabs.parser words ;
IN: fuel IN: fuel
! Evaluation ! Evaluation
: fuel-eval-restartable ( -- ) : fuel-eval-restartable ( -- )
t fuel-eval-res-flag set-global ; inline t eval-res-flag set-global ; inline
: fuel-eval-non-restartable ( -- ) : fuel-eval-non-restartable ( -- )
f fuel-eval-res-flag set-global ; inline f eval-res-flag set-global ; inline
: fuel-eval-in-context ( lines in usings -- ) : fuel-eval-in-context ( lines in usings -- )
(fuel-eval-in-context) ; eval-in-context ;
: fuel-eval-set-result ( obj -- ) : fuel-eval-set-result ( obj -- )
clone fuel-eval-result set-global ; inline clone eval-result set-global ; inline
: fuel-retort ( -- ) fuel-send-retort ; inline : fuel-retort ( -- ) send-retort ; inline
! Loading files ! Loading files