aboutsummaryrefslogtreecommitdiff
path: root/src/interp/lisplib.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-08-25 01:34:18 +0000
committerdos-reis <gdr@axiomatics.org>2011-08-25 01:34:18 +0000
commit75a4b333cb95b26efc29b07d6a078b12f2d0b921 (patch)
tree400faaa1adbec082f08ed23842786e6800366704 /src/interp/lisplib.boot
parentffbca7d35e4541017c1e1d736dacbe27e0de2c21 (diff)
downloadopen-axiom-75a4b333cb95b26efc29b07d6a078b12f2d0b921.tar.gz
* interp/daase.lisp (dbArity, dbInstanceCache): New accessors.
* interp/database.boot (loadDBIfnecessary): New. (dbMutable?): Likewise. * interp/lisplib.boot (finalizeLisplib): Record mutable property.
Diffstat (limited to 'src/interp/lisplib.boot')
-rw-r--r--src/interp/lisplib.boot7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index 057f1b89..d448fd22 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -552,6 +552,11 @@ writeOperations(ctor,ops,file) ==
writeConstructorModemap(ctor,mm,file) ==
writeInfo(ctor,mm,'constructorModemap,'dbConstructorModemap,file)
+writeInstanceCache(ctor,file) ==
+ insn := ['%store,['dbInstanceCache,mkCtorDBForm ctor],'%true]
+ LAM_,FILEACTQ('instanceCache,expandToVMForm insn)
+ lisplibWrite('"instanceCache",'T,file)
+
++ If compilation produces an error, issue inform user and
++ return to toplevel reader.
leaveIfErrors(libName,kind) ==
@@ -568,6 +573,8 @@ finalizeLisplib(ctor,libName) ==
writeConstructorForm(ctor,form,$libFile)
writeKind(ctor,kind,$libFile)
writeConstructorModemap(ctor,removeZeroOne mm,$libFile)
+ if not $mutableDomains then
+ writeInstanceCache(ctor,$libFile)
$lisplibCategory := $lisplibCategory or mm.mmTarget
-- set to target of mm for package/domain constructors;
-- to the right-hand sides (the definition) for category constructors