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/ChangeLog | 11 | ||||
| -rw-r--r-- | src/interp/nruncomp.boot | 3 | ||||
| -rw-r--r-- | src/interp/nrunfast.boot | 12 | ||||
| -rw-r--r-- | src/interp/nrungo.boot | 17 | 
7 files changed, 44 insertions, 21 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-15. +# Generated by GNU Autoconf 2.60 for OpenAxiom 1.1.0-2007-12-16.  #  # 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-15' -PACKAGE_STRING='OpenAxiom 1.1.0-2007-12-15' +PACKAGE_VERSION='1.1.0-2007-12-16' +PACKAGE_STRING='OpenAxiom 1.1.0-2007-12-16'  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-15 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.1.0-2007-12-16 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-15:";; +     short | recursive ) echo "Configuration of OpenAxiom 1.1.0-2007-12-16:";;     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-15 +OpenAxiom configure 1.1.0-2007-12-16  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-15, which was +It was created by OpenAxiom $as_me 1.1.0-2007-12-16, 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-15, which was +This file was extended by OpenAxiom $as_me 1.1.0-2007-12-16, 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-15 +OpenAxiom config.status 1.1.0-2007-12-16  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 e642eade..e28c3715 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-15],  +AC_INIT([OpenAxiom], [1.1.0-2007-12-16],           [open-axiom-bugs@lists.sf.net])  AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 7f229697..0924b227 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-15],  +AC_INIT([OpenAxiom], [1.1.0-2007-12-16],           [open-axiom-bugs@lists.sf.net])  @ diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index 212bd868..97546f58 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,3 +1,14 @@ +2007-12-16  Gabriel Dos Reis  <gdr@cs.tamu.edu> + +	* nruncomp.boot (NOTES): Encode quasiquoted values too. +	($lookupDefaults): Define. +	(newLookupInDomain): Look up in the add-chain first. +	(newLookupInCategories): Likewise. +	(lazyMatch): Quasiquote is now like a Mapping. +	(newExpandLocalTypeForm): Quasiquote is no longer like QUOTE. +	* nrungo.boot (lookupInDomainAndDefaults): New. +	(compiledLookup): Use it. +  2007-12-15  Gabriel Dos Reis  <gdr@cs.tamu.edu>  	* nruncomp.boot (buildFunctor): Use $NRTbase instead of hardcoded diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot index d986a708..b7d91c33 100644 --- a/src/interp/nruncomp.boot +++ b/src/interp/nruncomp.boot @@ -113,7 +113,8 @@ NRTencode(x,y) == encode(x,y,true) where encode(x,compForm,firstTime) ==      QCAR x='Record or x is ['Union,['_:,a,b],:.] =>        [QCAR x,:[['_:,a,encode(b,c,false)]          for [.,a,b] in QCDR x for [.,=a,c] in CDR compForm]] -    isQuasiquote x => x +    (x' := isQuasiquote x) => +      quasiquote encode(x',isQuasiquote compForm,false)      constructor? QCAR x or MEMQ(QCAR x,'(Union Mapping)) =>        [QCAR x,:[encode(y,z,false) for y in QCDR x for z in CDR compForm]]      ['NRTEVAL,NRTreplaceAllLocalReferences COPY_-TREE lispize compForm] diff --git a/src/interp/nrunfast.boot b/src/interp/nrunfast.boot index d791335a..6a6c3ed4 100644 --- a/src/interp/nrunfast.boot +++ b/src/interp/nrunfast.boot @@ -38,6 +38,9 @@ import '"c-util"  ++  $doNotCompressHashTableIfTrue := false +++ +$lookupDefaults := false +  --=======================================================================  --                     Basic Functions  --======================================================================= @@ -222,7 +225,7 @@ newLookupInDomain(op,sig,addFormDomain,dollar,index) ==      INTEGERP KAR addFormCell =>        or/[newLookupInDomain(op,sig,addFormDomain,dollar,i) for i in addFormCell]      if null VECP addFormCell then lazyDomainSet(addFormCell,addFormDomain,index) -    lookupInDomainVector(op,sig,addFormDomain.index,dollar) +    lookupInDomainAndDefaults(op,sig,addFormDomain.index,dollar,false)    nil  --======================================================= @@ -368,7 +371,7 @@ newLookupInCategories1(op,sig,dom,dollar) ==      null package => nil      if $monitorNewWorld then        sayLooking1('"Looking at instantiated package ",package) -    res := lookupInDomainVector(op,sig,package,dollar) => +    res := lookupInDomainAndDefaults(op,sig,package,dollar,false) =>        if $monitorNewWorld = true then          sayBrightly '"candidate default package succeeds"        return res @@ -428,9 +431,8 @@ lazyMatch(source,lazyt,dollar,domain) ==        MEMQ(op,'(Record Union)) and first argl is [":",:.] =>          and/[stag = atag and lazyMatchArg(s,a,dollar,domain)                for [.,stag,s] in sargl for [.,atag,a] in argl] -      MEMQ(op,'(Union Mapping QUOTE)) => +      MEMQ(op,'(Union Mapping _[_|_|_] QUOTE)) =>           and/[lazyMatchArg(s,a,dollar,domain) for s in sargl for a in argl] -      op="[||]" => source = lazyt        coSig := GETDATABASE(op,'COSIG)        NULL coSig => error ["bad Constructor op", op]        and/[lazyMatchArg2(s,a,dollar,domain,flag) @@ -513,7 +515,7 @@ newExpandLocalTypeForm([functorName,:argl],dollar,domain) ==                                   for [.,tag,dom] in argl]]    MEMQ(functorName, '(Union Mapping)) =>            [functorName,:[newExpandLocalTypeArgs(a,dollar,domain,true) for a in argl]] -  functorName in '(QUOTE _[_|_|_]) => [functorName,:argl] +  functorName = "QUOTE"  => [functorName,:argl]    coSig := GETDATABASE(functorName,'COSIG)    NULL coSig => error ["bad functorName", functorName]    [functorName,:[newExpandLocalTypeArgs(a,dollar,domain,flag) diff --git a/src/interp/nrungo.boot b/src/interp/nrungo.boot index 968f4c09..f9b1f17f 100644 --- a/src/interp/nrungo.boot +++ b/src/interp/nrungo.boot @@ -57,10 +57,8 @@ compiledLookup(op,sig,dollar) ==  basicLookup(op,sig,domain,dollar) ==    domain.1 is ['lookupInDomain,:.] => lookupInDomainVector(op,sig,domain,dollar)    ----------new world code follows------------ -  $lookupDefaults : local := nil -- new world -  u := lookupInDomainVector(op,sig,domain,dollar) => u -  $lookupDefaults := true -  lookupInDomainVector(op,sig,domain,dollar) +  u := lookupInDomainAndDefaults(op,sig,domain,dollar,false) => u +  lookupInDomainAndDefaults(op,sig,domain,dollar,true)  compiledLookupCheck(op,sig,dollar) ==    fn := compiledLookup(op,sig,dollar) @@ -194,6 +192,17 @@ lookupInDomainVector(op,sig,domain,dollar) ==    slot1 := domain.1    SPADCALL(op,sig,dollar,slot1) + +++ same as lookupInDomainVector except that the use of defaults +++ (either in category packages or add-chains) is controlled +++ by `useDefaults'. +lookupInDomainAndDefaults(op,sig,domain,dollar,useDefaults) == +  savedLookupDefaults := $lookupDefaults +  $lookupDefaults := useDefaults +  fun := lookupInDomainVector(op,sig,domain,dollar) +  $lookupDefaults := savedLookupDefaults +  fun +  --=======================================================  --       Category Default Lookup (from goGet or lookupInAddChain)  --======================================================= | 
