0.9.5.80:
authorGabor Melis <mega@hotpop.com>
Fri, 21 Oct 2005 11:23:07 +0000 (11:23 +0000)
committerGabor Melis <mega@hotpop.com>
Fri, 21 Oct 2005 11:23:07 +0000 (11:23 +0000)
  * added cold init explanation (Xof, #lisp 2005-10-19) to internals
    manual

doc/internals/build.texinfo [new file with mode: 0644]
version.lisp-expr

diff --git a/doc/internals/build.texinfo b/doc/internals/build.texinfo
new file mode 100644 (file)
index 0000000..7619f8b
--- /dev/null
@@ -0,0 +1,31 @@
+@node Build
+@comment  node-name,  next,  previous,  up
+@chapter Build
+
+@menu
+* Cold init::                   
+@end menu
+
+@node Cold init
+@comment  node-name,  next,  previous,  up
+@section Cold init
+
+At the start of cold init, the only thing the system can do is call
+functions, because @code{COLD-FSET} has arranged for that (and nothing
+else) to happen.
+
+The tricky bit of cold init is getting the system to the point that it
+can run top level forms. To do that, we need to set up basic
+structures like the things you look symbols up in the structures which
+make the type system work.
+
+So cold-init is the real bootstrap moment. Genesis dumps
+symbol<->package relationships but not the packages themselves, for
+instance. So we need to be able to make packages to fixup the system,
+but to do that we need to be able to make hash-tables, and to do that
+we need @code{RANDOM} to work, so we need to initialize the
+random-state and so on.
+
+We could do much of this at genesis time, but it would just end up
+being fragile in a different way (needing to know about memory layouts
+of non-fundamental objects like packages, etc).
index 726046d..96ebcc6 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.5.79"
+"0.9.5.80"