diff options
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | configure.ac.pamphlet | 2 | ||||
-rw-r--r-- | src/interp/apply.boot | 1 | ||||
-rw-r--r-- | src/interp/category.boot | 1 | ||||
-rw-r--r-- | src/interp/cattable.boot | 2 | ||||
-rw-r--r-- | src/interp/define.boot | 2 | ||||
-rw-r--r-- | src/interp/nruncomp.boot | 29 | ||||
-rw-r--r-- | src/interp/nrunfast.boot | 8 | ||||
-rw-r--r-- | src/interp/patches.lisp | 2 | ||||
-rw-r--r-- | src/interp/setq.lisp | 5 | ||||
-rw-r--r-- | src/interp/sys-globals.boot | 3 | ||||
-rw-r--r-- | src/interp/wi2.boot | 3 |
13 files changed, 52 insertions, 26 deletions
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60 for OpenAxiom 1.1.0-2007-12-16. +# Generated by GNU Autoconf 2.60 for OpenAxiom 1.1.0-2007-12-15. # # Report bugs to <open-axiom-bugs@lists.sf.net>. # @@ -713,8 +713,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='OpenAxiom' PACKAGE_TARNAME='openaxiom' -PACKAGE_VERSION='1.1.0-2007-12-16' -PACKAGE_STRING='OpenAxiom 1.1.0-2007-12-16' +PACKAGE_VERSION='1.1.0-2007-12-15' +PACKAGE_STRING='OpenAxiom 1.1.0-2007-12-15' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1388,7 +1388,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.1.0-2007-12-16 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.1.0-2007-12-15 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1458,7 +1458,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.1.0-2007-12-16:";; + short | recursive ) echo "Configuration of OpenAxiom 1.1.0-2007-12-15:";; esac cat <<\_ACEOF @@ -1562,7 +1562,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.1.0-2007-12-16 +OpenAxiom configure 1.1.0-2007-12-15 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1576,7 +1576,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.1.0-2007-12-16, which was +It was created by OpenAxiom $as_me 1.1.0-2007-12-15, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -25203,7 +25203,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.1.0-2007-12-16, which was +This file was extended by OpenAxiom $as_me 1.1.0-2007-12-15, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25252,7 +25252,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -OpenAxiom config.status 1.1.0-2007-12-16 +OpenAxiom config.status 1.1.0-2007-12-15 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index e28c3715..e642eade 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.1.0-2007-12-16], +AC_INIT([OpenAxiom], [1.1.0-2007-12-15], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 0924b227..7f229697 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1010,7 +1010,7 @@ information: <<Autoconf init>>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.1.0-2007-12-16], +AC_INIT([OpenAxiom], [1.1.0-2007-12-15], [open-axiom-bugs@lists.sf.net]) @ diff --git a/src/interp/apply.boot b/src/interp/apply.boot index 1faf163b..3da4dd8e 100644 --- a/src/interp/apply.boot +++ b/src/interp/apply.boot @@ -220,6 +220,7 @@ compApplyModemap(form,modemap,$e,sl) == --+ information which is no longer valid; thus ignore this index and --+ store the signature instead. +--$NRTflag=true and f is [op1,d,.] and NE(d,'$) and member(op1,'(ELT CONST)) => f is [op1,d,.] and member(op1,'(ELT CONST Subsumed)) => [genDeltaEntry [op,:modemap],lt',$bindings] [f,lt',$bindings] diff --git a/src/interp/category.boot b/src/interp/category.boot index 304b943f..c6a411bb 100644 --- a/src/interp/category.boot +++ b/src/interp/category.boot @@ -451,6 +451,7 @@ JoinInner(l,$e) == if ancindex then ($NewCatVec.ancindex:= bname; reallynew:= nil) else + -- check for $NRTflag until massive algebra recompilation if originalVector and (condition=true) then $NewCatVec:= CatEval bname copied:= nil diff --git a/src/interp/cattable.boot b/src/interp/cattable.boot index c69bb136..0da1a93f 100644 --- a/src/interp/cattable.boot +++ b/src/interp/cattable.boot @@ -459,7 +459,7 @@ updateCategoryTable(cname,kind) == updateCategoryTableForDomain(cname,getConstrCat( GETDATABASE(cname,'CONSTRUCTORCATEGORY))) --+ - kind = 'domain => + kind = 'domain and $NRTflag = true => updateCategoryTableForDomain(cname,getConstrCat( GETDATABASE(cname,'CONSTRUCTORCATEGORY))) diff --git a/src/interp/define.boot b/src/interp/define.boot index 725a8bcf..945b4cc4 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -400,7 +400,7 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body], $NRTloadTimeAlist: local := nil --used for things in slot4 (NRTsetVector4) $NRTdomainFormList: local := nil -- of form ((gensym . (Repe...)) ... -- the above optimizes the calls to local domains - $template: local:= nil --stored in the lisplib + $template: local:= nil --stored in the lisplib (if $NRTvec = true) $functionLocations: local := nil --locations of defined functions in source -- generate slots for arguments first, then for $NRTaddForm in compAdd for x in argl repeat NRTgetLocalIndex x diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot index b0eeb807..d986a708 100644 --- a/src/interp/nruncomp.boot +++ b/src/interp/nruncomp.boot @@ -391,7 +391,9 @@ buildFunctor($definition is [name,:args],sig,code,$locals,$e) == domainShell := GETREFV ($NRTbase + $NRTdeltaLength) for i in 0..4 repeat domainShell.i := $domainShell.i --we will clobber elements; copy since $domainShell may be a cached vector - $template := GETREFV ($NRTbase + $NRTdeltaLength) + $template := + $NRTvec = true => GETREFV ($NRTbase + $NRTdeltaLength) + nil $catvecList:= [domainShell,:[emptyVector for u in CADR domainShell.4]] $catNames := ['$] -- for DescendCode -- to be changed below for slot 4 $maximalViews:= nil @@ -410,16 +412,19 @@ buildFunctor($definition is [name,:args],sig,code,$locals,$e) == storeOperationCode:= DescendCode(code,true,nil,first $catNames) outsideFunctionCode:= NRTaddDeltaCode() storeOperationCode:= NRTputInLocalReferences storeOperationCode - NRTdescendCodeTran(storeOperationCode,nil) --side effects storeOperationCode + if $NRTvec = true then + NRTdescendCodeTran(storeOperationCode,nil) --side effects storeOperationCode codePart2:= - argStuffCode := - [[$setelt,'$,i,v] for i in $NRTbase.. for v in $FormalMapVariableList - for arg in rest $definition] - if MEMQ($NRTaddForm,$locals) then - addargname := $FormalMapVariableList.(POSN1($NRTaddForm,$locals)) - argStuffCode := [[$setelt,'$,5,addargname],:argStuffCode] - [['stuffDomainSlots,'$],:argStuffCode, - :predBitVectorCode2,storeOperationCode] + $NRTvec = true => + argStuffCode := + [[$setelt,'$,i,v] for i in $NRTbase.. for v in $FormalMapVariableList + for arg in rest $definition] + if MEMQ($NRTaddForm,$locals) then + addargname := $FormalMapVariableList.(POSN1($NRTaddForm,$locals)) + argStuffCode := [[$setelt,'$,5,addargname],:argStuffCode] + [['stuffDomainSlots,'$],:argStuffCode, + :predBitVectorCode2,storeOperationCode] + [:outsideFunctionCode,storeOperationCode] $CheckVectorList := NRTcheckVector domainShell --CODE: part 1 @@ -589,7 +594,9 @@ NRTsetVector4a(sig,form,cond) == NRTmakeSlot1 domainShell == opDirectName := INTERN STRCONC(PNAME first $definition,'";opDirect") - fun := '(function lookupInCompactTable) + fun := + $NRTmakeCompactDirect => '(function lookupInCompactTable) + '(function lookupInTable) [($QuickCode=>'QSETREFV;'SETELT), '$,1, ['LIST,fun,'$,opDirectName]] NRTmakeSlot1Info() == diff --git a/src/interp/nrunfast.boot b/src/interp/nrunfast.boot index 5903b539..d791335a 100644 --- a/src/interp/nrunfast.boot +++ b/src/interp/nrunfast.boot @@ -36,14 +36,20 @@ import '"c-util" )package "BOOT" ++ -$doNotCompressHashTableIfTrue := true +$doNotCompressHashTableIfTrue := false --======================================================================= -- Basic Functions --======================================================================= initNewWorld() == + $NRTflag := true + $NRTvec := true + $NRTmakeCompactDirect := true $NRTquick := true + $NRTmakeShortDirect := true + $newWorld := true $monitorNewWorld := false + $consistencyCheck := false $spadLibFT := 'NRLIB $NRTmonitorIfTrue := false $updateCatTableIfTrue := false diff --git a/src/interp/patches.lisp b/src/interp/patches.lisp index 6b993ceb..21f12ec1 100644 --- a/src/interp/patches.lisp +++ b/src/interp/patches.lisp @@ -221,6 +221,8 @@ (define-function '|isLowerCaseLetter| #'LOWER-CASE-P) (define-function '|isUpperCaseLetter| #'UPPER-CASE-P) (define-function '|isLetter| #'ALPHA-CHAR-P) +;; reset from /spad/lisp/setq.lisp +(setq |$consistencyCheck| ()) ;; prevents wasting time checking consistency #+(or :CCL (and :lucid :ibm/370)) diff --git a/src/interp/setq.lisp b/src/interp/setq.lisp index 84f053d7..8ea2c57a 100644 --- a/src/interp/setq.lisp +++ b/src/interp/setq.lisp @@ -74,6 +74,7 @@ (SETQ |$displayParserOutput| 'T) (SETQ |$insideReadRulesIfTrue| NIL) +(SETQ |$consistencyCheck| 'T) (SETQ |$useUndo| NIL) (SETQ |$ruleSetsInitialized| NIL) @@ -82,7 +83,10 @@ (SETQ |$htPrecedenceTable| NIL) +(SETQ |$NRTmakeCompactDirect| NIL) (SETQ |$NRTquick| NIL) +(SETQ |$NRTmakeShortDirect| NIL) +(SETQ |$newWorld| NIL) (SETQ |$returnNowhereFromGoGet| NIL) (SETQ |$insideCanCoerceFrom| NIL) @@ -170,6 +174,7 @@ (SETQ |$prefix| NIL) (SETQ |$formalArgList| ()) +(SETQ |$NRTflag| T) (SETQ |$NRTaddForm| NIL) (SETQ |$NRTdeltaList| NIL) (SETQ |$NRTdeltaLength| 0) diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot index c72ab519..1cd31a55 100644 --- a/src/interp/sys-globals.boot +++ b/src/interp/sys-globals.boot @@ -82,6 +82,9 @@ $compCount := 0 $compUniquelyIfTrue := false ++ +$consistencyCheck := true + +++ $ConstructorCache := MAKE_-HASHTABLE "ID" ++ diff --git a/src/interp/wi2.boot b/src/interp/wi2.boot index 5e9ed89a..45fa17f3 100644 --- a/src/interp/wi2.boot +++ b/src/interp/wi2.boot @@ -131,7 +131,7 @@ compDefineFunctor1(df, m,$e,$prefix,$formalArgList) == $NRTloadTimeAlist: local := nil --used for things in slot4 (NRTsetVector4) $NRTdomainFormList: local := nil -- of form ((gensym . (Repe...)) ... -- the above optimizes the calls to local domains - $template: local:= nil --stored in the lisplib + $template: local:= nil --stored in the lisplib (if $NRTvec = true) $functionLocations: local := nil --locations of defined functions in source -- generate slots for arguments first, then for $NRTaddForm in compAdd for x in argl repeat NRTgetLocalIndex x @@ -651,6 +651,7 @@ compApplyModemap(form,modemap,$e,sl) == --+ information which is no longer valid; thus ignore this index and --+ store the signature instead. +--$NRTflag=true and f is [op1,d,.] and NE(d,'$) and member(op1,'(ELT CONST)) => f is [op1,d,.] and member(op1,'(ELT CONST Subsumed)) => [genDeltaEntry [op,:modemap],lt',$bindings] markImport mc |