aboutsummaryrefslogtreecommitdiff
path: root/src/interp/lisplib.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-28 23:08:17 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-28 23:08:17 +0000
commit0c79bf08a243116545f78251958abc61377f1ed3 (patch)
tree2c0b4afc6b3224d86a3ebc559c726f8246455967 /src/interp/lisplib.boot
parentc8a3a2f38d94347901da6194ab3329c430b20944 (diff)
downloadopen-axiom-0c79bf08a243116545f78251958abc61377f1ed3.tar.gz
* interp/daase.lisp (DATABASE): Add new field CAPSULE-DEFINITIONS.
(dbCapsuleDefinitions): New macro accessor. * interp/functor.boot (encodeFunctionName): Set it. * interp/lisplib.boot ($lisplibVariableAlist): Remove. ($lisplibSignatureAlist): Likewise. (writeCapsuleLevelDefinitions): New. (finalizeLisplib): Use it. (mergeSignatureAndLocalVarAlists): Remove. * interp/clam.boot (clearCategoryCaches): Use mkDomainCatName. * interp/define.boot (DomainSubstitutionFunction): Likewise.
Diffstat (limited to 'src/interp/lisplib.boot')
-rw-r--r--src/interp/lisplib.boot18
1 files changed, 4 insertions, 14 deletions
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index d565a74e..6c6e3018 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -389,8 +389,6 @@ compConLib1(fun,infileOrNil,outfileOrNil,auxOp,editFlag,traceFlag) ==
$lisplibPredicates: local := nil
$lisplibOperationAlist: local := nil
$libFile: local := nil
- $lisplibVariableAlist: local := nil
- $lisplibSignatureAlist: local := nil
if cons? fun and null rest fun then fun:= first fun -- unwrap nullary
libName:= getConstructorAbbreviation fun
infile:= infileOrNil or getFunctionSourceFile fun or
@@ -409,9 +407,7 @@ compDefineLisplib(df:=["DEF",[op,:.],:.],m,e,prefix,fal,fn) ==
$op: local := op
$lisplibPredicates: local := nil -- set by makePredicateBitVector
$lisplibOperationAlist: local := nil
- $lisplibSignatureAlist: local := nil
$libFile: local := nil
- $lisplibVariableAlist: local := nil
-- $lisplibRelatedDomains: local := nil --from ++ Related Domains: see c-doc
--for categories, is rhs of definition; otherwise, is target of functor
--will eventually become the "constructorCategory" property in lisplib
@@ -507,6 +503,9 @@ writeAncestors(ctor,x,file) ==
writePrincipals(ctor,x,file) ==
writeInfo(ctor,x,'parents,'dbPrincipals,file)
+writeCapsuleLevelDefinitions(ctor,x,file) ==
+ writeInfo(ctor,x,'signaturesAndLocals,'dbCapsuleDefinitions,file)
+
++ If compilation produces an error, issue inform user and
++ return to toplevel reader.
leaveIfErrors(libName,kind) ==
@@ -538,9 +537,7 @@ finalizeLisplib(ctor,libName) ==
$NRTslot1PredicateList : local := []
NRTgenInitialAttributeAlist(db,rest opsAndAtts)
writeSuperDomain(ctor,dbSuperDomain db,$libFile)
- lisplibWrite('"signaturesAndLocals",
- mergeSignatureAndLocalVarAlists($lisplibSignatureAlist,
- $lisplibVariableAlist),$libFile)
+ writeCapsuleLevelDefinitions(ctor,dbCapsuleDefinitions db,$libFile)
writeAttributes(ctor,dbAttributes db,$libFile)
writePredicates(ctor,$lisplibPredicates,$libFile)
writeAbbreviation(db,$libFile)
@@ -568,13 +565,6 @@ getPartialConstructorModemapSig(c) ==
(s := getConstructorSignature c) => rest s
throwEvalTypeMsg("S2IL0015",[c])
-mergeSignatureAndLocalVarAlists(signatureAlist, localVarAlist) ==
- -- this function makes a single Alist for both signatures
- -- and local variable types, to be stored in the LISPLIB
- -- for the function being compiled
- [[funcName,:[signature,:LASSOC(funcName,localVarAlist)]] for
- [funcName, :signature] in signatureAlist]
-
getConstructorOpsAndAtts(form,kind,modemap) ==
kind is 'category => getCategoryOpsAndAtts(form)
getFunctorOpsAndAtts(form,modemap)