Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Oct 2, 2008
  1. 1.0.21: release, will be tagged sbcl_1_0_21.

    Richard M Kreuter authored
  2. Fix a minor bug in TIME.

    Richard M Kreuter authored
    * Don't try to print cycle counts when the port doesn't support it.
Commits on Sep 30, 2008
  1. @nikodemus two buglets, LOG and TIME

    nikodemus authored
     * Unbreak (LOG DOUBLE INTEGER).
       (patch by Erik Marsden)
Commits on Sep 28, 2008
  1. Fix some bugs in GF type tracking.

    Richard M Kreuter authored
Commits on Sep 26, 2008
  1. @nikodemus tweaking LOG

    nikodemus authored
     * In case of (LOG INTEGER DOUBLE) and (LOG DOUBLE INTEGER), don't use
       intermediate single precision values.
     * Fix unoptimized (LOG X 0.0d0) => 0.0d0, and (LOG DOUBLE 0) => 0.0d0
       (both were 0.0f0).
Commits on Sep 24, 2008
  1. @nikodemus micro-optimize FILL-POINTER a bit

    nikodemus authored
     * Since it's inlined, move the error call to a separate function
       (without keyword arguments).
     * Since ARRAY-HEADER-P and %ARRAY-HAS-FILL-POINTER-P will be true
       only if the object is a vector with a fill pointer, the DECLARE is
     * Similarly for %SET-FILL-POINTER.
  2. @nikodemus small FIND fix & win32 build fix

    nikodemus authored
     * FIND on lists should not call the KEY function outside the
       specified subsequence.
     * Hopefully fix Win32 build: #+/#- -> #!+/#!- changes to pacify
     * Also advice against editing version.lisp-expr in Git, and show the
       branch-version.lisp-expr hack in GIT-FOR-SBCL-HACKERS.txt.
Commits on Sep 23, 2008
  1. Fewer STYLE-WARNINGs for gf calls.

    Richard M Kreuter authored
    * Use the union of a gf's defined methods' keys in the info db, so
      that the compiler won't warn about unrecognized keywords supplied by
      methods (but will catch typos and whatnot).
  2. fixed bug 415

    Gabor Melis authored
      * (MAKE-ARRAY (1- ARRAY-DIMENSION-LIMIT)) does not cause GC invariant loss.
      ARRAY-DIMENSION-LIMIT was lowered by two to leave space for the
      array header.
      * logged FORMAT bug
  3. @nikodemus nicer ONCE-ONLY expansion

    nikodemus authored
     * Name the variables actually visible in the final expansion sensibly.
  4. Produce a loadable FASL when compiling an incompatible DEF…

    Richard M Kreuter authored
    * Add some tests to see that redefining a STRUCTURE-CLASS works as one
      might expect, and that compiling a file whose loading redefines a
      STRUCTURE-CLASS works, too.
    * There are some nasty intermediate states having to do with
      subclasses defined in separate files (some are described in the
      tests), but that's not actually new.
  5. disable another hanging timer test

    Gabor Melis authored
Commits on Sep 22, 2008
  1. @nikodemus get rid of IGNORE-ERRORS in SB-INTROSPECT

    nikodemus authored
     * Pass ERRORP NIL to FIND-METHOD for *BREAK-ON-SIGNALS* friendliness.
  2. record bug 429

    Gabor Melis authored
  3. how to miss version.lisp-expr

    Gabor Melis authored
  4. fix gencgc on 32 bit platforms with 2gb< heap

    Gabor Melis authored
        - pepper unsigned long around
        - mixed signed/unsigned is ok as long as there are only + and -
          bitwise logical operations on them, care must be taken for /, <, <=.
  5. fix gencgc on 32 bit platforms with 2gb< heap

    Gabor Melis authored
    - pepper unsigned long around
    - mixed signed/unsigned is ok as long as there are only + and -
      bitwise logical operations on them, care must be taken for /, <, <=.
  6. @nikodemus fix sign confusion in reported memory fault addresses

    nikodemus authored
     * ...the mechanism sucks as much as ever, but at least the reported
       address will make sense for high addresses as well.
  7. gencgc: rename first_object_offset

    Gabor Melis authored
    ... to region_start_offset and flip the sign.
  8. minor gencgc cleanups

    Gabor Melis authored
    - removed unused alloc_base_string_list function
    - removed superfluous declarations
    - less casts
    - more respect for the the 80 char limit
Commits on Sep 20, 2008
  1. @nikodemus replace cut-and-paste duplication of ASSEMBLE with a macrolet

    nikodemus authored
     * Slightly more maintainable...
  2. @nikodemus make LOCK and FS prefixes part of the affected instruction

    nikodemus authored
     * Disassembler still shows them as a separate instructions, but
       in assembler the prefixes become postfixes to the instructions they
       modify: (INST MOV X Y :FS), etc.
     * Not only does this reduce the amount of conditionalization, but
       making prefixes part of the instruction they modify seems necessary
       if we ever want to turn on the instruction scheduler on x86oids,
       and is probably needed for a peephole optimizer as well.
     * Also fix x86-64 build: missed one ALIGN to EMIT-ALIGNMENT renaming.
Commits on Sep 19, 2008
  1. @nikodemus rename SB-ASSEM:ALIGN to EMIT-ALIGNMENT

    nikodemus authored
     * ...and EMIT-ALIGNMENT to %EMIT-ALIGNMENT, as per FIXME.
     * Also a missing SEGMENT-NAME -> SEGMENT-TYPE change from
  2. @nikodemus align loops on x86-64

    nikodemus authored
     * Intel recommends 16 byte alignment for branch target, and since
       code objects are 16 byte aligned on x86-64, we can get it.
  3. @nikodemus don't align elsewhere segments on x86 and x86-86

    nikodemus authored
     * There doesn't seem to be any need to do it, and the alignment NOP's are
       a waste of space.
     * Even though currently only elsewhere segments appear as the second
       argument to APPEND-SEGMENT, make sure we omit alignment only from
       elsewhere segments by changing SEGMENT-NAME to SEGMENT-TYPE (either
       :REGULAR or :ELSEWHERE) and checking it in APPEND-SEGMENT.
  4. @nikodemus :CACHED-CONSTANT TNs don't exist

    nikodemus authored
     * Remove FIXMEs asking about them, and other spurious references.

    nikodemus authored
     * Split %TIME into PRINT-TIME and CALL-WITH-TIMING, export the latter
       from SB-EXT -- wanting access to the numbers collected is a
       perfectly reasonable thing.
     * Make TIME print the information collected even if the form unwinds.
  6. @nikodemus semaphore and condition variable fixes

    nikodemus authored
     * Keep track of waiters on semaphores, so we know when a wakeup is
     * Interrupt proof semaphores and condition variables.
     * Check that the current thread owns the mutex in CONDITION-WAIT.
Commits on Sep 18, 2008
  1. @nikodemus fix DEFINE-STRUCTURE-SLOT-ADDRESSOR to work with raw slots …

    nikodemus authored
    …as well
     * Not needed yet, but soon enough... Only one caveat: the instance
       passed to the addressor must not be an instance of a subclass!
     * Also hopefully fix build on non-x86oids (a missing IGNORABLE
       declaraction), and remove pointless MACROEXPAND from ATOMIC-INCF.
       (We could keep it, but COMPARE-AND-SWAP should at least behave the
Commits on Sep 17, 2008
  1. @nikodemus ATOMIC-INCF implementation

    nikodemus authored
     * Modular arithmetic on word-sized unsigned structure slots.
     * Uses XADD on x86 and x86-64, a simple lisp-level implementation elsewhere.
  2. @nikodemus COMPARE-AND-SWAP on SYMBOL-VALUE to respect constants and d…

    nikodemus authored
    …eclaimed types
     * For constant symbol names which are declaimed SPECIAL, insert the
       appropriate THE around the new value.
     * For other cases use ABOUT-TO-MODIFY-SYMBOL-VALUE.
     * Tests.
Commits on Sep 15, 2008
  1. @nikodemus smaller allocation regions & reduced pinning

    nikodemus authored
     * Align objects at least one page in size on page boundaries.
       Previously only "large" objects (those at least 4 pages in size)
       were guaranteed page alignment.
     * Don't allow small objects to cross page boundaries.
     * The effect is to reduce the size of continuous allocation regions
       that start and stop on page boundaries. Since GENCGC conservativism
       operates on such regions, it's effects are reduced as well: for
       SBCL self build this reduces the number of pinned pages by ~45%.
     * Also report the amount of bytes found (in case of allocation
       failure) more accurately.
Commits on Sep 11, 2008
  1. Fix stupid bugs introduced in

    Richard M Kreuter authored
    * Dumb mistakes that weren't caught on x86-64 for some reason.  Tested
      this on Linux/x86, Linux/pcc, NetBSD/x86.
  2. Use a new set implementation for constraint propagation.

    Richard M Kreuter authored
    * Introduce an interface layer called "CONSET" into CP.  CONSETs
      mostly like SSETs, except that a few destructive operations return
      no value.
    * Introduce a CONSET implementation that uses a bit-vector and some
      bookkeeping instead of an SSET.  This tends to improve run time real
      time for compilation of many Lisp systems.
Commits on Sep 6, 2008
  1. Minor refactoring in constraint propagation.

    Richard M Kreuter authored
    * Eliminate keyword arguments to CONSTRAINT-PROPAGATE-IN-BLOCK and
      FIND-BLOCK-TYPE-CONSTRAINTS.  (Preamble to a soon-to-come reworking
      of CP; split into a separate commit per Nikodemus's request.)
Something went wrong with that request. Please try again.