mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
On x86, the stack guard page could get missed when allocating large objects on the stack (over 1 page). Instead of giving up or only allowing this on low safety, just check explicitly whether an overflow could happen and signal an appropriate condition. Other platforms don't need this overflow check as urgently, since they do zero-filling which ensures that they will in fact hit the guard page eventually before the stack is manipulated again. (Although there may not be any space left for the handler to do its thing. In any case, a similar check could be added.) We can remove the TRULY-DYNAMIC-EXTENT declaration now, since its only purpose was to facilitate the old way of just avoiding allocations that could silently overflow the stack. If we really want to skip the overflow check during self-build always, that could just be achieved via a special variable. No need to have an extra "internal-only" declaration to do that. This simplifies frontend processing of dynamic extent. Add a test exhibiting large stack allocation interacting with the limited stack size. |
||
|---|---|---|
| .. | ||
| cmu-user | ||
| internals | ||
| internals-notes | ||
| manual | ||
| clean.sh | ||
| entities.inc | ||
| FOR-CMUCL-DEVELOPERS | ||
| GIT-FOR-SBCL-HACKERS.txt | ||
| GIT-WORKFLOW.md | ||
| make-doc.sh | ||
| PACKAGING-SBCL.txt | ||
| README | ||
| sbcl.1 | ||
SBCL is -- ahem! -- imperfectly documented. What can we say? Help with documentation might not be refused.:-) There is a Unix man page, sbcl.1. There is a user manual in texinfo format, in doc/manual/. (In binary distributions, the compiled-into-HTML translations are also included.) Much of the documentation for supported extensions is in their Lisp doc strings. For example, to find out how to use the SAVE-LISP-AND-DIE function in the SB-EXT package, you can execute (documentation 'sb-ext:save-lisp-and-die 'function) or (describe 'sb-ext:save-lisp-and-die) in SBCL. The user manual is incomplete, and some of its chapters are just notes that "this is similar to chapter such-and-such of the CMU CL user manual". The old CMU CL documentation can still be useful both for missing chapters of the user manual and for documentation of the internals of the system. It can be downloaded from <ftp://sbcl.sourceforge.net/pub/sbcl/cmucl-docs.tar.bz2>.