X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fcompiler.texinfo;h=f90f97251f86933d8d09f19bcd3b10c617a3e528;hb=26d0559df82a00acf85b8ec89541ee8e09bb3e55;hp=729865fb7eb7bf6c086cbdeb51947cfc49402370;hpb=58ef9d8996d4421610101b52e5a25fd2c70c4792;p=sbcl.git diff --git a/doc/manual/compiler.texinfo b/doc/manual/compiler.texinfo index 729865f..f90f972 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 @@ -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 +@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. + +Switching between the compiler and the interpreter is done using the +special variable @code{sb-ext:*evaluator-mode*}. As of 0.9.17, valid +values for @code{sb-ext:*evaluator-mode*} are @code{:compile} and +@code{:interpret}.