diff options
author | dos-reis <gdr@axiomatics.org> | 2011-08-29 17:32:37 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-08-29 17:32:37 +0000 |
commit | 57dff7bf047f7364a8ffe27453d7f66de0b159f5 (patch) | |
tree | d753642e52449b0475594716189c8ddfb8debb7f /src/interp/daase.lisp | |
parent | 6a9b7788dfb5df94343bdb7e5fa2031e388cf356 (diff) | |
download | open-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.lisp | 12 |
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 |