X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fcompiler.texinfo;h=5fa6525d04df8b2b321f0df67a44e9f3f1fc4813;hb=0e49d7b1cb81c04de46c087e4e6b0b6dd09b57c2;hp=546f817dd44ca1c56ace2c9426ac1f33776751b2;hpb=2d996b6c1f64a2a8f7515629bba134da0d0f0d32;p=sbcl.git diff --git a/doc/manual/compiler.texinfo b/doc/manual/compiler.texinfo index 546f817..5fa6525 100644 --- a/doc/manual/compiler.texinfo +++ b/doc/manual/compiler.texinfo @@ -11,11 +11,12 @@ naive translation. Efficiency issues are sufficiently varied and separate that they have their own chapter, @ref{Efficiency}. @menu -* Diagnostic Messages:: +* Diagnostic Messages:: * Handling of Types:: * 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