diff options
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | configure.ac.pamphlet | 2 | ||||
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/interp/category.boot | 18 | ||||
-rw-r--r-- | src/interp/define.boot | 1 | ||||
-rw-r--r-- | src/interp/functor.boot | 13 | ||||
-rw-r--r-- | src/interp/g-opt.boot | 1 |
8 files changed, 36 insertions, 29 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.3.0-2008-11-27. +# Generated by GNU Autoconf 2.60 for OpenAxiom 1.3.0-2008-11-30. # # 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.3.0-2008-11-27' -PACKAGE_STRING='OpenAxiom 1.3.0-2008-11-27' +PACKAGE_VERSION='1.3.0-2008-11-30' +PACKAGE_STRING='OpenAxiom 1.3.0-2008-11-30' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1405,7 +1405,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.3.0-2008-11-27 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.3.0-2008-11-30 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1475,7 +1475,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-11-27:";; + short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-11-30:";; esac cat <<\_ACEOF @@ -1579,7 +1579,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.3.0-2008-11-27 +OpenAxiom configure 1.3.0-2008-11-30 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1593,7 +1593,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.3.0-2008-11-27, which was +It was created by OpenAxiom $as_me 1.3.0-2008-11-30, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -26424,7 +26424,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.3.0-2008-11-27, which was +This file was extended by OpenAxiom $as_me 1.3.0-2008-11-30, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -26473,7 +26473,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -OpenAxiom config.status 1.3.0-2008-11-27 +OpenAxiom config.status 1.3.0-2008-11-30 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 9904befe..ce10b75c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.3.0-2008-11-27], +AC_INIT([OpenAxiom], [1.3.0-2008-11-30], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 50424af1..efaf5d91 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1126,7 +1126,7 @@ information: <<Autoconf init>>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.3.0-2008-11-27], +AC_INIT([OpenAxiom], [1.3.0-2008-11-30], [open-axiom-bugs@lists.sf.net]) @ diff --git a/src/ChangeLog b/src/ChangeLog index 716a15e7..fb0ec9dc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2008-12-01 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/define.boot (compile): Don't check for PAC names. + * interp/g-opt.boot (optCall): Likewise. + * interp/functor.boot (SetFunctionSlots): Likewise. + (mkOperatorEntry): Lose first parameter. + (optPackageCall): Remove. + * interp/category.boot (mkCategory): Document. Adjust call to + mkOperatorEntry. + 2008-11-30 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/parse.boot (parseEquivalence): Remove. diff --git a/src/interp/category.boot b/src/interp/category.boot index c7d49b9c..91a79604 100644 --- a/src/interp/category.boot +++ b/src/interp/category.boot @@ -82,21 +82,26 @@ CategoryPrint(D,$e) == ++ Returns a fresly built category object for a domain or package ++ (as indicated by `domainOrPackage'), with signature list -++ designated by `sigList', attribute list designated by `attList, -++ domain list designatured by `domList', and a princical ancestor +++ designated by `sigList', attribute list designated by `attList', +++ used domains list designated by `domList', and a princical ancestor ++ category object designated by `PrincipalAncestor'. mkCategory: (%Symbol,%List,%List,%List, %Maybe %Shell) -> %Shell mkCategory(domainOrPackage,sigList,attList,domList,PrincipalAncestor) == NSigList := nil - if PrincipalAncestor=nil then count := 6 - else count := #PrincipalAncestor + -- Unless extending a principal ancestor (from the end), start + -- from the first free, unencumbered slot. + count := + PrincipalAncestor = nil => $NRTbase + #PrincipalAncestor sigList:= [if s is [sig,pred] then + -- Don't retain duplicate signatures. + -- ??? Should we not check for predicate subsumption too? or/[x is [[ =sig,.,:impl],:num] for x in NSigList] => [sig,pred,:impl] --only needed for multiple copies of sig num:= if domainOrPackage="domain" then count else count-5 - nsig:= mkOperatorEntry("domain",sig,pred,num) + nsig:= mkOperatorEntry(sig,pred,num) NSigList:= [[nsig,:count],:NSigList] count:= count+1 nsig @@ -119,12 +124,15 @@ mkCategory(domainOrPackage,sigList,attList,domList,PrincipalAncestor) == v is ["Record",.,:w] => "union"/[Prepare2 third x for x in w] [v] OldLocals:= nil + -- Remove possible duplicate local domain caches. if PrincipalAncestor then for u in (OldLocals:= third PrincipalAncestor.4) repeat NewLocals := delete(first u,NewLocals) + -- New local domains caches are hosted in slots at the end onward for u in NewLocals repeat OldLocals := [[u,:count],:OldLocals] count := count+1 + -- Build a fresh category object stuffed with all updated information v := newShell count v.0 := nil v.1 := sigList diff --git a/src/interp/define.boot b/src/interp/define.boot index 8e684640..6225e63b 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -1247,7 +1247,6 @@ compile u == INTERN STRCONC(encodeItem $prefix,'";",encodeItem op) isPackageFunction() and KAR $functorForm^="CategoryDefaults" => if null opmodes then userError ['"no modemap for ",op] - opmodes is [['PAC,.,name]] => name encodeFunctionName(op,$functorForm,$signatureOfForm,";",$suffix) encodeFunctionName(op,$functorForm,$signatureOfForm,";",$suffix) where diff --git a/src/interp/functor.boot b/src/interp/functor.boot index 2e0e7a4d..e31d5399 100644 --- a/src/interp/functor.boot +++ b/src/interp/functor.boot @@ -712,8 +712,7 @@ SetFunctionSlots(sig,body,flag,mode) == --mode is either "original" or "adding" else body:= SetFunctionSlots(truename,body,nil,mode) else nil else - if not (catImplem is ['PAC,:.]) then - keyedSystemError("S2OR0002",[catImplem]) + keyedSystemError("S2OR0002",[catImplem]) body is ["setShellEntry",:.] => body body is ['SETELT,:.] => systemErrorHere "SetFunctionSlots" body is ['QSETREFV,:.] => systemErrorHere "SetFunctionSlots" @@ -997,19 +996,11 @@ isCategoryPackageName nam == p := PNAME opOf nam p.(MAXINDEX p) = char '_& -mkOperatorEntry(domainOrPackage,opSig is [op,sig,:flag],pred,count) == - domainOrPackage^="domain" => - [opSig,pred,["PAC","$",name]] where - name() == encodeFunctionName(op,domainOrPackage,sig,":",count) +mkOperatorEntry(opSig is [op,sig,:flag],pred,count) == null flag => [opSig,pred,["ELT","$",count]] first flag="constant" => [[op,sig],pred,["CONST","$",count]] systemError ["unknown variable mode: ",flag] -optPackageCall(x,["PAC",packageVariableOrForm,functionName],arglist) == - RPLACA(x,functionName) - RPLACD(x,[:arglist,packageVariableOrForm]) - x - --% Code for encoding function names inside package or domain encodeFunctionName(fun,package is [packageName,:arglist],signature,sep,count) diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 2a67c9c4..63f99d40 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -144,7 +144,6 @@ optCall (x is ["call",:u]) == atom first x => first x [fn,:a]:= first x atom fn => (RPLAC(rest x,a); RPLAC(first x,fn)) - fn is ["PAC",:.] => optPackageCall(x,fn,a) fn is ["applyFun",name] => (RPLAC(first x,"SPADCALL"); RPLAC(rest x,[:a,name]); x) fn is [q,R,n] and MEMQ(q,'(getShellEntry ELT QREFELT CONST)) => |