diff options
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/boot/translator.boot | 10 | ||||
-rw-r--r-- | src/interp/i-syscmd.boot | 5 | ||||
-rw-r--r-- | src/interp/sys-driver.boot | 18 |
4 files changed, 23 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e5565cb3..718bff89 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,11 @@ 2008-07-11 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/sys-driver.boot (initializeGlobalState): New. + (executeSpadScript): Use it. + (compileSpadLibrary): Likewise. + * interp/i-syscmd.boot (spool): Synchronize with standard output. + * boot/translator.boot (bpOutItem): Tidy. + * interp/nruncomp.boot (NRTencode): Don't encode enumerations. (listofBoundVars): Enumerations don't bind any varaible. diff --git a/src/boot/translator.boot b/src/boot/translator.boot index b2b4ed15..2aee7c21 100644 --- a/src/boot/translator.boot +++ b/src/boot/translator.boot @@ -539,10 +539,12 @@ bpOutItem()== $op := nil bpComma() or bpTrap() b:=bpPop1() - EQCAR(b,"+LINE")=> bpPush [ b ] - b is ["L%T",l,r] and IDENTP l => - bpPush [["DEFPARAMETER",l,r]] - bpPush translateToplevel(b,false) + bpPush + EQCAR(b,"+LINE")=> [ b ] + b is ["L%T",l,r] and IDENTP l => + $InteractiveMode => [["SETQ",l,r]] + [["DEFPARAMETER",l,r]] + translateToplevel(b,false) shoeAddbootIfNec s == shoeAddStringIfNec('".boot",s) diff --git a/src/interp/i-syscmd.boot b/src/interp/i-syscmd.boot index 0c7d6258..297a8810 100644 --- a/src/interp/i-syscmd.boot +++ b/src/interp/i-syscmd.boot @@ -2451,13 +2451,18 @@ resetHighlight() == $specialCharacters := $saveSpecialchars spool filename == + -- Note: The base Lisp system may change the value of the standard + -- output stream as part of executing DRIBBLE(), so one must + -- ensure that traces are still sent to the spool. null filename => DRIBBLE() + SETQ(_*TRACE_-OUTPUT_*,_*STANDARD_-OUTPUT_*) TERPRI() resetHighlight() PROBE_-FILE car filename => systemError CONCAT('"file ", STRING car filename, '" already exists") DRIBBLE car filename + SETQ(_*TRACE_-OUTPUT_*,_*STANDARD_-OUTPUT_*) TERPRI() clearHighlight() diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot index 238042d1..d8bc74d5 100644 --- a/src/interp/sys-driver.boot +++ b/src/interp/sys-driver.boot @@ -176,8 +176,7 @@ SET_-RESTART_-HOOK() == )endif "restart" -++ execute Spad script -executeSpadScript(progname,options,file) == +initializeGlobalState() == REROOT() $IOindex := 1 $InteractiveFrame := makeInitialModemapFrame() @@ -188,6 +187,10 @@ executeSpadScript(progname,options,file) == RESTART0() $NEWSPAD := true $SPAD := true + +++ execute Spad script +executeSpadScript(progname,options,file) == + initializeGlobalState() if getOption(Option '"verbose",%systemOptions()) then $verbose := true $options := [] @@ -206,16 +209,7 @@ associateRequestWithFileType(Option '"script", '"input", ++ compiler Spad Library File. compileSpadLibrary(progname,options,file) == - REROOT() - $IOindex := 1 - $InteractiveFrame := makeInitialModemapFrame() - loadExposureGroupData() - initHist() - initializeInterpreterFrameRing() - $currentLine := nil - RESTART0() - $NEWSPAD := true - $SPAD := true + initializeGlobalState() $EchoLines := false ECHO_-META : fluid := false $verbose := false |