diff options
-rw-r--r-- | src/interp/i-map.boot | 2 | ||||
-rw-r--r-- | src/interp/i-object.boot | 10 | ||||
-rw-r--r-- | src/interp/i-spec1.boot | 14 | ||||
-rw-r--r-- | src/interp/patches.lisp | 2 | ||||
-rw-r--r-- | src/interp/slam.boot | 3 | ||||
-rw-r--r-- | src/interp/sys-globals.boot | 5 |
6 files changed, 24 insertions, 12 deletions
diff --git a/src/interp/i-map.boot b/src/interp/i-map.boot index d6e883bc..1dc09662 100644 --- a/src/interp/i-map.boot +++ b/src/interp/i-map.boot @@ -39,8 +39,6 @@ $mapTarget := nil $mapReturnTypes := nil $mapName := 'noMapName $mapThrowCount := 0 -- times a "return" occurs in map -$compilingMap := NIL -$definingMap := NIL --% Generating internal names for functions diff --git a/src/interp/i-object.boot b/src/interp/i-object.boot index d9dbd969..55adaf2a 100644 --- a/src/interp/i-object.boot +++ b/src/interp/i-object.boot @@ -34,6 +34,16 @@ import '"g-util" )package "BOOT" + +++ true if we are about to generate a function definition +$definingMap := false + +++ List variables locat to the current function. +$localVars := [] + +++ declared mode of the current entity being processed. +$declaredMode := nil + --% Functions on interpreter objects -- Interpreter objects used to be called triples because they had the diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot index 0f67fccf..9190d67d 100644 --- a/src/interp/i-spec1.boot +++ b/src/interp/i-spec1.boot @@ -36,16 +36,22 @@ import '"i-analy" -- Functions which require special handlers (also see end of file) -$repeatLabel := NIL -$breakCount := 0 -$anonymousMapCounter := 0 - $specialOps := '( ADEF AlgExtension _and _case COERCE COLLECT construct Declare DEF Dollar equation error free has IF _is _isnt iterate _break LET _local MDEF _or pretend QUOTE REDUCE REPEAT _return SEQ TARGET Tuple typeOf _where _[_|_|_] ) +$repeatLabel := NIL +$breakCount := 0 +$anonymousMapCounter := 0 + +++ List of free variables in the current function +$freeVariables := [] + +++ List of bound variables in the current function +$boundVariables := [] + --% Void stuff voidValue() == '"()" diff --git a/src/interp/patches.lisp b/src/interp/patches.lisp index 21f12ec1..19b806ca 100644 --- a/src/interp/patches.lisp +++ b/src/interp/patches.lisp @@ -179,8 +179,6 @@ (setq |$sourceFiles| ()) ;; set in readSpad2Cmd -(setq |$localVars| ()) ;checked by isType - (define-function 'SUBSTQ #'SUBSTEQ) ;; needed for substNames (always copy) #+(and :lucid (not :ibm/370)) (define-function 'RUN-AIX-PROGRAM #'SYS:RUN-AIX-PROGRAM) diff --git a/src/interp/slam.boot b/src/interp/slam.boot index 7c84b6e1..232ad541 100644 --- a/src/interp/slam.boot +++ b/src/interp/slam.boot @@ -35,6 +35,9 @@ import '"g-timer" )package "BOOT" +++ List of compiled function names. +$compiledOpNameList + reportFunctionCompilation(op,nam,argl,body,isRecursive) == -- for an alternate definition of this function which does not allow -- dynamic caching, see SLAMOLD BOOT diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot index 3ee0367c..24e80779 100644 --- a/src/interp/sys-globals.boot +++ b/src/interp/sys-globals.boot @@ -341,13 +341,10 @@ $CategoryFrame := ++ $spadLibFT := "NRLIB" -++ +++ true if we are compiling a function. $compilingMap := false ++ -$definingMap := false - -++ $TRACELETFLAG := false ++ |