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 | 14 | ||||
-rw-r--r-- | src/interp/compiler.boot | 19 | ||||
-rw-r--r-- | src/interp/nruncomp.boot | 4 | ||||
-rw-r--r-- | src/interp/wi1.boot | 2 | ||||
-rw-r--r-- | src/interp/wi2.boot | 6 |
8 files changed, 40 insertions, 27 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-03-09. +# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2010-03-10. # # 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-03-09' -PACKAGE_STRING='OpenAxiom 1.4.0-2010-03-09' +PACKAGE_VERSION='1.4.0-2010-03-10' +PACKAGE_STRING='OpenAxiom 1.4.0-2010-03-10' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1511,7 +1511,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-03-09 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.4.0-2010-03-10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1581,7 +1581,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2010-03-09:";; + short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2010-03-10:";; esac cat <<\_ACEOF @@ -1688,7 +1688,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.4.0-2010-03-09 +OpenAxiom configure 1.4.0-2010-03-10 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1702,7 +1702,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-03-09, which was +It was created by OpenAxiom $as_me 1.4.0-2010-03-10, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -21165,7 +21165,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-03-09, which was +This file was extended by OpenAxiom $as_me 1.4.0-2010-03-10, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21228,7 +21228,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-03-09 +OpenAxiom config.status 1.4.0-2010-03-10 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 ac9d6c20..fe290d2b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.4.0-2010-03-09], +AC_INIT([OpenAxiom], [1.4.0-2010-03-10], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index b253e1e0..ceca945e 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1200,7 +1200,7 @@ information: <<Autoconf init>>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.4.0-2010-03-09], +AC_INIT([OpenAxiom], [1.4.0-2010-03-10], [open-axiom-bugs@lists.sf.net]) @ diff --git a/src/ChangeLog b/src/ChangeLog index 57f38916..7f9357b9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2010-03-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/nruncomp.boot (genDeltaEntry): Take a second, environment + argument. Pass to compOrCroak. + * interp/compiler.boot (compElt): Adjust call to genDeltaEntry. + (compCase1): Likewise. + (coerceByModemap): Likewise. + (autoCoerceByModemap): Likewise. + (compCat): Likewise. + (compViableModemap): Take an additional environment argument. + Pass it to genDeltaEntry. + (compApplyModemap): Adjust call to compViableModemap. + (compResolveCall): Likewise. + 2010-03-09 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/nruncomp.boot (needToQuoteFlags?): New. diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index 12e8f363..36c75a74 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -1154,7 +1154,7 @@ compElt(form,m,E) == mmList.(0) [sig,[pred,val]]:= modemap #sig ~= 2 and val isnt ["CONST",:.] => nil - val := genDeltaEntry [opOf anOp,:modemap] + val := genDeltaEntry([opOf anOp,:modemap],E) convert([["call",val],second sig,E], m) compForm(form,m,E) @@ -1515,7 +1515,7 @@ compCase1(x,m,e) == | map is [.,=$Boolean,s,t] and modeEqual(maybeSpliceMode t,m) and modeEqual(s,m')] or return nil fn:= (or/[mm for (mm := [.,[cond,selfn]]) in u | cond=true]) or return nil - fn := genDeltaEntry ["case",:fn] + fn := genDeltaEntry(["case",:fn],e) -- user-defined `case' functions really are binary, as opposed to -- the compiler-synthetized versions for Union instances. not isUnionMode(m',e') => [["call",fn,x',MKQ m],$Boolean,e'] @@ -1798,8 +1798,7 @@ coerceByModemap([x,m,e],m') == --mm:= (or/[mm for (mm:=[.,[cond,.]]) in u | cond=true]) or return nil mm:=first u -- patch for non-trival conditons - fn := - genDeltaEntry ['coerce,:mm] + fn := genDeltaEntry(['coerce,:mm],e) [["call",fn,x],m',e] autoCoerceByModemap([x,source,e],target) == @@ -1812,11 +1811,11 @@ autoCoerceByModemap([x,source,e],target) == source is ["Union",:l] and member(target,l) => (y:= get(x,"condition",e)) and (or/[u is ["case",., =target] for u in y]) - => [["call",genDeltaEntry ["autoCoerce", :fn],x],target,e] + => [["call",genDeltaEntry(["autoCoerce", :fn],e),x],target,e] x="$fromCoerceable$" => nil stackMessage('"cannot coerce %1b of mode %2pb to %3pb without a case statement", [x,source,target]) - [["call",genDeltaEntry ["autoCoerce", :fn],x],target,e] + [["call",genDeltaEntry(["autoCoerce", :fn],e),x],target,e] ++ Compile a comma separated expression list. These typically are @@ -1898,7 +1897,7 @@ compCat(form is [functorName,:argl],m,e) == ++ `op' has been selected as a viable candidate exported operation, ++ for argument triple list `argTl', modemap `mm'. ++ Return the most refined implementation that makes the call successful. -compViableModemap(op,argTl,mm) == +compViableModemap(op,argTl,mm,e) == [[dc,.,:margl],fnsel] := mm -- 1. Give up if the call is hopeless. argTl := [coerce(x,m) or return "failed" for x in argTl for m in margl] @@ -1913,7 +1912,7 @@ compViableModemap(op,argTl,mm) == -- information which is no longer valid; thus ignore this index and -- store the signature instead. f is [op1,.,.] and op1 in '(ELT CONST Subsumed) => - [genDeltaEntry [op,:mm],argTl] + [genDeltaEntry([op,:mm],e),argTl] [f,argTl] compApplyModemap(form,modemap,$e) == @@ -1933,7 +1932,7 @@ compApplyModemap(form,modemap,$e) == lt="failed" => return nil -- 2. Select viable modemap implementation. - compViableModemap(op,lt,modemap) + compViableModemap(op,lt,modemap,$e) compMapCond': (%Form,%Mode) -> %Boolean compMapCond'(cexpr,dc) == @@ -1965,7 +1964,7 @@ compResolveCall(op,argTs,m,$e) == [t for mm in getModemapList(op,#argTs,$e) | t := tryMM] where tryMM() == not coerceable(mm.mmTarget,m,$e) =>nil - compViableModemap(op,argTs,mm) isnt [f,Ts] => nil + compViableModemap(op,argTs,mm,$e) isnt [f,Ts] => nil coerce([["call",f,:[T.expr for T in Ts]],mm.mmTarget,$e],m) #outcomes ~= 1 => nil first outcomes diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot index 3b1dd8e3..69a50c7a 100644 --- a/src/interp/nruncomp.boot +++ b/src/interp/nruncomp.boot @@ -188,7 +188,7 @@ optDeltaEntry(op,sig,dc,eltOrConst) == fun := first fun getFunctionReplacement compileTimeBindingOf fun -genDeltaEntry opMmPair == +genDeltaEntry(opMmPair,e) == --called from compApplyModemap --$NRTdeltaLength=0.. always equals length of $NRTdeltaList [op,[dc,:sig],[.,cform:=[eltOrConst,.,nsig]]] := opMmPair @@ -212,7 +212,7 @@ genDeltaEntry opMmPair == $NRTdeltaList:= [["%domain",NRTaddInner dc],:$NRTdeltaList] saveNRTdeltaListComp:= $NRTdeltaListComp:=[nil,:$NRTdeltaListComp] $NRTdeltaLength := $NRTdeltaLength+1 - compEntry:= (compOrCroak(odc,$EmptyMode,$e)).expr + compEntry:= (compOrCroak(odc,$EmptyMode,e)).expr RPLACA(saveNRTdeltaListComp,compEntry) u := [eltOrConst,'$,$NRTbase+$NRTdeltaLength-index] where index() == diff --git a/src/interp/wi1.boot b/src/interp/wi1.boot index 09e160f8..172c6b2e 100644 --- a/src/interp/wi1.boot +++ b/src/interp/wi1.boot @@ -933,7 +933,7 @@ coerceByModemap([x,m,e],m') == s] and (modeEqual(t,m') or isSubset(t,m',e)) and (modeEqual(s,m) or isSubset(m,s,e))] or return nil mm:=first u -- patch for non-trival conditons - fn := genDeltaEntry ['coerce,:mm] + fn := genDeltaEntry(['coerce,:mm],e) T := [["call",fn,x],m',e] markCoerceByModemap(x,m,m',markCallCoerce(x,m',T),nil) diff --git a/src/interp/wi2.boot b/src/interp/wi2.boot index 7e9e99a5..c66763cf 100644 --- a/src/interp/wi2.boot +++ b/src/interp/wi2.boot @@ -583,7 +583,7 @@ compElt(origForm,m,E) == [sig,[pred,val]]:= modemap #sig~=2 and val isnt ["CONST",:.] => nil --+ - val := genDeltaEntry [opOf anOp,:modemap] + val := genDeltaEntry([opOf anOp,:modemap],E) x := markTran(origForm,[val],sig,[E]) [x,second sig,E] --implies fn calls used to access constants compForm(origForm,m,E) @@ -630,7 +630,7 @@ compApplyModemap(form,modemap,$e) == --$NRTflag=true and f is [op1,d,.] and NE(d,'$) and member(op1,'(ELT CONST)) => f is [op1,d,.] and op1 in '(ELT CONST Subsumed) => - [genDeltaEntry [op,:modemap],lt',$bindings] + [genDeltaEntry([op,:modemap],$e),lt',$bindings] markImport mc [f,lt',$bindings] @@ -693,7 +693,7 @@ optDeltaEntry(op,sig,dc,eltOrConst) == -- ['XLAM,'ignore,MKQ SPADCALL fn] getFunctionReplacement compileTimeBindingOf first fn -genDeltaEntry opMmPair == +genDeltaEntry(opMmPair,e) == --called from compApplyModemap --$NRTdeltaLength=0.. always equals length of $NRTdeltaList [.,[odc,:.],.] := opMmPair |