X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fefficiency.texinfo;h=6931ed03533bd4f40e7011a7b6e0bd7b91200e7c;hb=b5c69cfe906a31ae57bb0f18c67af9d2eaa1dfef;hp=f857d606014a50dbfd31d9c607f759042994c462;hpb=71624c1b71e429e04dcabe54a5d48992ee95e388;p=sbcl.git diff --git a/doc/manual/efficiency.texinfo b/doc/manual/efficiency.texinfo index f857d60..6931ed0 100644 --- a/doc/manual/efficiency.texinfo +++ b/doc/manual/efficiency.texinfo @@ -193,10 +193,21 @@ or @end lisp @item +Stack allocation of simple forms of @code{make-array}, whose result is +bound to a variable, declared @code{dynamic-extent}. The resulting +array should be one-dimensional, the only allowed keyword argument is +@code{:element-type}. + +Notice, that stack space is limited, so allocation of a large vector +may cause stack overflow and abnormal termination of the SBCL process. + +@item Stack allocation of closures, defined with @code{flet} or @code{labels} with a bound declaration @code{dynamic-extent}. Closed-over variables, which are assigned (either inside or outside -the closure), tags and blocks are still allocated on the heap. +the closure) are still allocated on the heap. Blocks and tags are also +allocated on the heap, unless all non-local control transfers to them +are compiled with zero @code{safety}. @end itemize