This file is indexed.

/usr/share/doc/sbcl/sbcl-internals/Cold-init.html is in sbcl-doc 2:1.4.5-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is part of the SBCL software system. See the
README file for more information.

This manual is in the public domain and is provided with absolutely no
warranty. See the COPYING and CREDITS files for more
information. -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Cold init (SBCL Internals)</title>

<meta name="description" content="Cold init (SBCL Internals)">
<meta name="keywords" content="Cold init (SBCL Internals)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Build.html#Build" rel="up" title="Build">
<link href="Calling-Convention.html#Calling-Convention" rel="next" title="Calling Convention">
<link href="Build.html#Build" rel="prev" title="Build">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Cold-init"></a>
<div class="header">
<p>
Up: <a href="Build.html#Build" accesskey="u" rel="up">Build</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<a name="Cold-init-1"></a>
<h3 class="section">1.1 Cold init</h3>

<p>At the start of cold init, the only thing the system can do is call
functions, because <code>COLD-FSET</code> has arranged for that (and nothing
else) to happen.
</p>
<p>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.
</p>
<p>So cold-init is the real bootstrap moment. Genesis dumps
symbol&lt;-&gt;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</code> to work, so we need to initialize the
random-state and so on.
</p>
<p>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).
</p>


</body>
</html>