aboutsummaryrefslogtreecommitdiff
path: root/src/interp/daase.lisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-08-29 17:32:37 +0000
committerdos-reis <gdr@axiomatics.org>2011-08-29 17:32:37 +0000
commit57dff7bf047f7364a8ffe27453d7f66de0b159f5 (patch)
treed753642e52449b0475594716189c8ddfb8debb7f /src/interp/daase.lisp
parent6a9b7788dfb5df94343bdb7e5fa2031e388cf356 (diff)
downloadopen-axiom-57dff7bf047f7364a8ffe27453d7f66de0b159f5.tar.gz
* interp/lisplib.boot (laodIfNecessaryAndExists): Remove as unused.
(loadLibIfnecessary): Fold definition into loadIfNecessary. (loadDB): New. (writeAttributes): Likewise. (finalizeLisplib): Use it. * interp/daase.lisp (MAKE-DATABASES): Fix SQUEEZE snafu. * interp/c-util.boot (extendsCategoryForm): Prefer existing translation of category definition to re-evaluation on the fly.
Diffstat (limited to 'src/interp/daase.lisp')
-rw-r--r--src/interp/daase.lisp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/interp/daase.lisp b/src/interp/daase.lisp
index 678c390f..f4fad844 100644
--- a/src/interp/daase.lisp
+++ b/src/interp/daase.lisp
@@ -1242,11 +1242,17 @@
(when (setq dbstruct (|constructorDB| con))
(setf (|dbDualSignature| dbstruct)
(cons nil (mapcar #'|categoryForm?|
- (cddar (|dbConstructorModemap| dbstruct)))))
- (when (and (|categoryForm?| con)
+ ;; The DBs have been munged by SQUEEZE
+ ;; in WRITE-BROWSEDB, WRITE-OPERATIONDB
+ ;; WRITE-CATEGORYDB. Unsqueeze a copy
+ ;; of them before checking for category
+ ;; form-ness. This is sick! FIXME.
+ (unsqueeze (copy-tree
+ (cddar (|dbConstructorModemap| dbstruct)))))))
+ (when (and (eq (|dbConstructorKind| dbstruct) '|category|)
(= (length (setq d (|domainsOf| (list con) NIL NIL))) 1))
(setq d (caar d))
- (when (= (length d) (length (|getConstructorForm| con)))
+ (when (= (length d) (length (|dbConstructorForm| dbstruct)))
(format t " ~a has a default domain of ~a~%" con (car d))
(setf (|dbDefaultDomain| dbstruct) (car d)))))))
; note: genCategoryTable creates *ancestors-hash*. write-interpdb