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

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

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

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

    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
    csrhodes committed Aug 23, 2009
  2. fix SAVE-LISP-AND-DIE docstring

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

    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.
    csrhodes committed Aug 23, 2009
Commits on Aug 22, 2009
  1. utf-8 simple-array-nil correctness

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

    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.
    csrhodes committed Aug 22, 2009
Commits on Aug 12, 2009
  1. SB-INTROSPECT test adjustment

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

     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.
    nikodemus committed Aug 12, 2009
  3. DECODE-FLOAT and INTEGER-DECODE-FOAT are not flushable 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.
    nikodemus committed Aug 12, 2009
Commits on Aug 11, 2009
  1. LVAR-MATCHES needs to deal with unnamed leaves 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.
    nikodemus committed Aug 11, 2009
Commits on Aug 10, 2009
  1. missing array predicate definitions

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

    	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...)
    csrhodes committed Aug 7, 2009
Commits on Aug 6, 2009
  1. faster SLOT-VALUE on structures

     * 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.)
    nikodemus committed Aug 6, 2009
  3. faster TRUNCATE on floats

     * 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.
    nikodemus committed Aug 6, 2009
  4. fix SB-INTROSPECT test broken by

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

    	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.
    csrhodes committed Aug 5, 2009
  2. turn SB-INTROSPECT into an ASDF system

     * 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.
    nikodemus committed Aug 5, 2009
Commits on Aug 4, 2009
  1. flushable INITIALIZE-VECTOR

     * 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.
    nikodemus committed Aug 4, 2009
  2. failed aver in %ALLOCATE-CLOSURES IR2 conversion

     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.
    nikodemus committed Aug 4, 2009
Commits on Aug 3, 2009
  1. Update to Unicode 5.0.1

    	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.
    csrhodes committed Aug 3, 2009
Commits on Aug 2, 2009

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

     * 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.
    nikodemus committed Aug 1, 2009
  4. pretty-printing improvements

     * 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.
    nikodemus committed Aug 1, 2009
Commits on Jul 31, 2009
  1. fix failing AVER in CONVERT-MV-CALL

     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."
    nikodemus committed Jul 31, 2009
  2. deftransform for ARRAY-IN-BOUNDS-P

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

     * 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.
    nikodemus committed Jul 31, 2009
  4. adjust OpenBSD address spaces on x86

     * 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.
    nikodemus committed Jul 31, 2009
  5. better DELETE-FILE on streams

     * 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.
    nikodemus committed Jul 31, 2009
Commits on Jul 30, 2009
  1. prettier STYLE-WARNINGS for incompatible type proclamations

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