diff options
-rw-r--r-- | src/ChangeLog | 9 | ||||
-rw-r--r-- | src/boot/utility.boot | 2 | ||||
-rw-r--r-- | src/interp/Makefile.in | 6 | ||||
-rw-r--r-- | src/interp/i-coerce.boot | 11 | ||||
-rw-r--r-- | src/interp/i-coerfn.boot | 7 |
5 files changed, 21 insertions, 14 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 4004f4b7..e4f5760b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2012-08-20 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/i-coerfn.boot: Do not import i-coerce. Import i-analy + and i-resolv intead. + ($CoerceTable): Fix embarrassing thinko. + * interp/i-coerce.boot: Import i-coerfn. + (coerceIntTableOrFunction): Tidy. + * boot/utility.boot (objectAssoc): Tidy. + 2012-08-19 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/util.lisp (BUILD-INTERPSYS): loadDelayedFFI early. diff --git a/src/boot/utility.boot b/src/boot/utility.boot index ec51df12..cdc6d05d 100644 --- a/src/boot/utility.boot +++ b/src/boot/utility.boot @@ -227,7 +227,7 @@ symbolAssoc(s,l) == objectAssoc(x,l) == repeat l isnt [p,:l] => return nil - p is [.,:.] and sameObject?(first p,x) => return p + p is [.,:.] and sameObject?(x,first p) => return p --% substitution diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index e67fbd37..b222b8da 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -92,7 +92,7 @@ OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \ g-error.$(FASLEXT) ggreater.$(FASLEXT) \ hypertex.$(FASLEXT) i-object.$(FASLEXT) \ i-analy.$(FASLEXT) i-resolv.$(FASLEXT) \ - i-coerce.$(FASLEXT) i-coerfn.$(FASLEXT) \ + i-coerfn.$(FASLEXT) i-coerce.$(FASLEXT) \ i-eval.$(FASLEXT) i-funsel.$(FASLEXT) \ i-intern.$(FASLEXT) i-map.$(FASLEXT) \ i-output.$(FASLEXT) i-special.$(FASLEXT) \ @@ -291,8 +291,8 @@ i-special.$(FASLEXT): i-analy.$(FASLEXT) i-funsel.$(FASLEXT): i-coerfn.$(FASLEXT) i-map.$(FASLEXT): i-object.$(FASLEXT) i-eval.$(FASLEXT): i-analy.$(FASLEXT) -i-coerfn.$(FASLEXT): i-coerce.$(FASLEXT) -i-coerce.$(FASLEXT): i-analy.$(FASLEXT) i-resolv.$(FASLEXT) +i-coerce.$(FASLEXT): i-coerfn.$(FASLEXT) +i-coerfn.$(FASLEXT): i-analy.$(FASLEXT) i-resolv.$(FASLEXT) i-resolv.$(FASLEXT): i-object.$(FASLEXT) i-analy.$(FASLEXT): i-object.$(FASLEXT) i-intern.$(FASLEXT): i-object.$(FASLEXT) ptrees.$(FASLEXT) diff --git a/src/interp/i-coerce.boot b/src/interp/i-coerce.boot index 919a6979..4cddcbc7 100644 --- a/src/interp/i-coerce.boot +++ b/src/interp/i-coerce.boot @@ -32,8 +32,7 @@ -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import i_-analy -import i_-resolv +import i_-coerfn namespace BOOT $useCoerceOrCroak := true @@ -1133,13 +1132,13 @@ coerceIntTableOrFunction(triple,t2) == null isValidType t2 => nil -- added 9-18-85 by RSS null isLegitimateMode(t2,nil,nil) => nil -- added 6-28-87 by RSS t1 := objMode triple - p := objectAssoc(first t1,$CoerceTable) - p and objectAssoc(first t2,rest p) is [.,:[tag,fun]] => + p := symbolAssoc(first t1,$CoerceTable) + p and symbolTarget(first t2,rest p) is [tag,fun] => val := objVal triple fun='Identity => objNew(val,t2) tag='total => - coerceByTable(fun,val,t1,t2,'T) or coerceByFunction(triple,t2) - coerceByTable(fun,val,t1,t2,nil) or coerceByFunction(triple,t2) + coerceByTable(fun,val,t1,t2,true) or coerceByFunction(triple,t2) + coerceByTable(fun,val,t1,t2,false) or coerceByFunction(triple,t2) coerceByFunction(triple,t2) coerceCommuteTest(t1,t2) == diff --git a/src/interp/i-coerfn.boot b/src/interp/i-coerfn.boot index 36d5772b..bef965fc 100644 --- a/src/interp/i-coerfn.boot +++ b/src/interp/i-coerfn.boot @@ -32,7 +32,8 @@ -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import i_-coerce +import i_-analy +import i_-resolv namespace BOOT $coerceFailure := gensym() @@ -1976,9 +1977,7 @@ $CoerceTable == '( _ (Tuple indeterm L2Tuple) _ (Vector indeterm L2V) _ ))_ - ) -$CoerceTable == append!($CoerceTable,'( _ (Matrix . ( _ (List indeterm M2L) _ (RectangularMatrix partial M2Rm) _ @@ -2099,7 +2098,7 @@ $CoerceTable == append!($CoerceTable,'( _ (SquareMatrix indeterm V2Sm) _ (Stream indeterm Agg2Agg) _ ) ) _ - ) ) + ) -- this list is too long for the parser, so it has to be split into parts -- specifies the commute functions |