X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fmanual%2Fcompiler.texinfo;h=9a3533de7d10deec7afd398be0485911dbb115a1;hb=a2e934ad4e9545f1c6bbd8a9e9d3dd4d1c4698d9;hp=35284f3d47863648be05740955e13dd8e2a2a01b;hpb=980efb1840028e646fc9206defb6b2da8decdff4;p=sbcl.git diff --git a/doc/manual/compiler.texinfo b/doc/manual/compiler.texinfo index 35284f3..9a3533d 100644 --- a/doc/manual/compiler.texinfo +++ b/doc/manual/compiler.texinfo @@ -516,16 +516,17 @@ selectable via @code{optimize} declarations. @item Full Type Checks All declarations are considered assertions to be checked at runtime, -and all type checks are precise. +and all type checks are precise. The default compilation policy +provides full type checks. -Used when @code{(and (< 0 safety) (or (>= safety 2) (>= safety speed)))}. The -default compilation policy provides full type checks. +Used when @code{(or (>= safety 2) (>= safety speed 1))}. @item Weak Type Checks -Any or all type declarations may be believed without runtime -assertions, and assertions that are done may be imprecise. It should -be noted that it is relatively easy to corrupt the heap when weak type -checks are used, and type-errors are introduced into the program. +Declared types may be simplified into faster to check supertypes: for example, +@code{(and unsigned-byte fixnum)} is simplified into @code{fixnum}. + +@strong{Note}: it is relatively easy to corrupt the heap when weak +type checks are used if the program contains type-errors. Used when @code{(and (< safety 2) (< safety speed))} @@ -533,6 +534,9 @@ Used when @code{(and (< safety 2) (< safety speed))} All declarations are believed without assertions. Also disables argument count and array bounds checking. +@strong{Note}: any type errors in code where type checks are not +performed are liable to corrupt the heap. + Used when @code{(= safety 0)}. @end table