X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fcompiler.texinfo;h=5fa6525d04df8b2b321f0df67a44e9f3f1fc4813;hb=0e49d7b1cb81c04de46c087e4e6b0b6dd09b57c2;hp=cfc034fe787bdf6dbee119e06edd5e8619759e1a;hpb=b63c4fb9b98fa8188e17ba926e150ba417a74635;p=sbcl.git diff --git a/doc/manual/compiler.texinfo b/doc/manual/compiler.texinfo index cfc034f..5fa6525 100644 --- a/doc/manual/compiler.texinfo +++ b/doc/manual/compiler.texinfo @@ -16,6 +16,7 @@ separate that they have their own chapter, @ref{Efficiency}. * Compiler Policy:: * Compiler Errors:: * Open Coding and Inline Expansion:: +* Interpreter:: @end menu @node Diagnostic Messages @@ -63,17 +64,17 @@ Local control: (* x -5)))) @end lisp -@deffn {Declaration} sb-ext:muffle-conditions +@deffn {Declaration} @sbext{muffle-conditions} Syntax: type* Muffles the diagnostic messages that would be caused by compile-time signals of given types. @end deffn -@deffn {Declaration} sb-ext:unmuffle-conditions +@deffn {Declaration} @sbext{unmuffle-conditions} Syntax: type* -Cancels the effect of a previous @code{sb-ext:muffle-condition} +Cancels the effect of a previous @code{sb-ext:muffle-conditions} declaration. @end deffn @@ -83,6 +84,9 @@ controlled via the alist @include var-sb-ext-star-compiler-print-variable-alist-star.texinfo +For information about muffling warnings signaled outside of the +compiler, see @ref{Customization Hooks for Users}. + @c +@include fun-sb-ext-describe-compiler-policy.texinfo +@include fun-sb-ext-restrict-compiler-policy.texinfo +@include macro-common-lisp-with-compilation-unit.texinfo + @node Compiler Errors @comment node-name, next, previous, up @section Compiler Errors @@ -1016,8 +1037,8 @@ character position and gives up on the entire source file. @comment node-name, next, previous, up @section Open Coding and Inline Expansion @cindex Open-coding -@cindex inline expansion -@cindex static functions +@cindex Inline expansion +@cindex Static functions Since Common Lisp forbids the redefinition of standard functions, the compiler can have special knowledge of these standard functions @@ -1088,3 +1109,20 @@ open-coded. Even when not open-coded, a call to a standard function may be transformed into a different function call (as in the last example) or compiled as @emph{static call}. Static function call uses a more efficient calling convention that forbids redefinition. + +@node Interpreter +@comment node-name, next, previous, up +@section Interpreter +@cindex Interpreter +@findex @cl{eval} +@vindex @sbext{@earmuffs{evaluator-mode}} + +By default SBCL implements @code{eval} by calling the native code +compiler. + +SBCL also includes an interpreter for use in special cases where using +the compiler is undesirable, for example due to compilation overhead. +Unlike in some other Lisp implementations, in SBCL interpreted code is +not safer or more debuggable than compiled code. + +@include var-sb-ext-star-evaluator-mode-star.texinfo