X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fefficiency.texinfo;h=6931ed03533bd4f40e7011a7b6e0bd7b91200e7c;hb=21e84b532732503bc7cf8bb006fc3e9812505dd5;hp=20ab991c8c60e8e9d5ca5804d35e643fa486e2ec;hpb=8902b8b6bd2e9285749dd39d313b33b6c69c5213;p=sbcl.git diff --git a/doc/manual/efficiency.texinfo b/doc/manual/efficiency.texinfo index 20ab991..6931ed0 100644 --- a/doc/manual/efficiency.texinfo +++ b/doc/manual/efficiency.texinfo @@ -192,6 +192,23 @@ 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) 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 Future plans include