/usr/share/doc/sbcl/sbcl-internals/Overview.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 | <!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>Overview (SBCL Internals)</title>
<meta name="description" content="Overview (SBCL Internals)">
<meta name="keywords" content="Overview (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="Specials.html#Specials" rel="up" title="Specials">
<link href="Binding-and-unbinding.html#Binding-and-unbinding" rel="next" title="Binding and unbinding">
<link href="Specials.html#Specials" rel="prev" title="Specials">
<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="Overview"></a>
<div class="header">
<p>
Next: <a href="Binding-and-unbinding.html#Binding-and-unbinding" accesskey="n" rel="next">Binding and unbinding</a>, Up: <a href="Specials.html#Specials" accesskey="u" rel="up">Specials</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<a name="Overview-1"></a>
<h3 class="section">9.1 Overview</h3>
<p>Unithread SBCL uses a shallow binding scheme: the current value of a
symbol is stored directly in its value slot. Accessing specials is
pretty fast but it’s still a lot slower than accessing lexicals.
</p>
<p>With multithreading it’s slightly more complicated. The symbol’s value
slot contains the global value and each symbol has a <code>TLS-INDEX</code>
slot that - when it’s first bound - is set to a unique index of the
thread local area reserved for this purpose. The tls index is
initially zero and at index zero in the tls <code>NO-TLS-VALUE-MARKER</code>
resides. <code>NO-TLS-VALUE-MARKER</code> is different from
<code>UNBOUND-MARKER</code> to allow <code>PROGV</code> to bind a special to no
value locally in a thread.
</p>
</body>
</html>
|