diff --git a/changelog b/changelog index 0f478d6..4db8b59 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20091006 tpd src/axiom-website/patches.html 20091006.02.tpd.patch +20091006 tpd src/interp/i-code.lisp cleanup 20091006 tpd src/axiom-website/patches.html 20091006.01.tpd.patch 20091006 tpd src/interp/i-coerce.lisp cleanup 20091005 tpd src/axiom-website/patches.html 20091005.03.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index e4be008..9d4c878 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2109,5 +2109,7 @@ src/interp/i-funsel.lisp cleanup
src/interp/i-coerfn.lisp cleanup
20091006.01.tpd.patch src/interp/i-coerce.lisp cleanup
+20091006.02.tpd.patch +src/interp/i-code.lisp cleanup
diff --git a/src/interp/i-code.lisp.pamphlet b/src/interp/i-code.lisp.pamphlet index e0bf4fb..0878527 100755 --- a/src/interp/i-code.lisp.pamphlet +++ b/src/interp/i-code.lisp.pamphlet @@ -82,190 +82,207 @@ ; intCodeGenCoerce1(val,t1,t2) (DEFUN |intCodeGenCOERCE| (|triple| |t2|) - (PROG (|t1| |val| |trip| |ISTMP#3| |t0| |LETTMP#1| |val0| |l| |label| - |lastCode| |conds| |p| |v| |t1'| |ISTMP#2| |val'| |ISTMP#1| - |pred| |code|) - (RETURN - (SEQ - (PROGN - (SPADLET |t1| (|objMode| |triple|)) - (COND - ((BOOT-EQUAL |t1| |$EmptyMode|) NIL) - ((BOOT-EQUAL |t1| |t2|) |triple|) - ((QUOTE T) - (SPADLET |val| (|objVal| |triple|)) - (COND - ((AND (PAIRP |val|) - (EQ (QCAR |val|) (QUOTE |coerceOrCroak|)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |val|)) - (AND (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |trip| (QCAR |ISTMP#1|)) - (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) - (AND - (PAIRP |ISTMP#2|) - (PROGN - (SPADLET |t1'| (QCAR |ISTMP#2|)) - (SPADLET |ISTMP#3| (QCDR |ISTMP#2|)) - (AND (PAIRP |ISTMP#3|) (EQ (QCDR |ISTMP#3|) NIL))))))) - (SPADLET |t0| (|objCodeMode| |trip|)) - (PROGN - (SPADLET |LETTMP#1| (|objCodeVal| |trip|)) - (SPADLET |val0| (CADR |LETTMP#1|)) - |LETTMP#1|) - (OR (BOOT-EQUAL |t1| |$Void|) - (|canCoerceFrom| (|removeQuote| |t0|) |t2|))) - (|intCodeGenCOERCE| (|objNew| |val0| (|removeQuote| |t0|)) |t2|)) - ((AND (PAIRP |val|) - (EQ (QCAR |val|) (QUOTE THROW)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |val|)) - (AND - (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |label| (QCAR |ISTMP#1|)) - (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) - (AND - (PAIRP |ISTMP#2|) - (EQ (QCDR |ISTMP#2|) NIL) - (PROGN (SPADLET |code| (QCAR |ISTMP#2|)) (QUOTE T))))))) - (COND - ((AND (PAIRP |label|) - (EQ (QCAR |label|) (QUOTE QUOTE)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |label|)) - (AND - (PAIRP |ISTMP#1|) - (EQ (QCDR |ISTMP#1|) NIL) - (PROGN (SPADLET |l| (QCAR |ISTMP#1|)) (QUOTE T))))) - (SPADLET |label| |l|))) - (COND - ((OR (NULL |$compilingMap|) - (NEQUAL |label| (|mapCatchName| |$mapName|))) - (|objNew| - (CONS - (QUOTE THROW) - (CONS - |label| - (CONS - (|wrapped2Quote| - (|objVal| (|intCodeGenCOERCE| (|objNew| |code| |t1|) |t2|))) - NIL))) - |t2|)) - ((QUOTE T) (|objNew| |val| |t2|)))) - ((AND (PAIRP |val|) - (EQ (QCAR |val|) (QUOTE PROGN)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |val|)) - (AND - (PAIRP |ISTMP#1|) - (PROGN (SPADLET |ISTMP#2| (REVERSE |ISTMP#1|)) (QUOTE T)) - (PAIRP |ISTMP#2|) - (PROGN - (SPADLET |lastCode| (QCAR |ISTMP#2|)) - (SPADLET |code| (QCDR |ISTMP#2|)) - (QUOTE T)) - (PROGN (SPADLET |code| (NREVERSE |code|)) (QUOTE T))))) - (|objNew| - (CONS - (QUOTE PROGN) - (APPEND - |code| - (CONS - (|wrapped2Quote| - (|objVal| (|intCodeGenCOERCE| (|objNew| |lastCode| |t1|) |t2|))) - NIL))) - |t2|)) - ((AND (PAIRP |val|) - (EQ (QCAR |val|) (QUOTE COND)) - (PROGN (SPADLET |conds| (QCDR |val|)) (QUOTE T))) - (|objNew| - (CONS - (QUOTE COND) - (PROG (#0=#:G166151) - (SPADLET #0# NIL) - (RETURN - (DO ((#1=#:G166157 |conds| (CDR #1#)) (#2=#:G166119 NIL)) - ((OR (ATOM #1#) - (PROGN (SETQ #2# (CAR #1#)) NIL) - (PROGN - (PROGN - (SPADLET |p| (CAR #2#)) - (SPADLET |v| (CADR #2#)) - #2#) - NIL)) - (NREVERSE0 #0#)) - (SEQ - (EXIT - (SETQ #0# - (CONS - (CONS - |p| - (CONS - (|wrapped2Quote| - (|objVal| (|intCodeGenCOERCE| (|objNew| |v| |t1|) |t2|))) - NIL)) - #0#)))))))) - |t2|)) - ((|absolutelyCanCoerceByCheating| |t1| |t2|) (|objNew| |val| |t2|)) - ((BOOT-EQUAL |t2| (QUOTE (|Any|))) - (|objNew| - (CONS (QUOTE CONS) (CONS (MKQ |t1|) (CONS |val| NIL))) |t2|)) - ((AND (BOOT-EQUAL |t1| (QUOTE (|Any|))) - (PAIRP |val|) - (EQUAL (QCAR |val|) (QUOTE CONS)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |val|)) - (AND - (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |t1'| (QCAR |ISTMP#1|)) - (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) - (AND - (PAIRP |ISTMP#2|) - (EQ (QCDR |ISTMP#2|) NIL) - (PROGN (SPADLET |val'| (QCAR |ISTMP#2|)) (QUOTE T))))))) - (|intCodeGenCOERCE| (|objNew| |val'| (|removeQuote| |t1'|)) |t2|)) - ((AND (PAIRP |t1|) - (EQ (QCAR |t1|) (QUOTE |Equation|)) - (BOOT-EQUAL |t2| |$Boolean|)) - (|coerceByFunction| |triple| |t2|)) - ((AND (BOOT-EQUAL |t1| (QUOTE |$NoValueMode|)) - (PAIRP |val|) - (EQ (QCAR |val|) (QUOTE COND)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |val|)) - (AND - (PAIRP |ISTMP#1|) - (EQ (QCDR |ISTMP#1|) NIL) - (PROGN (SPADLET |pred| (QCAR |ISTMP#1|)) (QUOTE T))))) - (SPADLET |code| - (CONS - (QUOTE COND) - (CONS - |pred| - (CONS - (CONS - (MKQ (QUOTE T)) - (CONS - (CONS - (QUOTE |throwKeyedMsg|) - (CONS (MKQ (QUOTE S2IM0016)) (CONS (MKQ |$mapName|) NIL))) - NIL)) - NIL)))) - (|objNew| |code| |t2|)) - ((BOOT-EQUAL |t2| |$OutputForm|) (|coerceByFunction| |triple| |t2|)) - ((|isSubDomain| |t1| |$Integer|) - (|intCodeGenCOERCE| (|objNew| |val| |$Integer|) |t2|)) - ((AND (NULL (|containsVariables| |t2|)) - (|canCoerceByFunction| |t1| |t2|)) - (COND - ((AND (NULL (|canCoerceByMap| |t1| |t2|)) - (SPADLET |code| (|coerceByFunction| |triple| |t2|))) - |code|) - ((QUOTE T) (|intCodeGenCoerce1| |val| |t1| |t2|)))) - ((QUOTE T) (|intCodeGenCoerce1| |val| |t1| |t2|)))))))))) + (PROG (|t1| |val| |trip| |ISTMP#3| |t0| |LETTMP#1| |val0| |l| |label| + |lastCode| |conds| |p| |v| |t1'| |ISTMP#2| |val'| + |ISTMP#1| |pred| |code|) + (DECLARE (SPECIAL |$Integer| |$OutputForm| |$mapName| + |$NoValueMode| |$Boolean| |$compilingMap| |$Void| + |$EmptyMode|)) + (RETURN + (SEQ (PROGN + (SPADLET |t1| (|objMode| |triple|)) + (COND + ((BOOT-EQUAL |t1| |$EmptyMode|) NIL) + ((BOOT-EQUAL |t1| |t2|) |triple|) + ('T (SPADLET |val| (|objVal| |triple|)) + (COND + ((AND (PAIRP |val|) + (EQ (QCAR |val|) '|coerceOrCroak|) + (PROGN + (SPADLET |ISTMP#1| (QCDR |val|)) + (AND (PAIRP |ISTMP#1|) + (PROGN + (SPADLET |trip| (QCAR |ISTMP#1|)) + (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) + (AND (PAIRP |ISTMP#2|) + (PROGN + (SPADLET |t1'| + (QCAR |ISTMP#2|)) + (SPADLET |ISTMP#3| + (QCDR |ISTMP#2|)) + (AND (PAIRP |ISTMP#3|) + (EQ (QCDR |ISTMP#3|) NIL))))))) + (SPADLET |t0| (|objCodeMode| |trip|)) + (PROGN + (SPADLET |LETTMP#1| (|objCodeVal| |trip|)) + (SPADLET |val0| (CADR |LETTMP#1|)) + |LETTMP#1|) + (OR (BOOT-EQUAL |t1| |$Void|) + (|canCoerceFrom| (|removeQuote| |t0|) |t2|))) + (|intCodeGenCOERCE| + (|objNew| |val0| (|removeQuote| |t0|)) |t2|)) + ((AND (PAIRP |val|) (EQ (QCAR |val|) 'THROW) + (PROGN + (SPADLET |ISTMP#1| (QCDR |val|)) + (AND (PAIRP |ISTMP#1|) + (PROGN + (SPADLET |label| (QCAR |ISTMP#1|)) + (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) + (AND (PAIRP |ISTMP#2|) + (EQ (QCDR |ISTMP#2|) NIL) + (PROGN + (SPADLET |code| + (QCAR |ISTMP#2|)) + 'T)))))) + (COND + ((AND (PAIRP |label|) (EQ (QCAR |label|) 'QUOTE) + (PROGN + (SPADLET |ISTMP#1| (QCDR |label|)) + (AND (PAIRP |ISTMP#1|) + (EQ (QCDR |ISTMP#1|) NIL) + (PROGN + (SPADLET |l| (QCAR |ISTMP#1|)) + 'T)))) + (SPADLET |label| |l|))) + (COND + ((OR (NULL |$compilingMap|) + (NEQUAL |label| (|mapCatchName| |$mapName|))) + (|objNew| + (CONS 'THROW + (CONS |label| + (CONS + (|wrapped2Quote| + (|objVal| + (|intCodeGenCOERCE| + (|objNew| |code| |t1|) |t2|))) + NIL))) + |t2|)) + ('T (|objNew| |val| |t2|)))) + ((AND (PAIRP |val|) (EQ (QCAR |val|) 'PROGN) + (PROGN + (SPADLET |ISTMP#1| (QCDR |val|)) + (AND (PAIRP |ISTMP#1|) + (PROGN + (SPADLET |ISTMP#2| + (REVERSE |ISTMP#1|)) + 'T) + (PAIRP |ISTMP#2|) + (PROGN + (SPADLET |lastCode| (QCAR |ISTMP#2|)) + (SPADLET |code| (QCDR |ISTMP#2|)) + 'T) + (PROGN + (SPADLET |code| (NREVERSE |code|)) + 'T)))) + (|objNew| + (CONS 'PROGN + (APPEND |code| + (CONS + (|wrapped2Quote| + (|objVal| + (|intCodeGenCOERCE| + (|objNew| |lastCode| |t1|) + |t2|))) + NIL))) + |t2|)) + ((AND (PAIRP |val|) (EQ (QCAR |val|) 'COND) + (PROGN (SPADLET |conds| (QCDR |val|)) 'T)) + (|objNew| + (CONS 'COND + (PROG (G166151) + (SPADLET G166151 NIL) + (RETURN + (DO ((G166157 |conds| + (CDR G166157)) + (G166119 NIL)) + ((OR (ATOM G166157) + (PROGN + (SETQ G166119 + (CAR G166157)) + NIL) + (PROGN + (PROGN + (SPADLET |p| + (CAR G166119)) + (SPADLET |v| + (CADR G166119)) + G166119) + NIL)) + (NREVERSE0 G166151)) + (SEQ + (EXIT + (SETQ G166151 + (CONS + (CONS |p| + (CONS + (|wrapped2Quote| + (|objVal| + (|intCodeGenCOERCE| + (|objNew| |v| |t1|) |t2|))) + NIL)) + G166151)))))))) + |t2|)) + ((|absolutelyCanCoerceByCheating| |t1| |t2|) + (|objNew| |val| |t2|)) + ((BOOT-EQUAL |t2| '(|Any|)) + (|objNew| + (CONS 'CONS (CONS (MKQ |t1|) (CONS |val| NIL))) + |t2|)) + ((AND (BOOT-EQUAL |t1| '(|Any|)) (PAIRP |val|) + (EQUAL (QCAR |val|) 'CONS) + (PROGN + (SPADLET |ISTMP#1| (QCDR |val|)) + (AND (PAIRP |ISTMP#1|) + (PROGN + (SPADLET |t1'| (QCAR |ISTMP#1|)) + (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) + (AND (PAIRP |ISTMP#2|) + (EQ (QCDR |ISTMP#2|) NIL) + (PROGN + (SPADLET |val'| + (QCAR |ISTMP#2|)) + 'T)))))) + (|intCodeGenCOERCE| + (|objNew| |val'| (|removeQuote| |t1'|)) |t2|)) + ((AND (PAIRP |t1|) (EQ (QCAR |t1|) '|Equation|) + (BOOT-EQUAL |t2| |$Boolean|)) + (|coerceByFunction| |triple| |t2|)) + ((AND (BOOT-EQUAL |t1| '|$NoValueMode|) (PAIRP |val|) + (EQ (QCAR |val|) 'COND) + (PROGN + (SPADLET |ISTMP#1| (QCDR |val|)) + (AND (PAIRP |ISTMP#1|) + (EQ (QCDR |ISTMP#1|) NIL) + (PROGN + (SPADLET |pred| (QCAR |ISTMP#1|)) + 'T)))) + (SPADLET |code| + (CONS 'COND + (CONS |pred| + (CONS + (CONS (MKQ 'T) + (CONS + (CONS '|throwKeyedMsg| + (CONS (MKQ 'S2IM0016) + (CONS (MKQ |$mapName|) + NIL))) + NIL)) + NIL)))) + (|objNew| |code| |t2|)) + ((BOOT-EQUAL |t2| |$OutputForm|) + (|coerceByFunction| |triple| |t2|)) + ((|isSubDomain| |t1| |$Integer|) + (|intCodeGenCOERCE| (|objNew| |val| |$Integer|) + |t2|)) + ((AND (NULL (|containsVariables| |t2|)) + (|canCoerceByFunction| |t1| |t2|)) + (COND + ((AND (NULL (|canCoerceByMap| |t1| |t2|)) + (SPADLET |code| + (|coerceByFunction| |triple| |t2|))) + |code|) + ('T (|intCodeGenCoerce1| |val| |t1| |t2|)))) + ('T (|intCodeGenCoerce1| |val| |t1| |t2|)))))))))) ;intCodeGenCoerce1(val,t1,t2) == ; -- Internal function to previous one @@ -275,13 +292,12 @@ ; MKQ t2, MKQ $mapName],t2) (DEFUN |intCodeGenCoerce1| (|val| |t1| |t2|) - (|objNew| - (CONS - (QUOTE |coerceOrCroak|) - (CONS - (|mkObjCode| (CONS (QUOTE |wrap|) (CONS |val| NIL)) |t1|) - (CONS (MKQ |t2|) (CONS (MKQ |$mapName|) NIL)))) - |t2|)) + (DECLARE (SPECIAL |$mapName|)) + (|objNew| + (CONS '|coerceOrCroak| + (CONS (|mkObjCode| (CONS '|wrap| (CONS |val| NIL)) |t1|) + (CONS (MKQ |t2|) (CONS (MKQ |$mapName|) NIL)))) + |t2|)) ;--% Map components ;wrapMapBodyWithCatch body == @@ -299,83 +315,76 @@ ; else ['CATCH,MKQ mapCatchName $mapName,body] (DEFUN |wrapMapBodyWithCatch| (|body|) - (PROG (|trip| |ISTMP#4| |targ| |ISTMP#5| |mapn| |ISTMP#1| |v| |ISTMP#2| - |m| |ISTMP#3| |e|) - (RETURN - (COND - ((EQL |$mapThrowCount| 0) |body|) - ((AND (PAIRP |body|) - (EQ (QCAR |body|) (QUOTE |failCheck|)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |body|)) - (AND - (PAIRP |ISTMP#1|) - (EQ (QCDR |ISTMP#1|) NIL) - (PROGN - (SPADLET |ISTMP#2| (QCAR |ISTMP#1|)) - (AND - (PAIRP |ISTMP#2|) - (EQ (QCAR |ISTMP#2|) (QUOTE |coerceOrFail|)) + (PROG (|trip| |ISTMP#4| |targ| |ISTMP#5| |mapn| |ISTMP#1| |v| + |ISTMP#2| |m| |ISTMP#3| |e|) + (DECLARE (SPECIAL |$mapName| |$mapThrowCount|)) + (RETURN + (COND + ((EQL |$mapThrowCount| 0) |body|) + ((AND (PAIRP |body|) (EQ (QCAR |body|) '|failCheck|) (PROGN - (SPADLET |ISTMP#3| (QCDR |ISTMP#2|)) - (AND - (PAIRP |ISTMP#3|) - (PROGN - (SPADLET |trip| (QCAR |ISTMP#3|)) - (SPADLET |ISTMP#4| (QCDR |ISTMP#3|)) - (AND - (PAIRP |ISTMP#4|) - (PROGN - (SPADLET |targ| (QCAR |ISTMP#4|)) - (SPADLET |ISTMP#5| (QCDR |ISTMP#4|)) - (AND - (PAIRP |ISTMP#5|) - (EQ (QCDR |ISTMP#5|) NIL) - (PROGN - (SPADLET |mapn| (QCAR |ISTMP#5|)) - (QUOTE T))))))))))))) - (COND - ((AND (PAIRP |trip|) - (EQ (QCAR |trip|) (QUOTE LIST)) - (PROGN - (SPADLET |ISTMP#1| (QCDR |trip|)) - (AND - (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |v| (QCAR |ISTMP#1|)) - (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) - (AND - (PAIRP |ISTMP#2|) - (PROGN - (SPADLET |m| (QCAR |ISTMP#2|)) - (SPADLET |ISTMP#3| (QCDR |ISTMP#2|)) - (AND - (PAIRP |ISTMP#3|) - (EQ (QCDR |ISTMP#3|) NIL) - (PROGN (SPADLET |e| (QCAR |ISTMP#3|)) (QUOTE T))))))))) - (CONS - (QUOTE |failCheck|) - (CONS - (CONS - (QUOTE |coerceOrFail|) - (CONS - (CONS - (QUOTE LIST) - (CONS - (CONS - (QUOTE CATCH) - (CONS (MKQ (|mapCatchName| |$mapName|)) (CONS |v| NIL))) - (CONS |m| (CONS |e| NIL)))) - (CONS |targ| (CONS |mapn| NIL)))) - NIL))) - ((QUOTE T) - (|keyedSystemError| 'S2GE0016 - (CONS "wrapMapBodyWithCatch" - (CONS "bad CATCH for in function form" NIL)))))) - ((QUOTE T) - (CONS - (QUOTE CATCH) - (CONS (MKQ (|mapCatchName| |$mapName|)) (CONS |body| NIL)))))))) + (SPADLET |ISTMP#1| (QCDR |body|)) + (AND (PAIRP |ISTMP#1|) (EQ (QCDR |ISTMP#1|) NIL) + (PROGN + (SPADLET |ISTMP#2| (QCAR |ISTMP#1|)) + (AND (PAIRP |ISTMP#2|) + (EQ (QCAR |ISTMP#2|) '|coerceOrFail|) + (PROGN + (SPADLET |ISTMP#3| (QCDR |ISTMP#2|)) + (AND (PAIRP |ISTMP#3|) + (PROGN + (SPADLET |trip| (QCAR |ISTMP#3|)) + (SPADLET |ISTMP#4| + (QCDR |ISTMP#3|)) + (AND (PAIRP |ISTMP#4|) + (PROGN + (SPADLET |targ| + (QCAR |ISTMP#4|)) + (SPADLET |ISTMP#5| + (QCDR |ISTMP#4|)) + (AND (PAIRP |ISTMP#5|) + (EQ (QCDR |ISTMP#5|) NIL) + (PROGN + (SPADLET |mapn| + (QCAR |ISTMP#5|)) + 'T)))))))))))) + (COND + ((AND (PAIRP |trip|) (EQ (QCAR |trip|) 'LIST) + (PROGN + (SPADLET |ISTMP#1| (QCDR |trip|)) + (AND (PAIRP |ISTMP#1|) + (PROGN + (SPADLET |v| (QCAR |ISTMP#1|)) + (SPADLET |ISTMP#2| (QCDR |ISTMP#1|)) + (AND (PAIRP |ISTMP#2|) + (PROGN + (SPADLET |m| (QCAR |ISTMP#2|)) + (SPADLET |ISTMP#3| (QCDR |ISTMP#2|)) + (AND (PAIRP |ISTMP#3|) + (EQ (QCDR |ISTMP#3|) NIL) + (PROGN + (SPADLET |e| (QCAR |ISTMP#3|)) + 'T)))))))) + (CONS '|failCheck| + (CONS (CONS '|coerceOrFail| + (CONS (CONS 'LIST + (CONS + (CONS 'CATCH + (CONS + (MKQ + (|mapCatchName| |$mapName|)) + (CONS |v| NIL))) + (CONS |m| (CONS |e| NIL)))) + (CONS |targ| (CONS |mapn| NIL)))) + NIL))) + ('T + (|keyedSystemError| 'S2GE0016 + (CONS "wrapMapBodyWithCatch" + (CONS "bad CATCH for in function form" NIL)))))) + ('T + (CONS 'CATCH + (CONS (MKQ (|mapCatchName| |$mapName|)) + (CONS |body| NIL)))))))) @ \eject