Commits on Aug 27, 2009
Commits on Aug 26, 2009
  1. Fix a cross-compiler leak in specialized %unary-truncate

    csrhodes committed Aug 26, 2009
    Don't use host values of most-fooative fixnum.  (Also expand on the
    comment about using an exclusive test for floats within the fixnum
  2. fix occasional SIGBUS in single-float complex arithmetic

    csrhodes committed Aug 26, 2009
    The alignment restrictions on movaps for moving a pair of single floats
    are too strict; use movq instead.  (From Paul Khuong)
  3. fix for multiple-value TRUNCATE

    csrhodes committed Aug 26, 2009
    Regression from 1.0.30 (in; Noted by Lars Nostdal; fix by
    Paul Khuong
Commits on Aug 23, 2009
  1. fix for COERCE compilation regression

    csrhodes committed Aug 23, 2009
    Code of the form
      (defun foo (x)
        (declare (type simple-vector x))
        (coerce x '(vector (unsigned-byte 8))))
    should not cause a full WARNING, but with the new COERCE transforms,
    expanded into one of those IFs where one branch is dead, but the
    compiler couldn't prove it.
    Define a whole heap of new backend type predicates for all specialized
    vectors, generalizing VECTOR-T-P.  (Some specialized vectors are
    implemented using widetags, and so are excluded from these new
  2. fix SAVE-LISP-AND-DIE docstring

    csrhodes committed Aug 23, 2009
    From Leslie Polzer sbcl-devel 2009-08-07
  3. delete-file behaviour reversal

    csrhodes committed Aug 23, 2009
    In the 1.0.29.x series, DELETE-FILE started deleting the truename of the
    given pathname designator (rather than the pathname itself), meaning
    that symlinks could no longer be deleted.  Revert back to the historical
    behaviour.  (Noted on sbcl-devel by Luis Oliveira 2009-08-18.)
    Although the behaviour hasn't changed recently, there's a similar issue
    in RENAME-FILE, but that operator has such bizarre behaviour anyway it
    might be worth just letting sleeping pathname functions lie.
Commits on Aug 22, 2009
  1. utf-8 simple-array-nil correctness

    csrhodes committed Aug 22, 2009
    If an empty range of a simple-array-nil is requested for conversion, we
    should return an empty octet sequence, not blow up.
  2. x86 sap fixes

    csrhodes committed Aug 22, 2009
    The sap-ref-with-offset stuff was wrong in that the displacement was
    multiplied by a notional element size, rather than being uniformly
    treated as a number of bytes.  Mostly this codepath wasn't exposed at
    all (other than with sap-ref-8, which worked by "accident"), but
    attempts to implement UTF-16, which requires (sap-ref-16 sap (+ offset
    2)), showed up the problem.
Commits on Aug 12, 2009
  1. SB-INTROSPECT test adjustment

    nikodemus committed Aug 12, 2009
     * Fix ALLOCATION-INFORMATION test on PPC, and hopefully on SPARC as
       well. Thanks to Bruce O'Neel.
  2. various pretty-printing improvements

    nikodemus committed Aug 12, 2009
     Patch by Tobias Rittweiler:
     * Add a PPRINT-DECLARE which a) makes sure that (DECLARE (FUNCTION
       F)) is not printed as (DECLARE #'F), and b) places each declaration
       specifier on its own line. Also used for DECLAIM.
     * Better pprint SETQ forms which assign to multiple variables. At the
       moment it's printed like
        (SETQ FOO
                (FROB-FOO 0 1 2 3 4 5 6 7 8 9)
                (FROB-QUUX 9 8 7 6 5 4 3 2 1 0))
       With the patch it's indented like
        (SETQ FOO (FROB-FOO 0 1 2 3 4 5 6 7 8 9)
              QUUX (FROB-QUUX 9 8 7 6 5 4 3 2 1 0))
       It uses the former indentation style if the value (e.g. the
       "(FROB-FOO ...)") does not fit on a single line.
       This also affects PSETQ, SETF, PSETF.
     * Add pprint entry for SB-INT:DX-FLET because there are CL macros
       which expand to that.
     * Fix typo in *LOOP-SEPARATING-CLAUSES*; I mistakenly put WHERE
       instead of WITH in it.
     * Fix PPRINT-IF to make sure that the predicate is always printed
       right after the IF. The current definition may occassionally print
       an IF form like
     * Some small refactoring work:
       - Use PPRINT-LINEAR, and PPRINT-FILL instead of equivalent, but
         hairy FORMAT calls.
       - Add PPRINT-SPREAD-FUN-CALL which is the common subtrate of
         pretty-printing simple LOOP forms, and DECLARE forms.
  3. DECODE-FLOAT and INTEGER-DECODE-FOAT are not flushable

    nikodemus committed Aug 12, 2009 they should signal an error for non-floats in safe code,
     and hence UNSAFELY-FLUSHABLE.
     though for some reason Python seemed unwilling to delete these calls
     despite them being marked as flushable as well.
Commits on Aug 11, 2009
  1. LVAR-MATCHES needs to deal with unnamed leaves

    nikodemus committed Aug 11, 2009 passing ERRORP=NIL to COMBINATION-FUN-SOURCE-NAME. Also smooth
     the return value convention of C-F-S-N by adding a secondary value:
     NIL is a valid name for a local function.
Commits on Aug 10, 2009
  1. missing array predicate definitions

    nikodemus committed Aug 10, 2009
     * Not all specialized array predicates had an out-of-line predicate.
       Generate them from the SAETP vector. Reported by Stelian Ionescu.
     * Test case.
Commits on Aug 7, 2009
  1. Octets support for ebcdic-us

    csrhodes committed Aug 7, 2009
    	Continuing the theme of extensions no-one has ever asked for.
    	(There's a lot of duplicated code everywhere in
    	src/code/external-formats that could be replaced with a
    	sufficiently complicated macro-defining-macro...)
Commits on Aug 6, 2009
  1. faster SLOT-VALUE on structures

    nikodemus committed Aug 6, 2009
     * Replace the SLOT-VALUE and SET-SLOT-VALUE compiler macros
       with deftransforms once PCL has been built, and if the type
       is known to be a structure and the slot name maps cleanly
       to an accessor we can use it.

    nikodemus committed Aug 6, 2009
     * Ignore the :LARGE property on PPC, where is seems to bounce
       back and forth. Reported by Bruce O'Neel.
       (This is not a real fix, of course: the question of _why_
       PPC sometimes has (or thinks it has) #'CONS on a large
       object page remains.)
  3. faster TRUNCATE on floats

    nikodemus committed Aug 6, 2009
     * Specialized %UNARY-TRUNCATE/SINGLE-FLOAT and
     * Explicit coercions to appropriate float types in the TRUNCATE
       transforms. This gets rid of generic arithmetic in the general case
       (Python is reluctant to insert explicit integer-tofloat coercions
       for integers of unknown range due to precision issues.)
     * Since COERCE (and %SINGLE-FLOAT and %DOUBLE-FLOAT) are not
       flushable, take core not to generate leftover code in the TRUNCATE
       transform when the result lvar has a single-value type.
     * Rename %UNARY-TRUNCATE float VOPs, so that transforming to a
       specialized floating point version doesn't make use unable to
       implement it directly as a VOP when the range of the float is
       sufficiently constrained.
  4. fix SB-INTROSPECT test broken by

    nikodemus committed Aug 6, 2009
     * Mishandled return value.
Commits on Aug 5, 2009
  1. Hangul syllable character names

    csrhodes committed Aug 5, 2009
    	Provide for the construction of Hangul syllable character names,
    	as required by Unicode ("This character name is a normative
    	property of the character").  At present done at build-time; if
    	the increase in core size is too painful, it can be done
    	algorithmically in CHAR-NAME and NAME-CHAR.
  2. turn SB-INTROSPECT into an ASDF system

    nikodemus committed Aug 5, 2009
     * I at least am starting to find myself having to insert
       in too many places. This may be a sign that things aught to be in
       SB-EXT instead, but ASDFication seems like a logical next step.
       ...arguably all contribs but ASDF itself should be ASDF systems.
Commits on Aug 4, 2009
  1. flushable INITIALIZE-VECTOR

    nikodemus committed Aug 4, 2009
     * Allows deleting simple unused MAKE-ARRAY and VECTOR combinations.
     * Move ASSERT-NO-CONSING and ASSERT-CONSING to compiler-test-util.lisp,
       so that they can be used outside dynamic-extent.impure.lisp.
  2. failed aver in %ALLOCATE-CLOSURES IR2 conversion

    nikodemus committed Aug 4, 2009
     Patch by Larry D'Anna. He explains:
       This snippit
          (labels ((K (&optional x) #'k)))
       The problem is that it's trying to allocate a closure for the XEP
       for K, but K has been deleted because nothing references K except
       itself. %ALLOCATE-CLOSURES-IR2-CONVERT-OPTIMIZER already skips any
       leafs that lacks a XEP. This patch makes it also skip leafs who's
       XEPs have been deleted.
Commits on Aug 3, 2009
  1. Update to Unicode 5.0.1

    csrhodes committed Aug 3, 2009
    	There's more to be done, including fixing magic numbers and
    	documenting formats in internals, but this does the job for now, and
    	does wonders for my "lines changed" stats.
Commits on Aug 2, 2009

    kevinrosenberg committed Aug 2, 2009
            src/runtime/interrupt.c: Fix spelling error in error message
Commits on Aug 1, 2009
  1. make SB-CLTL2:VARIABLE-INFORMATION alien-aware.

    nikodemus committed Aug 1, 2009
     * Patch by Larry D'Anna.

    nikodemus committed Aug 1, 2009
     * Patch by Larry D'Anna.

    nikodemus committed Aug 1, 2009
     * Patch by Larry D'Anna.
  4. pretty-printing improvements

    nikodemus committed Aug 1, 2009
     * Improved pretty-printing of simple LOOP forms, IF, and
       MULTIPLE-VALUE-CALL. Patches by Tobias Rittweiler.
     * Improved pretty-printing of general macro calls by inspecting
       location of &BODY in the lambda-list. Patch by Tobias Rittweiler.
     * Make tests in walker.impure.lisp ignore newlines as well.
Commits on Jul 31, 2009
  1. fix failing AVER in CONVERT-MV-CALL

    nikodemus committed Jul 31, 2009
     Patch by Larry D'Anna.
     His comments:
       Ever since Spice Lisp, convert-mv-call had returned without doing
       anything if (functional-entry-fun fun) is not null, ie if fun
       possesses a XEP. replaces this criterion with "if the last
       optional entry has references", and signals an error if the last
       optional entry has no references and the XEP exists.
       I can't know exactly what Alexy was thinking when he put the aver
       in, but I can guess: If the XEP exists it should contain a
       reference to the last entry point, so if the last entry point has
       no refs and a XEP exists something went wrong. However, if the
       number of required + optional arguments is 0, then XEP doesn't need
       the "last" entry point, it can always use the "more" entry point
       instead, which is exactly what seems to have happened in this case.
       This patch combines the two conditions. convert-mv-call will return
       without action if *either* a XEP exists, *or* the last optional
       entry has references."
  2. deftransform for ARRAY-IN-BOUNDS-P

    nikodemus committed Jul 31, 2009
     * Patch by Leslie Polzer.
     * Also give notes when giving up in ARRAY-TYPE-DIMENSIONS-OR-GIVE-UP.
  3. hopefully fix _long_ SLEEP issues on OpenBSD

    nikodemus committed Jul 31, 2009
     * OpenBSD refuses to nanosleep() over 100 million seconds (returning
       EINVAL), so loop with 100 million second sleeps till the time left
       is smaller than that.
       ...who knows, maybe there is a good reason to sleep over 3 years?
       Bug reported by Johsh Elsasser.
  4. adjust OpenBSD address spaces on x86

    nikodemus committed Jul 31, 2009
     * Patch by Josh Elsasser. He says:
       "The current address space locations for x86 OpenBSD are adequate,
       but could still be better chosen. The only real problem with the
       current addresses is that the default dynamic space size is larger
       than the default data size resource limit, which means that sbcl
       will not run without some tweaking. Attached is a patch to lower
       the dynamic space size, as well as move all spaces to locations
       which I suspect may prove more future-proof against OpenBSD
       changes. The patch also greatly expands the OpenBSD comment. I
       apologize for the verbosity, but the address space layout on
       OpenBSD/i386 is quite complex and I wanted to record the details
       before I forgot (again)."
       Committing untested, as I don't have an OpenBSD system available.
  5. better DELETE-FILE on streams

    nikodemus committed Jul 31, 2009
     * Don't close the stream on Unix, so users can enjoy the normal
       Unixy-IO to unlinked files.
     * On Windows, close the stream with :ABORT NIL, so that there
       is no danger of close trying to delete file as well.
       Bug with DELETE-FILE trying to delete files twice reported by
       John Fremlin.
Commits on Jul 30, 2009
  1. prettier STYLE-WARNINGS for incompatible type proclamations

    nikodemus committed Jul 30, 2009
     * Print the specifier, not the type object.