Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 723830890bac44da3d113209b14e090b > files > 514

sbcl-1.0.31-1mdv2010.0.i586.rpm

<html lang="en">
<head>
<title>Handling of Types - 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="Compiler.html#Compiler" title="Compiler">
<link rel="prev" href="Diagnostic-Messages.html#Diagnostic-Messages" title="Diagnostic Messages">
<link rel="next" href="Compiler-Policy.html#Compiler-Policy" title="Compiler Policy">
<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="Handling-of-Types"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Compiler-Policy.html#Compiler-Policy">Compiler Policy</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Diagnostic-Messages.html#Diagnostic-Messages">Diagnostic Messages</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Compiler.html#Compiler">Compiler</a>
<hr>
</div>

<!-- node-name,  next,  previous,  up -->
<h3 class="section">4.2 Handling of Types</h3>

<p>One of the most important features of the SBCL compiler (similar to
the original CMUCL compiler, also known as <dfn>Python</dfn>) is its fairly
sophisticated understanding of the Common Lisp type system and its
conservative approach to the implementation of type declarations.

   <p>These two features reward the use of type declarations throughout
development, even when high performance is not a concern. Also, as
discussed in the chapter on performance (see <a href="Efficiency.html#Efficiency">Efficiency</a>), the use
of appropriate type declarations can be very important for performance
as well.

   <p><a name="index-satisfies-44"></a>The SBCL compiler also has a greater knowledge of the Common Lisp
type system than other compilers. Support is incomplete only for types
involving the <code>satisfies</code> type specifier.

<!-- <!- FIXME: See also sections \ref{advanced-type-stuff} -->
<!-- and \ref{type-inference}, once we snarf them from the -->
<!-- CMU CL manual. -> -->
<!-- Also see my paper on improving Baker, when I get round to it. -->
<!-- Whose paper? -->
<ul class="menu">
<li><a accesskey="1" href="Declarations-as-Assertions.html#Declarations-as-Assertions">Declarations as Assertions</a>
<li><a accesskey="2" href="Precise-Type-Checking.html#Precise-Type-Checking">Precise Type Checking</a>
<li><a accesskey="3" href="Getting-Existing-Programs-to-Run.html#Getting-Existing-Programs-to-Run">Getting Existing Programs to Run</a>
<li><a accesskey="4" href="Implementation-Limitations.html#Implementation-Limitations">Implementation Limitations</a>
</ul>

   </body></html>