aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-opt.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-05-19 15:04:00 +0000
committerdos-reis <gdr@axiomatics.org>2011-05-19 15:04:00 +0000
commitef1f327becb0cc095e887dcfe98f9e390d225ed8 (patch)
tree96a08d55248ec0382437190c75a8c630effa810f /src/interp/g-opt.boot
parent071d6c0b2a4db1b3129a3bc962e85849d5ecd565 (diff)
downloadopen-axiom-ef1f327becb0cc095e887dcfe98f9e390d225ed8.tar.gz
* interp/i-eval.boot (evalForm): Adjust.
* interp/buildom.boot (mkRecordFun): New. (eltRecordFun): Likewise. (copyRecordFun): Likewise. (mkRecordFunList): Use them. * interp/g-opt.boot (optMkRecord): Remove. (optRECORDELT): Likewise. * interp/lisp-backend.boot: Translate %vcopy.
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r--src/interp/g-opt.boot25
1 files changed, 4 insertions, 21 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 1171c72c..b37b942c 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -286,11 +286,6 @@ optCons (x is ["CONS",a,b]) ==
x
x
-optMkRecord ["mkRecord",:u] ==
- u is [x] => ['%list,x]
- #u=2 => ['%pair,:u]
- ['%vector,:u]
-
optCond (x is ['%when,:l]) ==
if l is [a,[aa,b]] and aa is '%otherwise and b is ['%when,:c] then
x.rest.rest := c
@@ -397,16 +392,6 @@ optSEQ ["SEQ",:l] ==
l is ["SEQ",[op,a]] and op in '(EXIT RETURN THROW) => a
l
-optRECORDELT ["RECORDELT",name,ind,len] ==
- len=1 =>
- ind=0 => ['%head,name]
- keyedSystemError("S2OO0002",[ind])
- len=2 =>
- ind=0 => ['%head,name]
- ind=1 => ['%tail,name]
- keyedSystemError("S2OO0002",[ind])
- ['%vref,name,ind]
-
optSETRECORDELT ["SETRECORDELT",name,ind,len,expr] ==
len=1 =>
ind = 0 => ['SEQ,['%store,['%head,name],expr],['EXIT,['%head,name]]]
@@ -447,8 +432,9 @@ $VMsideEffectFreeOperators ==
%lreverse %lempty? %hash %ismall? %string? %f2s
%ccst %ccstmax %ceq %clt %cle %cgt %cge %c2i %i2c %s2c %c2s %cup %cdown
%sname
- %strlength %streq %i2s %schar %strlt %strconc %strcopy
- %vector %aref %vref %vlength %bytevec2str %str2bytevec
+ %strlength %streq %i2s %schar %strlt %strconc
+ %strcopy %bytevec2str %str2bytevec
+ %vector %aref %vref %vlength %vcopy
%bitvector
%bitvecnot %bitvecand %bitvecnand %bivecor %bitvecnor %bitvecxor
%bitveccopy %bitvecconc %bitveclength %bitvecref %bitveceq %bitveclt
@@ -828,10 +814,7 @@ for x in '( (%call optCall) _
(%when optCond)_
(%retract optRetract)_
(%CollectV optCollectVector)_
- (mkRecord optMkRecord)_
- (RECORDELT optRECORDELT)_
- (SETRECORDELT optSETRECORDELT)_
- (RECORDCOPY optRECORDCOPY)) _
+ (SETRECORDELT optSETRECORDELT)) _
repeat property(first x,'OPTIMIZE) := second x
--much quicker to call functions if they have an SBC