diff options
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/algebra/strap/BOOLEAN.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/CHAR.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/DFLOAT.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/ILIST.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/INT.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/ISTRING.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/LIST.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/NNI.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/OUTFORM.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/PI.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/SINT.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/SYMBOL.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/VECTOR.lsp | 2 | ||||
-rw-r--r-- | src/interp/c-util.boot | 18 | ||||
-rw-r--r-- | src/interp/compiler.boot | 1 |
18 files changed, 44 insertions, 31 deletions
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2010-08-24. +# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2010-09-07. # # Report bugs to <open-axiom-bugs@lists.sf.net>. # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='OpenAxiom' PACKAGE_TARNAME='openaxiom' -PACKAGE_VERSION='1.4.0-2010-08-24' -PACKAGE_STRING='OpenAxiom 1.4.0-2010-08-24' +PACKAGE_VERSION='1.4.0-2010-09-07' +PACKAGE_STRING='OpenAxiom 1.4.0-2010-09-07' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1509,7 +1509,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures OpenAxiom 1.4.0-2010-08-24 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.4.0-2010-09-07 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1579,7 +1579,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2010-08-24:";; + short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2010-09-07:";; esac cat <<\_ACEOF @@ -1687,7 +1687,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.4.0-2010-08-24 +OpenAxiom configure 1.4.0-2010-09-07 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1701,7 +1701,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OpenAxiom $as_me 1.4.0-2010-08-24, which was +It was created by OpenAxiom $as_me 1.4.0-2010-09-07, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -22806,7 +22806,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OpenAxiom $as_me 1.4.0-2010-08-24, which was +This file was extended by OpenAxiom $as_me 1.4.0-2010-09-07, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22869,7 +22869,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -OpenAxiom config.status 1.4.0-2010-08-24 +OpenAxiom config.status 1.4.0-2010-09-07 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 1a7aafe7..61aa9e8c 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ dnl Most of the macros used in this configure.ac are defined in files dnl located in the subdirectory config/ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.4.0-2010-08-24], +AC_INIT([OpenAxiom], [1.4.0-2010-09-07], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/src/ChangeLog b/src/ChangeLog index f24a8bd8..2ce1b27a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2010-09-07 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/c-util.boot (massageBackendCode): Remove conditional on + $NEWSPAD since it always true. Keep note of Lisp-level special + variable even if it is set with SETQ. + (transformToBackendCode): Declare special variables before fluid + and local variables. + * interp/compiler.boot: Don't compile SETQ forms as if they were + Spad codes. + 2010-08-28 Gabriel Dos Reis <gdr@cs.tamu.edu> * utils/Makefile.in ($(oa_target_oalib)): Create contaning diff --git a/src/algebra/strap/BOOLEAN.lsp b/src/algebra/strap/BOOLEAN.lsp index df73f473..2cd01a42 100644 --- a/src/algebra/strap/BOOLEAN.lsp +++ b/src/algebra/strap/BOOLEAN.lsp @@ -162,9 +162,9 @@ (COND ((NOT #0#) (HREM |$ConstructorCache| '|Boolean|))))))))) (DEFUN |Boolean;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|Boolean|)) ($ (|newShell| 39)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|Boolean| NIL (CONS 1 $)) diff --git a/src/algebra/strap/CHAR.lsp b/src/algebra/strap/CHAR.lsp index 7e15370a..719559af 100644 --- a/src/algebra/strap/CHAR.lsp +++ b/src/algebra/strap/CHAR.lsp @@ -201,9 +201,9 @@ ((NOT #0#) (HREM |$ConstructorCache| '|Character|))))))))) (DEFUN |Character;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|Character|)) ($ (|newShell| 58)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|Character| NIL (CONS 1 $)) diff --git a/src/algebra/strap/DFLOAT.lsp b/src/algebra/strap/DFLOAT.lsp index 0736ea62..1915550c 100644 --- a/src/algebra/strap/DFLOAT.lsp +++ b/src/algebra/strap/DFLOAT.lsp @@ -856,9 +856,9 @@ ((NOT #0#) (HREM |$ConstructorCache| '|DoubleFloat|))))))))) (DEFUN |DoubleFloat;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|DoubleFloat|)) ($ (|newShell| 164)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|DoubleFloat| NIL (CONS 1 $)) diff --git a/src/algebra/strap/ILIST.lsp b/src/algebra/strap/ILIST.lsp index ff6511d6..bcc6d8bd 100644 --- a/src/algebra/strap/ILIST.lsp +++ b/src/algebra/strap/ILIST.lsp @@ -431,6 +431,7 @@ ((NOT #2#) (HREM |$ConstructorCache| '|IndexedList|))))))))) (DEFUN |IndexedList;| (|#1| |#2|) + (DECLARE (SPECIAL |$ConstructorCache|)) (LET* ((|dv$1| (|devaluate| |#1|)) (|dv$2| (|devaluate| |#2|)) (|dv$| (LIST '|IndexedList| |dv$1| |dv$2|)) ($ (|newShell| 86)) @@ -468,7 +469,6 @@ (|HasCategory| |#1| (LIST '|Evalable| (|devaluate| |#1|)))))))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|IndexedList| (LIST |dv$1| |dv$2|) diff --git a/src/algebra/strap/INT.lsp b/src/algebra/strap/INT.lsp index 3be4c61e..65c5e2b0 100644 --- a/src/algebra/strap/INT.lsp +++ b/src/algebra/strap/INT.lsp @@ -512,9 +512,9 @@ (COND ((NOT #0#) (HREM |$ConstructorCache| '|Integer|))))))))) (DEFUN |Integer;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|Integer|)) ($ (|newShell| 140)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|Integer| NIL (CONS 1 $)) diff --git a/src/algebra/strap/ISTRING.lsp b/src/algebra/strap/ISTRING.lsp index 3aaf5260..fc760f24 100644 --- a/src/algebra/strap/ISTRING.lsp +++ b/src/algebra/strap/ISTRING.lsp @@ -663,6 +663,7 @@ ((NOT #1#) (HREM |$ConstructorCache| '|IndexedString|))))))))) (DEFUN |IndexedString;| (|#1|) + (DECLARE (SPECIAL |$ConstructorCache|)) (LET* ((|dv$1| (|devaluate| |#1|)) (|dv$| (LIST '|IndexedString| |dv$1|)) ($ (|newShell| 100)) (|pv$| (|buildPredVector| 0 0 @@ -703,7 +704,6 @@ '(|SetCategory|)) (|HasCategory| (|Character|) (LIST '|Evalable| '(|Character|)))))))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|IndexedString| (LIST |dv$1|) diff --git a/src/algebra/strap/LIST.lsp b/src/algebra/strap/LIST.lsp index 5ab75d13..cac9fdbd 100644 --- a/src/algebra/strap/LIST.lsp +++ b/src/algebra/strap/LIST.lsp @@ -181,6 +181,7 @@ (COND ((NOT #1#) (HREM |$ConstructorCache| '|List|))))))))) (DEFUN |List;| (|#1|) + (DECLARE (SPECIAL |$ConstructorCache|)) (LET* ((|dv$1| (|devaluate| |#1|)) (|dv$| (LIST '|List| |dv$1|)) ($ (|newShell| 70)) (|pv$| (|buildPredVector| 0 0 @@ -218,7 +219,6 @@ (|HasCategory| |#1| (LIST '|Evalable| (|devaluate| |#1|)))))))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|List| (LIST |dv$1|) (CONS 1 $)) diff --git a/src/algebra/strap/NNI.lsp b/src/algebra/strap/NNI.lsp index b355751f..efe37d37 100644 --- a/src/algebra/strap/NNI.lsp +++ b/src/algebra/strap/NNI.lsp @@ -57,9 +57,9 @@ (HREM |$ConstructorCache| '|NonNegativeInteger|))))))))) (DEFUN |NonNegativeInteger;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|NonNegativeInteger|)) ($ (|newShell| 22)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|NonNegativeInteger| NIL diff --git a/src/algebra/strap/OUTFORM.lsp b/src/algebra/strap/OUTFORM.lsp index 21ec89fa..01827b30 100644 --- a/src/algebra/strap/OUTFORM.lsp +++ b/src/algebra/strap/OUTFORM.lsp @@ -991,9 +991,9 @@ ((NOT #0#) (HREM |$ConstructorCache| '|OutputForm|))))))))) (DEFUN |OutputForm;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|OutputForm|)) ($ (|newShell| 150)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|OutputForm| NIL (CONS 1 $)) diff --git a/src/algebra/strap/PI.lsp b/src/algebra/strap/PI.lsp index 8f17450f..29f7ada0 100644 --- a/src/algebra/strap/PI.lsp +++ b/src/algebra/strap/PI.lsp @@ -21,9 +21,9 @@ (HREM |$ConstructorCache| '|PositiveInteger|))))))))) (DEFUN |PositiveInteger;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|PositiveInteger|)) ($ (|newShell| 16)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|PositiveInteger| NIL (CONS 1 $)) diff --git a/src/algebra/strap/SINT.lsp b/src/algebra/strap/SINT.lsp index 540a317b..701ae24d 100644 --- a/src/algebra/strap/SINT.lsp +++ b/src/algebra/strap/SINT.lsp @@ -523,9 +523,9 @@ ((NOT #0#) (HREM |$ConstructorCache| '|SingleInteger|))))))))) (DEFUN |SingleInteger;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|SingleInteger|)) ($ (|newShell| 114)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|SingleInteger| NIL (CONS 1 $)) diff --git a/src/algebra/strap/SYMBOL.lsp b/src/algebra/strap/SYMBOL.lsp index 008cf1e5..fc1b66ba 100644 --- a/src/algebra/strap/SYMBOL.lsp +++ b/src/algebra/strap/SYMBOL.lsp @@ -636,9 +636,9 @@ (COND ((NOT #0#) (HREM |$ConstructorCache| '|Symbol|))))))))) (DEFUN |Symbol;| () + (DECLARE (SPECIAL |$ConstructorCache|)) (LET ((|dv$| (LIST '|Symbol|)) ($ (|newShell| 165)) (|pv$| (|buildPredVector| 0 0 NIL))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|Symbol| NIL (CONS 1 $)) diff --git a/src/algebra/strap/VECTOR.lsp b/src/algebra/strap/VECTOR.lsp index 717a24ec..b4bf5d7d 100644 --- a/src/algebra/strap/VECTOR.lsp +++ b/src/algebra/strap/VECTOR.lsp @@ -41,6 +41,7 @@ (COND ((NOT #1#) (HREM |$ConstructorCache| '|Vector|))))))))) (DEFUN |Vector;| (|#1|) + (DECLARE (SPECIAL |$ConstructorCache|)) (LET* ((|dv$1| (|devaluate| |#1|)) (|dv$| (LIST '|Vector| |dv$1|)) ($ (|newShell| 36)) (|pv$| (|buildPredVector| 0 0 @@ -85,7 +86,6 @@ (|HasCategory| |#1| (LIST '|Evalable| (|devaluate| |#1|)))))))) - (DECLARE (SPECIAL |$ConstructorCache|)) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 |pv$|) (|haddProp| |$ConstructorCache| '|Vector| (LIST |dv$1|) (CONS 1 $)) diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index c72da0df..e6926855 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -1528,11 +1528,8 @@ massageBackendCode x == x.first := "MAKEPROP-SAY" u in '(DCQ RELET PRELET SPADLET SETQ %LET) => if u ~= 'DCQ and u ~= 'SETQ then - $NEWSPAD or $FUNAME in $traceletFunctions => - nconc(x,$FUNNAME__TAIL) - x.first := "LETT" - $TRACELETFLAG => x.first := "/TRACE-LET" - u = "%LET" => x.first := "SPADLET" + nconc(x,$FUNNAME__TAIL) + x.first := "LETT" massageBackendCode CDDR x if not (u in '(SETQ RELET)) then IDENTP second x => pushLocalVariable second x @@ -1540,6 +1537,11 @@ massageBackendCode x == PUSH(CADADR x, $FluidVars) x.rest.first := CADADR x MAPC(function pushLocalVariable, LISTOFATOMS second x) + -- Even if user used Lisp-level instructions to assign to + -- this variable, we still want to note that it is a Lisp-level + -- special variable. + u = 'SETQ and isLispSpecialVariable second x => + noteSpecialVariable second x IDENTP u and GET(u,"ILAM") ~= nil => x.first := eval u massageBackendCode x @@ -1640,8 +1642,10 @@ transformToBackendCode x == fluids ~= nil => lvars ~= nil or needsPROG? body => [["PROG",lvars,declareGlobalVariables fluids, ["RETURN",:body]]] - body is [[op,bindings,:body']] and op in '(LET LET_*) => - [[op,bindings,declareGlobalVariables fluids,:body']] + body is [[op,inits,:body']] and op in '(LET LET_*) + and $FluidVars ~= nil => + [declareGlobalVariables $SpecialVars, + [op,inits,declareGlobalVariables fluids,:body']] [declareGlobalVariables fluids,:body] lvars ~= nil or needsPROG? body => [["PROG",lvars,["RETURN",:body]]] diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index 7d4b8809..501935c1 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -2660,7 +2660,6 @@ for x in [["|", :"compSuchthat"],_ ["REPEAT", :"compRepeatOrCollect"],_ ["return", :"compReturn"],_ ["SEQ", :"compSeq"],_ - ["SETQ", :"compSetq"],_ ["SubDomain", :"compSubDomain"],_ ["SubsetCategory", :"compSubsetCategory"],_ ["Union", :"compCat"],_ |