Steel Bank Common Lisp
Go to file
Charles Zhang 8fd2eae7f5 Define a foreign callable interface and make libsbcl.so useful.
This change adds many things:
* There is now a proper interface to defining and using foreign
callbacks in Lisp.
* There is now a usable script to build
libsbcl.so ("make-shared-library.sh"), which also slightly adjusts the
runtime to make it more amenable for external use with respect to
signalling.
* There is now a way to use libsbcl.so in conjunction with other
object code to actually initialize Lisp and call Lisp foreign
callables from C directly. (this works, at least on Linux, but support
is not quite complete yet, because we don't have a way to
de-initialize Lisp)
* `save-lisp-and-die' has gained a new argument to support the above.

I guess technically DEFINE-ALIEN-CALLBACK can be removed, since the
DEFINE-ALIEN-CALLABLE interface now supersedes it, but internal stuff
like tests still use it, so that change can wait for now.
2021-09-27 15:25:13 -07:00
.github/workflows github actions: use the correct cache key. 2021-09-16 00:38:19 +03:00
benchmarks Add some optional instrumentation to object creation 2021-08-18 20:27:41 -04:00
contrib sb-simple-streams: Fix suboptimal compilation 2021-08-30 12:51:33 -04:00
crossbuild-runner Get sparc to nominally succeed in crossbuild test 2021-09-15 10:20:07 -04:00
doc Define a foreign callable interface and make libsbcl.so useful. 2021-09-27 15:25:13 -07:00
src Define a foreign callable interface and make libsbcl.so useful. 2021-09-27 15:25:13 -07:00
tests Adjust a test. 2021-09-28 00:06:28 +03:00
tools-for-build win64: handle heap corruption exceptions in VEH 2021-09-15 15:16:39 +03:00
.cirrus.yml Disable an unavailable freebsd test runner. 2020-12-13 05:42:00 +03:00
.dir-locals.el Add .dir-locals disabling indent-tabs-mode everywhere but Makefiles 2021-06-19 19:21:07 +03:00
.gitattributes Add azure-piplines.yml 2019-01-27 15:49:04 +03:00
.gitignore Remove sbcl.nm make step 2020-09-28 02:08:58 -04:00
.mailmap Adjust .mailmap 2020-03-02 13:55:33 +03:00
binary-distribution.sh remove vanilla-module.mk from binary distribution list 2017-10-30 17:19:04 +00:00
BUGS 1.0.28.75: documentation work related to move to Launchpad 2009-06-03 09:09:52 +00:00
build-comparison.sh less csr21-specific build-comparison script 2015-09-04 21:42:24 +01:00
clean.sh Support building & testing in a tree whose leaves are symlinks. 2021-05-02 14:28:34 -04:00
cload-xc.lisp SB!C => SB-C 2020-01-19 18:00:09 -08:00
COPYING Still more hopscotch table enhancements 2017-04-13 16:52:40 -04:00
CREDITS New contrib: SB-GMP 2013-06-28 00:18:16 -04:00
cross-make.sh Update cross-make to target sunos 2020-03-18 17:44:06 -04:00
distclean.sh 1.0.10.55: Remove non-portable arguments to find, xargs 2007-10-22 04:16:12 +00:00
find-gnumake.sh Do not rely on which to be present in the system 2015-10-18 18:57:53 +03:00
float-math.lisp-expr Fix psxhash on floats, lp#1942424 2021-09-02 07:38:04 -04:00
generate-version.sh generate-version.sh: fix non-standard syntax. 2020-12-18 22:31:35 +03:00
HACKING Repoint the IRC channel in HACKING 2021-06-15 09:25:23 +01:00
html-distribution.sh 1.0.29.1: fix FILL 2009-06-04 18:01:31 +00:00
INSTALL Make some build scripts robust in case CDPATH is set and inconvenient. 2021-05-03 10:24:15 -04:00
install.sh Remove use of sbcl_pwd in contrib building. 2021-03-20 16:03:50 -04:00
load-xc.lisp fix load-xc.lisp to load, not cload 2019-04-11 14:36:40 -07:00
loader.lisp Change the name of the "abort building SBCL" restart. 2019-01-30 17:51:01 +03:00
make-all-targets.sh Use "make -j9" to test all cross-builds at once 2021-09-14 20:16:53 -04:00
make-c-runtime.sh Relax requirement on current directory during build 2021-06-30 11:25:13 -04:00
make-config.sh Remove obsolete :linkage-table from make-config 2021-04-20 12:06:55 -04:00
make-genesis-2.lisp Avoid using STEM-OBJECT-PATH in genesis per se 2020-01-24 15:22:28 -05:00
make-genesis-2.sh Don't require diffutils. 2019-04-14 16:13:43 +03:00
make-host-1.lisp Use "make -j9" to test all cross-builds at once 2021-09-14 20:16:53 -04:00
make-host-1.sh Make the build process abortable. 2016-10-04 22:17:34 +03:00
make-host-2.lisp Enforce that all architectures build warning-free 2021-09-14 19:40:08 -04:00
make-host-2.sh Accept one filename in make-host-2.sh to compile just that 2019-11-10 13:37:49 -05:00
make-shared-library.sh Define a foreign callable interface and make libsbcl.so useful. 2021-09-27 15:25:13 -07:00
make-target-1.sh Remove obsolete :linkage-table from make-config 2021-04-20 12:06:55 -04:00
make-target-2-load.lisp Scan for bad format controls after tree shaking, not before 2021-07-21 22:50:02 -04:00
make-target-2.sh Revert the changes to debug-info, source locations. 2021-05-30 06:08:42 -04:00
make-target-contrib.sh Make some build scripts robust in case CDPATH is set and inconvenient. 2021-05-03 10:24:15 -04:00
make-windows-installer.sh Make some build scripts robust in case CDPATH is set and inconvenient. 2021-05-03 10:24:15 -04:00
make.sh Make some build scripts robust in case CDPATH is set and inconvenient. 2021-05-03 10:24:15 -04:00
NEWS Define a foreign callable interface and make libsbcl.so useful. 2021-09-27 15:25:13 -07:00
OPTIMIZATIONS Remove obsolete item. 2016-06-13 13:40:50 -04:00
PRINCIPLES Initial revision 2000-09-18 01:26:16 +00:00
pubring.pgp Initial revision 2000-09-18 01:26:16 +00:00
README Remove mentions of NetBSD 2.0 from README. 2019-10-28 13:53:07 +03:00
release.sh a note to myself at the end of the release process 2018-04-29 13:34:43 +01:00
run-sbcl.sh Handle x:/y/z/run-sbcl.sh and x:\y\z\run-sbcl.sh 2021-06-19 19:21:06 +03:00
sbcl-pwd.sh sbcl-pwd.sh: Fix when $OSTYPE is not set. 2013-11-08 00:02:16 +04:00
slam.sh Read build-config in slam 2021-05-10 11:57:41 -04:00
source-distribution.sh A git-only SBCL workflow 2011-06-06 09:48:08 +03:00
tagify.sh 0.9.4.72: 2005-09-16 13:26:39 +00:00
TLA 0.8.9.10: 2004-03-30 16:58:25 +00:00
TODO Remove TODO. 2020-02-14 17:13:34 -08:00
verify-header-parsing.sh Make autogenerated headers mostly self-contained 2020-09-11 22:31:32 -04:00
wc.sh 0.9.4.72: 2005-09-16 13:26:39 +00:00

GENERAL INFORMATION

Welcome to SBCL.

If you'd like to install or build the system, see the "INSTALL" file.

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 more information about using the system, see the man
page, "sbcl.1", or the user manual in the "doc/manual" subdirectory of
the distribution. (The user manual is maintained as Texinfo in the
source distribution; HTML version is available for download, and
"INSTALL" describes how to build the Texinfo version in HTML and PDF.)

The system is a work in progress. See the "TODO" file in the source
distribution for some highlights.

The "BUGS" file lists current known bugs.

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
Note that as a spam reduction measure you must subscribe to the lists
before you can post.

The "HACKING" file has more details regarding hacking on and
contributing to SBCL.

SYSTEM-SPECIFIC HINTS

for OpenBSD 6.0 and newer:
  SBCL must be built and run from a filesystem with the "wxallowed"
  mount option, such as /usr/local in the default install.