aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec2.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-05-24 15:31:17 +0000
committerdos-reis <gdr@axiomatics.org>2010-05-24 15:31:17 +0000
commit8993bc2fe00eb48b57945b850c14bde8fae1dfb7 (patch)
treea872ac9d190de6a5cd3297039b5580529b6b78f2 /src/interp/i-spec2.boot
parent3c32b47b560563cf217ab2781d14ac65e0e12e30 (diff)
downloadopen-axiom-8993bc2fe00eb48b57945b850c14bde8fae1dfb7.tar.gz
* interp/i-object.boot (object): New. Abstract over boilerplate.
* interp/i-analy.boot: Use it in place of boilerplate. * interp/i-eval.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise.
Diffstat (limited to 'src/interp/i-spec2.boot')
-rw-r--r--src/interp/i-spec2.boot18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index ebcdbf79..d874e184 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -173,11 +173,8 @@ upLispCall(op,t) ==
for arg in argl repeat bottomUp arg
code:=[getUnname lispOp,
:[getArgValue(arg,computedMode arg) for arg in argl]]
- code :=
- $genValue => wrap timedEVALFUN code
- code
rt := '(SExpression)
- putValue(op,objNew(code,rt))
+ putValue(op,object(code,rt))
putModeSet(op,[rt])
--% Handlers for equation
@@ -239,8 +236,7 @@ uphas t ==
evaluateType0 prop => ["evaluateType", MKQ prop]
MKQ prop
code := ["NOT",["NULL",["newHasTest",type, catCode]]]
- if $genValue then code := wrap timedEVALFUN code
- putValue(op,objNew(code,$Boolean))
+ putValue(op,object(code,$Boolean))
putModeSet(op,[$Boolean])
--hasTest(a,b) ==
@@ -383,9 +379,7 @@ evalis(op,[a,pattern],mode) ==
code:= compileIs(a,pattern)
else code:=[fun,getArgValue(a,mode),
MKQ pattern,MKQ mode]
- triple:=
- $genValue => objNewWrap(timedEVALFUN code,$Boolean)
- objNew(code,$Boolean)
+ triple := object(code,$Boolean)
putValue(op,triple)
isLocalPred pattern ==
@@ -564,7 +558,7 @@ evalLET(lhs,rhs) ==
isWrapped(objVal v') and (v2:=coerceInteractive(v',$OutputForm)) =>
throwKeyedMsg("S2IS0036",[objValUnwrap v2,t2])
throwKeyedMsg("S2IS0037",[t2])
- t2 and objNew(($genValue => wrap timedEVALFUN v ; v),t2)
+ t2 and object(v,t2)
value => evalLETput(lhs,value)
throwKeyedMsgCannotCoerceWithValue(objVal v,t1,getMode lhs)
@@ -1094,9 +1088,7 @@ evalTuple(op,l,m,tar) ==
[agg,:.,underMode]:= m
code := asTupleNewCode(underMode, #l,
[(getArgValue(x,underMode) or throwKeyedMsg("S2IC0007",[underMode])) for x in l])
- val :=
- $genValue => objNewWrap(timedEVALFUN code,m)
- objNew(code,m)
+ val := object(code,m)
if tar then val1 := coerceInteractive(val,tar) else val1 := val
val1 =>