sbcl.sbcl/contrib
Christophe Rhodes 430495fb5f Allow compiling the system with coverage instrumentation
To build, pass `--with-sb-cover-for-internals` to make.sh

Test running scripts have been adapted; pass `--coverage` to
run-tests.sh and/or ansi-tests.sh to generate .coverage files, then
use a script like `cover-script.lisp` to generate a report.

Things that we need to fix:
- it's pretty slow (build time roughly doubles)
- the report is fairly ugly (and doesn't sort the sources in the way
  I would expect)
- it exposes some issue in combination with --with-sb-show
  Can't compute fixup relative to movable object
    #<code id=5419 [7] (FLET "PPRINT-BLOCK" :IN "SYS:SRC;CODE;WARM-ERROR.LISP") {1203AEC9BF..1203AED4A0}>
2025-11-21 18:25:03 +00:00
..
asdf Haiku ASDF fix 2025-01-02 09:00:23 -05:00
sb-aclrepl Manual reports SB-THREAD:GET-FOREGROUND, so export it 2024-07-10 09:40:50 -04:00
sb-bsd-sockets Don't load msvcrt.dll when built with UCRT. 2025-04-04 02:11:04 +03:00
sb-capstone Cease using ASDF to build contribs 2022-09-30 11:54:53 -04:00
sb-cltl2 Reduce node.lisp constructor lambda lists. 2024-12-19 08:47:17 +03:00
sb-concurrency constant-lvar-p: always check the type. 2025-10-22 17:29:02 +03:00
sb-cover Add missing test file 2025-11-21 14:31:59 +00:00
sb-executable Cease using ASDF to build contribs 2022-09-30 11:54:53 -04:00
sb-gmp Don't have SB-BIGNUM use SB-ALIEN, SB-SYS, or SB-KERNEL. 2024-05-18 02:32:12 +02:00
sb-grovel Fix sb-posix for 64-bit time_t. 2025-01-17 05:34:24 +03:00
sb-introspect Don't fold %vector-widetag-and-n-bits-shift on unknown types. 2025-10-17 00:41:04 +03:00
sb-md5 Reduce SB-MD5's compiler policy restrictions 2025-11-18 22:29:26 +00:00
sb-mpfr Remove :depends-on in contribs. 2024-04-10 15:14:14 +01:00
sb-perf Build sb-perf 2024-03-08 08:10:01 -05:00
sb-posix Fix SB-POSIX:STRTOD on -c-stack-is-control-stack 2025-10-10 00:49:17 +03:00
sb-queue Remove :depends-on in contribs. 2024-04-10 15:14:14 +01:00
sb-rotate-byte Don't have SB-BIGNUM use SB-ALIEN, SB-SYS, or SB-KERNEL. 2024-05-18 02:32:12 +02:00
sb-rt Cease using ASDF to build contribs 2022-09-30 11:54:53 -04:00
sb-simd Correct the definition of sb-simd-ssse3:s16.8-maddubs 2024-12-09 17:22:18 +03:00
sb-simple-streams arm64: smaller (the type (or null type)) 2024-09-13 04:09:24 +03:00
sb-sprof Rename deathlok to TLS-lock 2025-09-06 11:55:15 -04:00
asdf-module.mk Remove DONT_CLEAN_SBCL_CONTRIB 2022-10-06 13:35:06 -04:00
code-extras.lisp 0.9.2.43: 2005-07-14 16:30:05 +00:00
compiler-extras.lisp Add dynamic-extent declarations 2018-04-09 16:14:20 -04:00
lldb_bt.py LLDB plugin for backtraces. 2025-10-03 03:28:16 +03:00
make-contrib.lisp Allow compiling the system with coverage instrumentation 2025-11-21 18:25:03 +00:00
Makefile Build sb-perf 2024-03-08 08:10:01 -05:00
README 0.8.4.27: 2003-10-17 14:27:44 +00:00
stale-symbols.lisp Clean up and rename MAKE-BOGUS-LRA 2019-03-01 16:33:27 -05:00
STANDARDS contrib: Remove vanilla-module.mk 2017-10-22 15:36:49 +02:00

This directory is for extensions to SBCL. They aren't necessary for
core SBCL functionality, or else they'd be built into the main SBCL
binary automatically. And they're not portable Common Lisp, or they'd
be put elsewhere (see http://sbcl.sf.net/libs.php for pointers)

There are two kinds of contrib module in this directory:

  * Newer contrib modules conform to the contrib standard (see 
    STANDARDS) and are automatically built and installed along with
    SBCL itself.  Each of these is in its own subdirectory with a
    Makefile, and can be loaded with REQUIRE.

  * Older standalone files in the contrib directory itself are
    effectively unpackaged and may or may not work with the current
    SBCL version.

Some good candidates for future extensions here are:
  * bindings to existing foreign libraries (e.g. to a regexp library
    like PCRE, or to a compression library like zlib, or to a graphics
    library like Tk)
  * new libraries (e.g. a CORBA interface)
  * low-level hooks into SBCL needed to interface it to some wrapper
    system (e.g. to interface to a graphical debugger of some sort)
  * a too-alpha-to-be-supported-yet tree shaker

SBCL extensions of less general interest, e.g. a binding to the C
interface of the Oracle RDBMS, or particularly large extensions, e.g.
big graphics frameworks, can also be associated with the SBCL project,
but instead of being included in this directory as part of the
distribution, they will be made available or linked to on the SBCL
project web site.