X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fbeyond-ansi.texinfo;h=4a3002081f0ab51789747115a9b5b86f6c12c832;hb=f2db6743b1fadeea9e72cb583d857851c87efcd4;hp=78aa6234c76a01289a06e5de5df588456cdcc565;hpb=56d318ce89dd0c1cff3fd210691ac0367b1382e3;p=sbcl.git diff --git a/doc/manual/beyond-ansi.texinfo b/doc/manual/beyond-ansi.texinfo index 78aa623..4a30020 100644 --- a/doc/manual/beyond-ansi.texinfo +++ b/doc/manual/beyond-ansi.texinfo @@ -7,14 +7,16 @@ ANSI standard. SBCL doesn't support as many extensions as CMUCL, but it still has quite a few. @xref{Contributed Modules}. @menu -* Garbage Collection:: -* Metaobject Protocol:: -* Support For Unix:: -* Customization Hooks for Users:: -* Tools To Help Developers:: -* Resolution of Name Conflicts:: -* Stale Extensions:: -* Efficiency Hacks:: +* Garbage Collection:: +* Metaobject Protocol:: +* Support For Unix:: +* Customization Hooks for Users:: +* Tools To Help Developers:: +* Resolution of Name Conflicts:: +* Hash Table Extensions:: +* Miscellaneous Extensions:: +* Stale Extensions:: +* Efficiency Hacks:: @end menu @node Garbage Collection @@ -26,7 +28,8 @@ specified by ANSI. Weak pointers allow references to objects to be maintained without keeping them from being garbage collected, and ``finalization'' hooks are available to cause code to be executed when an object has been garbage collected. Additionally users can specify -their own cleanup actions to be executed with garbage collection. +their own cleanup actions to be executed with garbage collection. See +also @code{make-hash-table} for information on weak hash tables. @include fun-sb-ext-finalize.texinfo @include fun-sb-ext-cancel-finalization.texinfo @@ -43,7 +46,7 @@ with AMOP; present exceptions to this (as distinct from current bugs) are: @itemize - + @item @findex compute-effective-method @findex sb-mop:compute-effective-method @@ -67,7 +70,7 @@ the standardized classes before @code{t} appearing in the class precedence list of @code{generic-function} and @code{standard-generic-function}, as required by section 1.4.4.5 of the ANSI specification. - + @item @findex ensure-generic-function @findex generic-function-declarations @@ -261,7 +264,7 @@ between classes and proper names and between lists of the form @vindex *posix-argv* The UNIX command line can be read from the variable -@code{sb-ext:*posix-argv*}. +@code{sb-ext:*posix-argv*}. @node Querying the process environment @subsection Querying the process environment @@ -375,6 +378,29 @@ the @code{sb-ext:resolve-conflict} restart should be invoked with one argument, which should be a member of the list returned by the condition accessor @code{sb-ext:name-conflict-symbols}. +@node Hash Table Extensions +@comment node-name, next, previous, up +@section Hash Table Extensions + +Hash table extensions supported by SBCL are all controlled by keyword +arguments to @code{make-hash-table}. + +@include fun-common-lisp-make-hash-table.texinfo + +@include macro-sb-ext-define-hash-table-test.texinfo + +@include macro-sb-ext-with-locked-hash-table.texinfo + +@include fun-sb-ext-hash-table-synchronized-p.texinfo + +@include fun-sb-ext-hash-table-weakness.texinfo + +@node Miscellaneous Extensions +@comment node-name, next, previous, up +@section Miscellaneous Extensions + +@include fun-sb-ext-array-storage-vector.texinfo + @node Stale Extensions @comment node-name, next, previous, up @section Stale Extensions @@ -423,13 +449,3 @@ not checked. In short: don't use it. The @code{sb-ext:freeze-type} declaration declares that a type will never change, which can make type testing (@code{typep}, etc.) more efficient for structure types. - -The @code{sb-ext:constant-function} declaration specifies -that a function will always return the same value for the same -arguments, which may allow the compiler to optimize calls -to it. This is appropriate for functions like @code{sqrt}, but -is @emph{not} appropriate for functions like @code{aref}, -which can change their return values when the underlying data are -changed. -@c