<html lang="en"> <head> <title>Package Locks in Compiled Code - SBCL 1.0.31 User Manual</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="SBCL 1.0.31 User Manual"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Package-Lock-Concepts.html#Package-Lock-Concepts" title="Package Lock Concepts"> <link rel="prev" href="Package-Lock-Violations.html#Package-Lock-Violations" title="Package Lock Violations"> <link rel="next" href="Operations-Violating-Package-Locks.html#Operations-Violating-Package-Locks" title="Operations Violating Package Locks"> <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 largely derived from the manual for the CMUCL system, which was produced at Carnegie Mellon University and later released into the public domain. 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> <div class="node"> <a name="Package-Locks-in-Compiled-Code"></a> <p> Next: <a rel="next" accesskey="n" href="Operations-Violating-Package-Locks.html#Operations-Violating-Package-Locks">Operations Violating Package Locks</a>, Previous: <a rel="previous" accesskey="p" href="Package-Lock-Violations.html#Package-Lock-Violations">Package Lock Violations</a>, Up: <a rel="up" accesskey="u" href="Package-Lock-Concepts.html#Package-Lock-Concepts">Package Lock Concepts</a> <hr> </div> <h4 class="subsection">11.1.4 Package Locks in Compiled Code</h4> <h5 class="subsubsection">11.1.4.1 Interned Symbols</h5> <p>If file-compiled code contains interned symbols, then loading that code into an image without the said symbols will not cause a package lock violation, even if the packages in question are locked. <h5 class="subsubsection">11.1.4.2 Other Limitations on Compiled Code</h5> <p>With the exception of interned symbols, behaviour is unspecified if package locks affecting compiled code are not the same during loading of the code or execution. <p>Specifically, code compiled with packages unlocked may or may not fail to signal package-lock-violations even if the packages are locked at runtime, and code compiled with packages locked may or may not signal spurious package-lock-violations at runtime even if the packages are unlocked. <p>In practice all this means that package-locks have a negligible performance penalty in compiled code as long as they are not violated. </body></html>