Commits on Feb 26, 2008
  1. 1.0.15: release, will be tagged as sbcl_1_0_15

    William Harold Newman committed Feb 26, 2008
Commits on Feb 22, 2008
  1. record bug 423

     * TRULY-THE interacts badly with *CHECK-CONSISTENCY*.
    nikodemus committed Feb 22, 2008
  2. make deftransforms for UB<N>-BASH-COPY have consistent ret…

    …urn type
     * Make REPLACE *CHECK-CONSISTENCY* happy: the transforms used to have
       return type (VALUES NULL &OPTIONAL), whereas the out-of-line
       definitions had return type (VALUES &OPTIONAL).
    nikodemus committed Feb 22, 2008
Commits on Feb 19, 2008
  1. make GENCGC gencgc_zero_check=1 proof again

     * moved zeroing from GC time to allocation time, but after
       the point where the check was done -- thus causing the check to
       fail immediately if it was turned on. This commit moves the check
       after the zeroing, so we're good again.
       ...which also means that gencgc_zero_check=1 is not very
       interesting anymore, since the zeroing happens in the immediate
       vicinity of the check.
    nikodemus committed Feb 19, 2008
  2. build runtime with -Wsign-compare, and clean warnings on x…

     * Nothing serious seemed to be going on, though, but since C has nasty
       signed vs unsigned comparison semantics, it is better to be clear
       about what is going on.
    nikodemus committed Feb 19, 2008
  3. detect the Windows codepage at runtime

     * Using the value from the saved core is wrong. Fix by Suzuki Kei on
    nikodemus committed Feb 19, 2008
Commits on Feb 18, 2008

     20-25% improvement for the test-case in bug 188.
     * New slot in LAMBDA-VAR: LAST-INITIAL-TYPE, which holds the last
       initial-type for that variable seen by PROPAGATE-FROM-SETS.
     * Be lazy, and don't PROPAGATE-TO-REFS unless something of
       interest has happened, to wit:
        -- One of the CSET nodes has a new, more specific type.
        -- INITIAL-TYPE has become more specific.
       This also allows us elide TYPE-UNION computation in the
       uninteresting cases.
     * Requires having NODE-REOPTIMIZE set when IR1-OPTIMIZE-SET
       is called.
    nikodemus committed Feb 18, 2008
  2. lift MAKE-SINGLE-VALUE-TYPE calls from loops

     * Multiple places can use the same type, no need to cons
       a new one each time through the loop.
    nikodemus committed Feb 18, 2008
  3. slightly less and slightly faster constraint propagation

     * For negated EQL constaints, don't cons up multiple MEMBER-TYPE
       instances during a single pass through CONSTRAIN-REF-TYPE:
       accumulate a single XSET, and turn it into a MEMBER-TYPE only at
       the end.
     * Don't construct (NOT (MEMBER ...TON-OF-SYMBOLS...)) types at all,
       unless SPEED > COMPILATION speed. Knowing that a variable is not
       in a set of symbols is seldom useful, and compiling large CASE
       statements with symbols as keys can end up spending huge amounts
       of time just building these sets.
     * Adjust FD-STREAMS to use an ECASE in the single place in SBCL where
       without the aforementioned constraint propagation the compiler is
       not able to determine sufficiently constrain the result type.  (Not
       needed since the build has SPEED > COMPILATION-SPEED, but keeps
       things non-brittle.)
    nikodemus committed Feb 18, 2008
Commits on Feb 17, 2008
  1. Resurrexit Alpha

    	Sort out accumulated bitrot on the Alpha:
    	* xrefs slot for simple_fun: a couple of places in alpha-assem.S
    	* arch_skip_instruction(): compilers more careful about lvalues;
    	* arch_handle_single_step_trap(): implement it.  (Untested)
    	* ld-script.alpha-linux: update for newer systems.
    	Works For Me.  Other systems may vary.
    csrhodes committed Feb 17, 2008
  2. fix bug 407

     * %SINGLE-FLOAT and %DOUBLE-FLOAT should not be flushable.
     * BUGS entry remains: should (COERCE (EXPT 2 1024) 'SINGLE-FLOAT)
       really signal a TYPE-ERROR?
    nikodemus committed Feb 17, 2008

     * Instead of searching for the external-format object to obtain
       the character-width function, store the function (or its result
       for fixed-width external formats) directly into the FD-STREAM
       object. Non-FD-STREAM ANSI-STREAMS use the old strategy.
    nikodemus committed Feb 17, 2008
Commits on Feb 16, 2008
  1. don't construct obsolete instances

    	The CTOR make-instance optimization machinery closes over the
    	class wrapper of the class in question; however, there are
    	code paths that cause wrappers to be invalidated without causing
    	all constructors to be recomputed: for instance, the
    	redefinition of a superclass, or calling
    	MAKE-INSTANCES-OBSOLETE.  This would mean that the CTORs would
    	create obsolete instances, which would instantly trap, showing
    	up as slowness in CLOS-heavy code.
    	Problem and fix largely identified by Andy Hefner in
    csrhodes committed Feb 16, 2008
Commits on Feb 15, 2008
  1. update ASDF again

     * a version that has correct *asdf-revision*.
    nikodemus committed Feb 15, 2008
Commits on Feb 14, 2008
  1. small FGEN improvements

     * Use a DEFSTRUCT instead of a vector for clarity. Also eliminate the
       unused mystery slot.
     * Inline code of GET-NEW-FUN-GENERATOR-INTERNAL in
     * Store in a hash-table for O(1) goodness instead of a list.
     * When lifting constants out of code in FGEN construction, leave
       constant lists in place: several of the functions we generate FGENs
       for have ETYPECASE forms, which will otherwise cause us to close
       over the :EXPECTED-TYPE and :POSSIBILITIES arguments to ERROR for
       no good reason.
    nikodemus committed Feb 14, 2008

     * Use VOP translation instead of %PRIMITIVE.
     * On x86 and x86-64 improve the pointer-hash slightly: use the whole
       address, but none of the tag bits in the hash.
     * Fix type in INDEX-FOR-HASHING: the first argument is a HASH, not an
       INDEX. Given the better quality of low bits on x86oids (and
       hopefully soon on others as well), adjust the mixing a bit.
    nikodemus committed Feb 14, 2008
Commits on Feb 8, 2008
  1. tweak COND slightly

     * Don't expand into a final (COND), but directly to NIL (easier to
       read macroexpansion.)
     * Check for the common case of final T, so that the last clause can be
       unconditional instead of generating redundant IF.
    nikodemus committed Feb 8, 2008
  2. trivial WHEN & UNLESS change

     * Implement directly on top of IF & PROGN instead of COND: clearer
       macroexpansion, and slightly less work to compile to boot.
    nikodemus committed Feb 8, 2008
  3. spell-check and proofread NEWS a bit

     * ...and add the "reported by" left out from the last commit.
    nikodemus committed Feb 8, 2008
  4. hash-table printing improvements

     * Respect printer-control variables when printing readably.
     * Print non-null weakness when printing unreadably.
    nikodemus committed Feb 8, 2008
Commits on Feb 6, 2008
  1. more backtrace verbosity, for a change

     * Revert part of the *SHOW-ENTRY-POINT-DETAILS* functionality: always
       return the DEBUG-FUN-KIND from FRAME-CALL, so that instead of the
       rather confusing
       a slightly mysterious but hopefully less confusing
       appears in backtraces where the XEP hasn't been tail-merged.
    nikodemus committed Feb 6, 2008
  2. debugger refactoring: MAP-BACKTRACE and MAP-FRAME-ARGS

     * Thanks to Attila Lendvai.
    nikodemus committed Feb 6, 2008
Commits on Feb 5, 2008
  1. XSET used EQ instead of EQL for comparison

     * Fix it, and add a test specifically for MEMBER using EQL.
    nikodemus committed Feb 5, 2008
Commits on Feb 4, 2008
  1. Fix SB-SHOW, broken for a while.

    * Optimization in CONCATENATE broke SB-SHOW in the cross compiler.
      Disable this optimization in SB-SHOW.
    Richard M Kreuter committed Feb 4, 2008

     * Also fix a bit of totally broken indentation in the
       hash-table code.
     * Cautionary comment about a potential type-error in parallel code.
     * More threaded hash-table tests.
    nikodemus committed Feb 4, 2008
  3. treat (NAMED-LAMBDA NIL ...) like (LAMBDA ...)

     * Getting NIL as the source-name of a functional is pretty bogus, and
       getting it as the debug-name messes with our careful debug-name
       sanity checks. So don't do it then.
    nikodemus committed Feb 4, 2008
  4. add explicit CHECK-CONSTANT-MODIFICATION policy

    nikodemus committed Feb 4, 2008
  5. fix typo in inline declaration for SOURCE-FORM-HAS-PATH-P

     * Thanks to Peter Graves.
    nikodemus committed Feb 4, 2008
Commits on Feb 3, 2008
  1. fix SB-POSIX:MK*TEMP() tests

     * BSD may be happy with just three Xs in the template, but Linux at
       least wants six.
    nikodemus committed Feb 3, 2008
  2. Rewrite non-standard LOOP syntax

            * Using XCL as the host compiler did not work due to a FOR/WHILE/FOR
              sequence (which is not defined in the spec, though supported by
              most implementations). Reported by Peter Graves.
    jsnell committed Feb 3, 2008

     * Remove the alien struct consing from the calls -- just use the SAP
     * Automagic unsupportedness handling for platforms that miss any of
     * Rudimentary tests.
     * #-win32 for now.
    nikodemus committed Feb 3, 2008
  4. update ASDF to 1.114 from CCLAN

     * On the ASDF side of the wall merge the empty SBCL_HOME handling to
       upstream, and canonicalize the whitespace there.
    nikodemus committed Feb 3, 2008
Commits on Feb 1, 2008
  1. friendly CHECK-TYPE error message for quoted type-specifiers

     * (QUOTE ...) is never a valid type-specifier.
     * When printing the macro-form responsible for an error, increase
       *PRINT-LEVEL* from 1 to 3, for a slightly better compiler-log
       reading experience.
    nikodemus committed Feb 1, 2008
Commits on Jan 31, 2008
  1. Fix regression in RUN-PROGRAM when :INPUT et al. are pathna…

    * GET-DESCRIPTOR-FOR is defined with &rest, &key, and
      &allow-other-keys, and one pathway passes the &rest list to OPEN.  A
      recent addition of a keyword argument to GET-DESCRIPTOR-FOR that
      OPEN didn't recognize created a problem.
    * Add test for the correct behavior.
    Richard M Kreuter committed Jan 31, 2008
  2. small TRACE and UNTRACE interface improvements

     * (TRACE "FOO") now traces SETF-functions as well.
     * (UNTRACE "FOO") is now supported.
    nikodemus committed Jan 31, 2008