From: Christophe R. <cr...@us...> - 2003-03-03 21:52:33
|
Update of /cvsroot/sbcl/sbcl/src/cold In directory sc8-pr-cvs1:/tmp/cvs-serv10612/src/cold Modified Files: Tag: pcl_build_1_branch defun-load-or-cload-xcompiler.lisp warm.lisp Log Message: 0.7.12.pcl-build1.7: Quick, commit it before it all goes horribly wrong ... minimum of package frobbing in boot.lisp to get it to compile. It can't possibly work in any real way in the host lisp yet, but it may not need to So I may be storing trouble up for myself here, in that there's a nasty tangle involving generic functions and methods looming up ahead, but I have some kind of plan. After this, I can work on getting braid into the build, which is where the fun starts: the plan is that the various !BOOTSTRAP-META-BRAID functions should be callable early in cold-init. Thus, we move braid into the build, and in make-host-1 call the !BOOTSTRAP functions as before, while we ensure that they are called in cold-init as early as possible, so that the kernel classes are set up before ordinary top-level forms run. What happens then? Generic functions qua generic functions will be dealt with in more-or-less the same way, except that there's a wrinkle to do with them being expected to be funcallable instances with slots and suchlike, so they don't map terribly well to host objects; we shall probably have to think about that. Methods have another interesting wrinkle, in that to create them involves calling MAKE-INSTANCE. A two-pass strategy is probably best there -- first, create fake methods a la EARLY-METHOD, which we know how to call; then, a second pass can create the real methods. I think. Index: defun-load-or-cload-xcompiler.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/cold/defun-load-or-cload-xcompiler.lisp,v retrieving revision 1.9 retrieving revision 1.9.8.1 diff -u -d -r1.9 -r1.9.8.1 --- defun-load-or-cload-xcompiler.lisp 14 Dec 2002 22:10:09 -0000 1.9 +++ defun-load-or-cload-xcompiler.lisp 3 Mar 2003 21:51:56 -0000 1.9.8.1 @@ -123,7 +123,12 @@ "STRUCTURE-CLASS" "SUBTYPEP" "TYPE-OF" "TYPEP" - "WITH-COMPILATION-UNIT")) + "WITH-COMPILATION-UNIT" + + ;; CLOS stuff + "ADD-METHOD" "REMOVE-METHOD" + "ENSURE-GENERIC-FUNCTION" + )) (export (intern name package-name) package-name))) ;; don't watch: (dolist (package-name '("SB!ALIEN" Index: warm.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/cold/warm.lisp,v retrieving revision 1.32.2.6 retrieving revision 1.32.2.7 diff -u -d -r1.32.2.6 -r1.32.2.7 --- warm.lisp 27 Feb 2003 19:09:33 -0000 1.32.2.6 +++ warm.lisp 3 Mar 2003 21:51:58 -0000 1.32.2.7 @@ -109,7 +109,7 @@ #+nil "src/pcl/cache" "src/pcl/dlisp" "src/pcl/dlisp2" - "src/pcl/boot" + #+nil "src/pcl/boot" "src/pcl/vector" "src/pcl/slots-boot" "src/pcl/combin" |