From: Gerd M. <ger...@t-...> - 2003-02-27 19:24:22
|
Christophe Rhodes <cs...@ca...> writes: > What it does: in essence, it brings pcl/defclass and pcl/defs into the > build. But the way I've done it is perhaps along the path of least > resistance, and I want to see if people think that there's a chance of > getting to where we want to be by going down this route. I don't know if it is relevant for SBCL, or even if even everything works as it should, but anyway, maybe it's food for thought... I got an idea today that allowed me to create a kitchen-sink CMUCL kernel.core (the core created by cold-loading fasl files). The core contains everything, but most notably it contains the compiler and PCL, and it seems to get at least some things right: gerd@gerd:~/cmucl% fasl/lisp/lisp -core fasl/lisp/kernel-with-compiler-and-pcl.core In initial-function, and running. GLOBALDB-INIT FDEFN-INIT TYPEDEF-INIT CLASS-INIT TYPE-INIT Calling top-level forms. Basic initializations done. OS-INIT FILESYS-INIT READER-INIT STREAM-INIT LOADER-INIT PACKAGE-INIT SIGNAL-INIT PROCLAIM-INIT CLASS-FINALIZE PCL init... PCL init done. Extended initializations... Done initializing. CMU Common Lisp kernel core image 4.0(?). [You are in the LISP package.] * (fboundp 'pcl::generic-function-p) T * (pcl::find-class t) #<Built-In-Class T {4A7962ED}> * (defclass foo () ()) #<Standard-Class FOO {50B0CE1D}> * (make-instance 'foo) #<FOO {50B0F51D}> PCL is built as usually in CMUCL, with only a small change in defsys that prevents byte-compilation. All the PCL init phase above currently does is: (defun pcl-init () (setq *the-pcl-package* (find-package "PCL")) (setq *boot-state* nil)) The idea behind this was that executing the various PCL stuff in *LISP-INITIALIZATION-FUNCTIONS* in %INITIAL-FUNCTION in sequence should correspond roughly to what happens when PCL is bootstrapped in a normal build, where one file after the other is compiled and immediately afterwards loaded. So, PCL effectively bootstraps in the cold core. Or so it seems; I'm not sure if I'm not overlooking something crucial. All input welcome. Also not clear to me is how to proceed from here. Hm... |