diff --git a/pcl/defsys.lisp b/pcl/defsys.lisp index 26b264f4de47d43823980184cb7b97d38f429295..89740559479d35fddfc5e10b0ac81e6c46e2e40e 100644 --- a/pcl/defsys.lisp +++ b/pcl/defsys.lisp @@ -590,7 +590,6 @@ and load your system with: (dfun t t (boot low cache)) (fast-init t t (boot low)) (braid (+ precom1 precom2) t (boot defs low fin cache)) - #+ignore (dlisp3 t t (dlisp2 boot braid)) (generic-functions t t (boot)) (slots t t (vector boot defs low cache fin)) diff --git a/pcl/dlisp3.lisp b/pcl/dlisp3.lisp index 26865a725622ed9b77137317b171c357e64035eb..7e89d5637fcbb0059e18c859e6bebc5df186b204 100644 --- a/pcl/dlisp3.lisp +++ b/pcl/dlisp3.lisp @@ -67,8 +67,26 @@ `(cons ',key (emit-checking-or-caching-macro ,@key))) checking-or-caching-list))) +#+nil (defun initialize-checking-or-caching-function-list () (setq checking-or-caching-function-list (make-checking-or-caching-function-list))) +#+nil (initialize-checking-or-caching-function-list) + +;;; Rather than compiling the constructors here, just tickle the range +;;; of shapes defined above, leaving the generation of the +;;; constructors to precompile-dfun-constructors. +;;; +(dolist (key checking-or-caching-list) + (destructuring-bind (cached-emf-p return-value-p metatypes applyp) key + (multiple-value-bind (args generator) + (if cached-emf-p + (if return-value-p + (values (list metatypes) 'emit-constant-value) + (values (list metatypes applyp) 'emit-caching)) + (if return-value-p + (values (list metatypes) 'emit-in-checking-p) + (values (list metatypes applyp) 'emit-checking))) + (apply #'get-dfun-constructor generator args))))