emacs.d/clones/www.sbcl.org/sbcl-internals/index.html
2023-01-18 20:30:47 +01:00

166 lines
8.5 KiB
HTML

<html lang="en">
<head>
<title>SBCL Internals</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="SBCL Internals">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
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.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<h1 class="settitle">SBCL Internals</h1>
<div class="contents">
<h2>Table of Contents</h2>
<ul>
<li><a name="toc_Top" href="index.html#Top">SBCL Internals</a>
<li><a name="toc_Build" href="Build.html#Build">1 Build</a>
<ul>
<li><a href="Cold-init.html#Cold-init">1.1 Cold init</a>
</li></ul>
<li><a name="toc_Calling-Convention" href="Calling-Convention.html#Calling-Convention">2 Calling Convention</a>
<ul>
<li><a href="Assembly-Routines.html#Assembly-Routines">2.1 Assembly Routines</a>
<li><a href="Local-Calls.html#Local-Calls">2.2 Local Calls</a>
<li><a href="Full-Calls.html#Full-Calls">2.3 Full Calls</a>
<li><a href="Unknown_002dValues-Returns.html#Unknown_002dValues-Returns">2.4 Unknown-Values Returns</a>
<li><a href="IR2-Conversion.html#IR2-Conversion">2.5 IR2 Conversion</a>
<li><a href="Additional-Notes.html#Additional-Notes">2.6 Additional Notes</a>
</li></ul>
<li><a name="toc_Discriminating-Functions" href="Discriminating-Functions.html#Discriminating-Functions">3 Discriminating Functions</a>
<ul>
<li><a href="The-Initial-Discriminating-Function.html#The-Initial-Discriminating-Function">3.1 The Initial Discriminating Function</a>
<li><a href="Method_002dBased-Discriminating-Functions.html#Method_002dBased-Discriminating-Functions">3.2 Method-Based Discriminating Functions</a>
<li><a href="Accessor-Discriminating-Functions.html#Accessor-Discriminating-Functions">3.3 Accessor Discriminating Functions</a>
<li><a href="Cacheing-and-Dispatch-Functions.html#Cacheing-and-Dispatch-Functions">3.4 Cacheing and Dispatch Functions</a>
<li><a href="The-Cacheing-Mechanism.html#The-Cacheing-Mechanism">3.5 The Cacheing Mechanism</a>
</li></ul>
<li><a name="toc_Foreign-Linkage" href="Foreign-Linkage.html#Foreign-Linkage">4 Foreign Linkage</a>
<ul>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1 Linkage-table</a>
<ul>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1.1 Differences to CMUCL</a>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1.2 Nitty Gritty Details</a>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1.3 Porting</a>
<ul>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1.3.1 Porting to new operating systems</a>
<li><a href="Linkage_002dtable.html#Linkage_002dtable">4.1.3.2 Porting to new architectures</a>
</li></ul>
</li></ul>
<li><a href="Lazy-Alien-Resolution.html#Lazy-Alien-Resolution">4.2 Lazy Alien Resolution</a>
<li><a href="Callbacks.html#Callbacks">4.3 Callbacks</a>
</li></ul>
<li><a name="toc_Funcallable-Instances" href="Funcallable-Instances.html#Funcallable-Instances">5 Funcallable Instances</a>
<ul>
<li><a href="Overview-of-Funcallable-Instances.html#Overview-of-Funcallable-Instances">5.1 Overview of Funcallable Instances</a>
<li><a href="Implementation-of-Funcallable-Instances.html#Implementation-of-Funcallable-Instances">5.2 Implementation of Funcallable Instances</a>
</li></ul>
<li><a name="toc_Signal-handling" href="Signal-handling.html#Signal-handling">6 Signal handling</a>
<ul>
<li><a href="Groups-of-signals.html#Groups-of-signals">6.1 Groups of signals</a>
<ul>
<li><a href="Groups-of-signals.html#Groups-of-signals">6.1.1 Semi-synchronous signals</a>
<li><a href="Groups-of-signals.html#Groups-of-signals">6.1.2 Blockable signals</a>
</li></ul>
<li><a href="The-deferral-mechanism.html#The-deferral-mechanism">6.2 The deferral mechanism</a>
<ul>
<li><a href="The-deferral-mechanism.html#The-deferral-mechanism">6.2.1 Pseudo atomic sections</a>
<li><a href="The-deferral-mechanism.html#The-deferral-mechanism">6.2.2 <code>WITHOUT-INTERRUPTS</code></a>
<li><a href="The-deferral-mechanism.html#The-deferral-mechanism">6.2.3 Stop the world</a>
</li></ul>
<li><a href="Implementation-warts.html#Implementation-warts">6.3 Implementation warts</a>
<ul>
<li><a href="Implementation-warts.html#Implementation-warts">6.3.1 RT signals</a>
<li><a href="Implementation-warts.html#Implementation-warts">6.3.2 Miscellaneous issues</a>
<li><a href="Implementation-warts.html#Implementation-warts">6.3.3 POSIX &ndash; Letter and Spirit</a>
</li></ul>
<li><a href="Programming-with-signal-handling-in-mind.html#Programming-with-signal-handling-in-mind">6.4 Programming with signal handling in mind</a>
<ul>
<li><a href="Programming-with-signal-handling-in-mind.html#Programming-with-signal-handling-in-mind">6.4.1 On reentrancy</a>
<li><a href="Programming-with-signal-handling-in-mind.html#Programming-with-signal-handling-in-mind">6.4.2 More deadlocks</a>
<li><a href="Programming-with-signal-handling-in-mind.html#Programming-with-signal-handling-in-mind">6.4.3 Calling user code</a>
</li></ul>
</li></ul>
<li><a name="toc_Slot_002dValue" href="Slot_002dValue.html#Slot_002dValue">7 Slot-Value</a>
<ul>
<li><a href="Basic-Implementation.html#Basic-Implementation">7.1 Basic Implementation</a>
<li><a href="Compiler-Transformations.html#Compiler-Transformations">7.2 Compiler Transformations</a>
<ul>
<li><a href="Compiler-Transformations.html#Compiler-Transformations">7.2.1 Within Methods</a>
<li><a href="Compiler-Transformations.html#Compiler-Transformations">7.2.2 Outside of Methods</a>
</li></ul>
<li><a href="MOP-Optimizations.html#MOP-Optimizations">7.3 MOP Optimizations</a>
</li></ul>
<li><a name="toc_Specials" href="Specials.html#Specials">8 Specials</a>
<ul>
<li><a href="Overview.html#Overview">8.1 Overview</a>
<li><a href="Binding-and-unbinding.html#Binding-and-unbinding">8.2 Binding and unbinding</a>
</li></ul>
<li><a name="toc_Character-and-String-Types" href="Character-and-String-Types.html#Character-and-String-Types">9 Character and String Types</a>
<ul>
<li><a href="Memory-Layout.html#Memory-Layout">9.1 Memory Layout</a>
<li><a href="Reader-and-Printer.html#Reader-and-Printer">9.2 Reader and Printer</a>
</li></ul>
<li><a name="toc_Threads" href="Threads.html#Threads">10 Threads</a>
<ul>
<li><a href="Implementation-_0028Linux-x86_0029.html#Implementation-_0028Linux-x86_0029">10.1 Implementation (Linux x86/x86-64)</a>
</li></ul>
</li></ul>
</div>
<div class="node">
<p>
<a name="Top"></a>
Up:&nbsp;<a rel="up" accesskey="u" href="https://www.sbcl.org/index.html#dir">(dir)</a>
<hr>
</div>
<!-- node-name, next, previous, up -->
<h2 class="unnumbered">SBCL Internals</h2>
<blockquote>
This manual is part of the SBCL software system. See the
<samp><span class="file">README</span></samp> file for more information.
<p>This manual is in the public domain and is provided with absolutely no
warranty. See the <samp><span class="file">COPYING</span></samp> and <samp><span class="file">CREDITS</span></samp> files for more
information.
</blockquote>
<ul class="menu">
<li><a accesskey="1" href="Build.html#Build">Build</a>
<li><a accesskey="2" href="Calling-Convention.html#Calling-Convention">Calling Convention</a>
<li><a accesskey="3" href="Discriminating-Functions.html#Discriminating-Functions">Discriminating Functions</a>
<li><a accesskey="4" href="Foreign-Linkage.html#Foreign-Linkage">Foreign Linkage</a>
<li><a accesskey="5" href="Funcallable-Instances.html#Funcallable-Instances">Funcallable Instances</a>
<li><a accesskey="6" href="Signal-handling.html#Signal-handling">Signal handling</a>
<li><a accesskey="7" href="Slot_002dValue.html#Slot_002dValue">Slot-Value</a>
<li><a accesskey="8" href="Specials.html#Specials">Specials</a>
<li><a accesskey="9" href="Character-and-String-Types.html#Character-and-String-Types">Character and String Types</a>
<li><a href="Threads.html#Threads">Threads</a>
</ul>
</body></html>