mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
#+thats-not-a-thread-its-a-promise To reduce the number of hardcoded offsets to struct thread elements in Lisp, we move the struct thread definition into objdef.lisp But this creates circular dependencies in C-land, where the first half of sbcl.h has #defines that all the other headers depend on, but the second half has structures that depend on all the other headers. So, hack up genesis to write n header files (config.h, constants.h, static-symbols.h, plus one per primitive-object) instead of one. Now we can do some cleanup of the more gross uses of magic numbers in Lisp (debug-int, pseudo-atomic macro, etc) Lost *current-thread* : as a struct thread * it was useless, and as a pid it was unprintable 75% of the time, a native word pid is not a fixnum. Settled the interface for protect_control_stack_guard_page: it takes a pid is_valid_lisp_addr fixed to check all control stacks, not just the first one Parent thread now catches signals from dying children and cleans up after them (see destroy_thread) |
||
|---|---|---|
| contrib | ||
| doc | ||
| src | ||
| tests | ||
| tools-for-build | ||
| .cvsignore | ||
| base-target-features.lisp-expr | ||
| binary-distribution.sh | ||
| BUGS | ||
| build-order.lisp-expr | ||
| clean.sh | ||
| common-lisp-exports.lisp-expr | ||
| COPYING | ||
| CREDITS | ||
| distclean.sh | ||
| html-distribution.sh | ||
| INSTALL | ||
| install.sh | ||
| make-config.sh | ||
| make-genesis-2.sh | ||
| make-host-1.sh | ||
| make-host-2.sh | ||
| make-target-1.sh | ||
| make-target-2.sh | ||
| make.sh | ||
| NEWS | ||
| package-data-list.lisp-expr | ||
| PRINCIPLES | ||
| pubring.pgp | ||
| README | ||
| slam.sh | ||
| source-distribution.sh | ||
| STYLE | ||
| tagify.sh | ||
| threads.txt | ||
| TLA | ||
| TODO | ||
| TODO.dan | ||
| UGLINESS | ||
| version.lisp-expr | ||
| wc.sh | ||
GENERAL INFORMATION
Welcome to SBCL.
To find out more about who created the system, see the "CREDITS" file.
If you'd like information about the legalities of copying the system,
see the "COPYING" file.
If you'd like to install or build the system, see the "INSTALL" file.
If you'd like more information about using the system, see the man
page, "sbcl.1", or the user manual in the "doc/" subdirectory of the
distribution. (The user manual is maintained as DocBook SGML in the
source distribution; there is an HTML version in the binary
distribution.)
The system is a work in progress. See the "TODO" file in the source
distribution for some highlights.
If you'd like to make suggestions, report a bug, or help to improve the
system, please send mail to one of the mailing lists:
sbcl-help@lists.sourceforge.net
sbcl-devel@lists.sourceforge.net
SYSTEM-SPECIFIC HINTS
for OpenBSD:
OpenBSD 3.0 has stricter ulimit values, and/or enforces them more
strictly, than its predecessors. Therefore SBCL's initial mmap()
won't work unless you increase the limit on the data segment from
the OpenBSD defaults, e.g. with
ulimit -S -d 1000000
before you run SBCL. Otherwise SBCL fails with a message like
"ensure_space: failed to validate xxxxxxx bytes at yyyyy". (SBCL
is just allocating this huge address space, not actually using this
huge memory at this point. OpenBSD <3.0 had no problem with this,
but OpenBSD 3.0 is less hospitable.)