aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interp/i-map.boot2
-rw-r--r--src/interp/i-object.boot10
-rw-r--r--src/interp/i-spec1.boot14
-rw-r--r--src/interp/patches.lisp2
-rw-r--r--src/interp/slam.boot3
-rw-r--r--src/interp/sys-globals.boot5
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
++