diff options
Diffstat (limited to 'src/interp')
-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 |
3 files changed, 11 insertions, 13 deletions
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 |