Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 23, 2011
  1. Merge branch 'master' into mswinmt

Commits on Oct 22, 2011
  1. Clean up build process for cross-compiled targets.

    Alastair Bridgewater authored
      * Over time, the process for producing an SBCL build for another
    target architecture or OS has become more difficult and less
      * Move all argument processing to
      * Have produce a file, output/build-config,
    containing shell commands to set up important build parameters
    such as where to find GNUMAKE, what SBCL_XC_HOST is, and so on.
      * Source output/build-config in most of the make*.sh scripts.
      * The practical upshot of all this is that a cross-compile
    build is now a matter of alternating between target and host,
    calling,,,,, and following up with a on the target, and you wind up with a
    usable product.  And, as does all of the arg
    parsing, you can pass --xc-host= or --dynamic-space-size= or
    whatever and it all works out.
Commits on Mar 7, 2011
  1. * default to "sbcl" as executable name (when

      SBCL_RUNTIME_EXECUTABLE is undefined)
Commits on Feb 19, 2011
  1. * (temporal) added --dynamic-space-size 500 to limit

      space size when building (should make default adjustable instead)
  2. * win32: allow detected arch override with

      SBCL_ARCH (TODO generalize)
    * (ltf): :sb-auto-fpu-switch is x86-only (now it matters, as win32 supports x86-64 as well)
      (ltf): :os-provides-dlopen moved to common win32 code (os, not os-arch)
    * (temporal) added $XRUN before grovel command line;
      useful to hook a target platform emulator into SBCL build process
    * (temporal) use $SBCL_XRUN as command line prefix
    * added $SBCL_XRUN
Commits on Dec 10, 2010
  1. Modifications for unix-host and wine-target support.

    New build stages genesis-1a, host-1a, for auto-linking library symbols referenced in Lisp (currently win32 only)
Commits on Feb 16, 2009
  1. handling of potential corruptions

    Gabor Melis authored
    - add corruption_warning_and_maybe_lose that prints a warning and
      loses depending on lose_on_corruption_p (false by default)
    - use corruption_warning_and_maybe_lose when the control stack is
      exhausted and on memory faults
    - use corruption_warning_and_maybe_lose on the lisp handlers of
      SIGILL, SIGBUS and SIGEMT, as invoking them is surely not a good
    - add --lose-on-corruption as a runtime option
    - add --disable-ldb as a runtime option
    - update the man page and the user manual
    - HEAP-EXHAUSTED fixes:
      - exit pseduo atomic properly and do pending interrupt if needed
      - signalling HEAP-EXHAUSTED in a WITHOUT-INTERRUPTS is dangerous
    - use --lose-on-corruption in make-target*.sh
    Also, block blockable signals on lose() to prevent other threads,
    timers and such from interfering. If only all threads could be stopped
Commits on Feb 28, 2007
  1. @antifuchs make-target-2.lisp split into compile and dump phases.

    antifuchs authored
    * Split make-target-2.lisp into make-target-2.lisp and
      make-target-2-load.lisp, reducing unnecessary state that was kept around.
      Not keeping symbols that were interned during the compilation of PCL
      saves us 400kB on x86 and between 1MB and 1.5MB on x86_86.
    * Unintern symbols that are internal to CL-USER before dumping the core.
      This doesn't save any space; just removes confusion.
Commits on Apr 5, 2006
  1. @rudi

    rudi authored
        new toplevel options --no-sysinit, --no-userinit to inhibit
        loading the corresponding init files
        ... also fixes the win32 build failure that motivated this change
Commits on Dec 29, 2005
  1. @csrhodes

    csrhodes authored
    	Beginnings of a Win32 merge.
    	... rearrange the build scripts to use input from files rather
    		than <<HERE documents.
    	... (no other changes; just working to get the meaty changes
    		isolated from the fluff)
Commits on Oct 13, 2005
  1. @jsnell

    jsnell authored
            More merging. SAVE-LISP-AND-DIE defaults to not purifying on
            GENCGC platforms.
Commits on Sep 16, 2005

    Thiemo Seufer authored
    	Robustify the build system scripts.
Commits on Aug 15, 2005

    Nathan Froyd authored
            Reduce core file size by 600k+:
            * Disable FORMAT-with-constant-format-string transform in the
              cross compiler--eliminates many large LAMBDAs from the core;
            * Remove call to PURIFY at the beginning of warm init so that
              cold-init-only stuff doesn't get moved to read-only space
              before it is uninterned and (not) garbage collected.
Commits on May 8, 2005
  1. @csrhodes

    csrhodes authored
    	More build fixes
    	... for our non-8859-1 friends, explicitly request the C locale
    		while building.
    	... running the tests (and indeed starting up the new sbcl)
    		in unknown locales will fail instantly, but that's probably
    		less annoying than having the build fail at cold-init time.
    	... probably stdin/out/err should fall back to ascii external format
    		if all else fails
Commits on Jan 8, 2005

    Alexey Dejneka authored
            * Allocate closures at the beginning of FLET/LABELS form.
            ... fix bug 125.
            * Partial support of stack allocation of dynamic-extent
              closures on x86.
Commits on Sep 13, 2004
  1. @nikodemus Step SBCL, step!

    nikodemus authored
                * Merge the new intrumentation based single stepper,
                   excise stale breakpoint code for STEP; TRACE breakpoints
                   should be unaffected.
                * A dash of documentation.
Commits on Jun 29, 2004
  1. @nikodemus Merge package locks, AKA "what can go wrong with a 3783 lin…

    nikodemus authored
    …e patch?"
              ... Controlled by the presence of :sb-package-locks in target
              ... This builds both with and without package locks on both
                     x86 Linux and SunOS Sparc, with both CMUCL and SBCL
                     as host -- so chances are it should build elsewhere as
              ... Remaining TODO: turn package locking errors from lexical
                     constructs to program errors in the produced code, fix
                     the bits in SBCL that hit host's SBCL-tyle package locks
                     (relevant FIXME is in src/cold/shared.lisp).
Commits on Apr 15, 2004
  1. @csrhodes

    csrhodes authored
    	deKLUDGE the solution for PACK-BEFORE-GC-HOOK
    	... well, not completely.  PACK remains non-reentrant and
    		non-threadsafe, but at least now global data structures
    		don't grow without bounds;
    	... mostly whitespace changes, but clear the PACK structures
    		after every call, not once per GC cycle.  Marginally
    		less efficient, I fear :-(
    	... while we're at it, fix analogously VOP-TN-REFS, and while
    		we're at it, document that a special is a bit of an
    		odd way to implement a (non-reentrant non-threadsafe)
    	... only one BEFORE-GC-HOOK left.
Commits on Feb 12, 2004
  1. @csrhodes

    csrhodes authored
    	Miscellaneous fixes
    	... fix bad behaviour on on missing directories (reported
    		Zach Beane sbcl-devel 2004-01-16)
    	... fix PUSHNEW docstring (patch VJA sbcl-devel 2003-12-30)
    	... call PACK-BEFORE-GC-HOOK by hand in, to get
    		core sizes down a bit (2Mb on x86, 6Mb on PPC).  We're still
    		awaiting a proper fix, though.
Commits on Sep 1, 2003
  1. @csrhodes

    csrhodes authored
    	Fix bug in ROUND/FROUND revealed by PFD
    	... after cmucl-imp/sbcl-devel 2003-08-xx
    	Remove last vestiges of *GC-NOTIFY-STREAM*
Commits on Apr 25, 2003
  1. 0.pre8.102:

    Alexey Dejneka authored
            Compiler issues a full WARNING on calling of an undefined
            function with a name from the CL package.
Commits on Jan 31, 2003

    Alexey Dejneka authored
            * Declare MAPCAN and MAPCON to return T;
            * Remove (:FUNCTION :IR1-TRANSFORM) info type.
Commits on Oct 27, 2002
  1. @csrhodes

    csrhodes authored
    	Fix bug 185 (top level forms at the REPL)
    	... implement a LOCALLY method for EVAL-IN-LEXENV
    	... factor out MACROLET-DEFINITIONIZE-FUN and
    		translators for same
    		in terms of said DEFINITIONIZE-FUN macros and LOCALLY
    	... set compilation policy in make-target-2 to avoid file scope
    	... set interaction policy by hard-coding it in
    	... throw it together and hope it all still works.
Commits on Nov 1, 2001
  1. 0.pre7.81:

    William Harold Newman authored
    	DEFSTRUCT cleanups.. rid of old SLOT-ACCESSOR-FORM in favor of
    		%ACCESSOR-PLACE-FORM, so that now information about
    		the different types of raw slots is more nearly
    		centralized in *RAW-SLOT-DATA-LIST*
    	..moved target-only stuff from near %TARGET-DEFSTRUCT call in
    	miscellaneous cleanups..
    	..added (SETQ *PRINT-CIRCLE* T) to the before-proper-printing
    		hacks in
    	fixed stupid *PRINT-CIRCLE*-related bug in OUTPUT-OBJECT
    		(introduced in the 0.pre7.76 changes)
Commits on Oct 31, 2001
  1. 0.pre7.74:

    William Harold Newman authored
    	merged flaky6 changes back into main branch
Commits on Oct 6, 2001
  1. 0.pre7.49:

    William Harold Newman authored
    	deleting old byte-compiler/byte-interpreter stuff..
    	..find . -name *byte*lisp | xargs rm
    	..find . -name *.lisp | xargs egrep -i 'byte.*comp'
Commits on Oct 3, 2001
  1. 0.pre7.38:

    William Harold Newman authored
    	(flaky5_branch RIP. There are still problems: debugging data
    		going astray, and new DEFUN of inline FOO being too
    		wimpy. But it seems better than 0.pre7.37. So..)
    	merged flaky5_branch back onto the main branch
Commits on Aug 21, 2001
  1. 0.pre7.14.flaky4.5:

    William Harold Newman authored
    	(Oops: In the previous version, I worked on "reimplemented
    		ONCE-ONLY so it expands into a single LET, so that
    		DECLAREs inside work as they should" enough that I
    		put it into the commit notes, but then I realized
    		that using an inline function is a nice way to solve
    		the UNIX-FAST-SELECT problemm, so I undid the ONCE-ONLY
    		changes, but forgot to clean up the commit notes.)
    	(This version builds under sbcl-0.6.13 with :SB-SHOW, and
    		without :SB-INTERPRETER, in target *FEATURES*. Now
    		maybe I can use the result to figure out why it can't
    		build itself.)
    	Maybe we don't need the extra space in DISASSEM-BYTE-COMPONENT
    		after all.
    	added :IGNORE-FAILURE-P for src/cold/cold-init in order to
    		build with :SB-SHOW
    	got rid of various early /SHOWs (before the definition of
    		UNWIND in assem-rtns.lisp is loaded) so that the system
    		could cold init
    	chopped *PRINT-LEVEL* back down to 5 so that
    		/SHOW statements terminate before hell freezes over
Commits on Aug 17, 2001
  1. 0.pre7.14:

    William Harold Newman authored
    	(Oops, I was wrong before -- I made a typo when I thought I
    		was deleting :SB-INTERPRETER from target *FEATURES*,
    		so I didn't test what I thought I tested, and
    		0.pre7.13 didn't actually work without
    	So, now to make things actually work without :SB-INTERPRETER..
    	..saved a few things
    		from src/compiler/eval.lisp in early-c.lisp
    	..SB!EVAL can't be conditional on :SB-INTERPRETER, since it's
    		the home of stuff like the 'eval stack' (also used
    		by the byte interpreter).
    	..made INTERPRETED-FUNCTION-NAME hacking conditional on
    	..made other SB!EVAL:FOO stuff conditional on :SB-INTERPRETER
    	..s/#+!sb-show/#!+sb-show/ (Isn't it Perl that Lispers slam
    		for accepting line noise as valid input?)
    	..raised *PRINT-LENGTH* and *PRINT-LEVEL* to
    		10 so that
    compilation aborted because of input error:
                              :ACTUAL-INITARGS (STREAM # FORMAT-CONTROL
                                                no dispatch function defined for ~S
                                                FORMAT-ARGUMENTS ...)
                              :ASSIGNED-SLOTS NIL))
    		would no longer have key information elided
    	..(This version still doesn't work without :SB-INTERPRETER,
    		but it does have some progress, and at least it still
    		works with :SB-INTERPRETER, so I'm checking it in.)
Commits on Jul 12, 2001

    William Harold Newman authored
    	(got confused, thought GENCGC was excessively conservative,
    		tried to fix it, then backed out)
    	tweaked a lot of comments and some names in gencgc.c
    	made GENESIS systematically propagate *SHEBANG-FEATURES*
    		entries into #define's in sbcl.h. (This isn't currently
    		used for anything -- I wrote it to support my confused
    		make-GENCGC-less-conservative effort, which no longer
    		exists. However, it seems harmless and could be useful
    		e.g. for making C-level code depend on SB-SHOW, so I
    		left it in.)
Commits on May 18, 2001

    William Harold Newman authored
    	(As per Daniel Barlow sbcl-devel 2001-05-17, the removal of
    		the mysterious "" special case in UNIX-STAT will
    		probably keep this version from building itself,
    		so I didn't even try. It does, however, at least
    		do "sh" successfully.)
    	fixed declaration in %EXTRACT-STAT-RESULTS so that the
    		system won't have to interpret the alien reference
    		at runtime on every call to the function
    	I found how to fix the boot/gencgc/purify problem which was
    		leaving initial-function unmapped -- I could copy
    		current_region_free_pointer into
    		boxed_region.free_pointer just before
    		gc_alloc_update_page_pages() in save.c. However,
    		that left me with other flaky GC problems. So I gave
    		up my GC hacking in this version as a bad job, and
    		copied original GC-related files over
    		the modified versions: gencgc.c, save.c, purify.c,
    		gc.lisp, save.lisp
    	made %EXTRACT-STAT-RESULTS inline to suppress an apparent
    		memory corruption bug
Commits on May 15, 2001

    William Harold Newman authored
    	(This system state is seriously screwed up. It did build,
    		both on Linux and on OpenBSD, but signalled an
    		error after writing out sbcl.core on OpenBSD, and
    		although it runs a little both on Linux and on
    		OpenBSD, it hangs in the regression tests. It
    		also has some temporary hacks marked REMOVEME,
    		including one which suppresses PURIFY when
    		building the system (!).)
    	made the system build on OpenBSD again..
    	..stubbed stuff out as a quick fix to the problem of FFI to
    		64-bit stat.st_size
    	tried to make the system run on OpenBSD again..
    	..initialized current_dynamic_space, since it's now used
    		instead of DYNAMIC_SPACE_START in PURIFY
    	..added new assertions about GENCGC alloc_region stuff being
    		reset when it should be
    	renamed Lisp-level struct stat stuff to struct wrapped_stat
    	tried to tidy up Lisp-level stat stuff; removed mysterious
    		(STRING= NAME "") behavior from UNIX-STAT
    	added to help in low-level compile-and-try cycle
    	pulled alloc_region-is-reset logic out into separate
    		functions, and added more assertions on it (hunting
    		for a bug which broke the old assertions)
    	renamed gc_alloc_large to gc_alloc_possibly_large, and
    		gc_quick_alloc_large_unboxed to
    	enabled various GC checks, e.g. gencgc_zero_check=1
    	deleted unused (and bizarre..) gencgc_verify_zero_fill()
    	turned off PURIFY in order to get the system to build, since
    		PURIFY seems to be misbehaving (leaving INIT-FUNCTION
    		above the cutoff address..)
Commits on Jan 20, 2001

    William Harold Newman authored
    	DESCRIBE now works on STRUCTURE-OBJECTs again.
Commits on Dec 29, 2000

    William Harold Newman authored
    	(This version is broken. It builds, but can't build itself,
    		dying in vop.lisp with what looks like memory
    		corruption. might be broken the same way.)
    	no more special support for DECLARE SB-PCL::CLASS
    	moved policy stuff into policy.lisp
    	moved !UNINTERN-INIT-ONLY-STUFF to after warm init
    	renamed some PCL stuff to make it be uninterned after warm init
Commits on Nov 5, 2000

    William Harold Newman authored
    	tweaked DEFCONSTANTs to be more ANSI-compliant (as required
    		when building using an XC host incorporating changes
    		from the previous commit) and generally cleaner
            got rid of DEFCONSTANT WRAPPER-LAYOUT completely, which was
    		used only by STRUCTURE-WRAPPER, which is now gone
    	merged several small files into primordial-extensions.lisp
    	converted DEFMACRO DEFCONSTANT to use EVAL-WHEN instead of
    		IR1 magic, in order to make it ANSI enough for
    		DEFCONSTANT-EQX to work
    	removed various nested EVAL-WHENs (to help cross-compiler)
    	identified bug IR1-3, added workaround in DO-EVAL-WHEN-STUFF
    	incremented fasl file version (because of mismatch between
    		old IR1 magic %DEFCONSTANT/%%DEFCONSTANT behavior and
    		new EVAL-WHEN %DEFCONSTANT behavior)
    	deleted some unused code
    	fixed (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) bug
Something went wrong with that request. Please try again.