aboutsummaryrefslogtreecommitdiff
path: root/src/interp/lisplib.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-11-07 08:52:50 +0000
committerdos-reis <gdr@axiomatics.org>2011-11-07 08:52:50 +0000
commitfe9dc717e927b11fd11489da7dca45912e87bb3b (patch)
tree5a8891a7eaf6272a519f3b68ea567ad3e1ea9701 /src/interp/lisplib.boot
parent0062eb960026efdf72e3ecb301aa46054e0d5ca2 (diff)
downloadopen-axiom-fe9dc717e927b11fd11489da7dca45912e87bb3b.tar.gz
* interp/lisplib.boot (getConstructorOpsAndAtts): Fold content in
called. Remove. (getFunctorOpsAndAtts): Simplify. (getSlotFromFunctor): Rework. * interp/define.boot (getInfovecCode): Bind $byteVec and $byteAddress here. (compDefineFunctor1): Not here.
Diffstat (limited to 'src/interp/lisplib.boot')
-rw-r--r--src/interp/lisplib.boot19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index a7ef99c4..ac8c39e8 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -535,7 +535,9 @@ finalizeLisplib(ctor,libName) ==
writeCategory(ctor,dbCategory db,$libFile)
lisplibWrite('"sourceFile",namestring _/EDITFILE,$libFile)
lisplibWrite('"modemaps",dbModemaps db,$libFile)
- opsAndAtts := getConstructorOpsAndAtts(form,kind,mm)
+ opsAndAtts :=
+ kind = 'category => getCategoryOpsAndAtts form
+ getFunctorOpsAndAtts(form,mm.mmTarget)
writeOperations(ctor,first opsAndAtts,$libFile)
if kind='category then
$NRTslot1PredicateList : local := []
@@ -569,24 +571,19 @@ getPartialConstructorModemapSig(c) ==
(s := getConstructorSignature c) => rest s
throwEvalTypeMsg("S2IL0015",[c])
-getConstructorOpsAndAtts(form,kind,modemap) ==
- kind is 'category => getCategoryOpsAndAtts(form)
- getFunctorOpsAndAtts(form,modemap)
-
getCategoryOpsAndAtts(catForm) ==
-- returns [operations,:attributes] of first catForm
[transformOperationAlist getSlotFromCategoryForm(catForm,1),
:getSlotFromCategoryForm(catForm,2)]
-getFunctorOpsAndAtts(form,modemap) ==
- [transformOperationAlist getSlotFromFunctor(form,1,modemap),
- :getSlotFromFunctor(form,2,modemap)]
+getFunctorOpsAndAtts(form,target) ==
+ [transformOperationAlist $lisplibOperationAlist,
+ :getSlotFromFunctor target]
-getSlotFromFunctor([name,:args],slot,[[.,target,:argMml],:.]) ==
- slot = 1 => $lisplibOperationAlist
+getSlotFromFunctor(target) ==
t := compMakeCategoryObject(target,$e) or
systemErrorHere "getSlotFromFunctor"
- t.expr.slot
+ categoryRef(t.expr,2)
getSlot1 domainName ==
$e: local:= $CategoryFrame