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

    csrhodes committed
    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. @csrhodes fix occasional SIGBUS in single-float complex arithmetic

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

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

    csrhodes committed
    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. @csrhodes fix SAVE-LISP-AND-DIE docstring

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

    csrhodes committed
    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. @csrhodes utf-8 simple-array-nil correctness

    csrhodes committed
    If an empty range of a simple-array-nil is requested for conversion, we
    should return an empty octet sequence, not blow up.
  2. @csrhodes

    x86 sap fixes

    csrhodes committed
    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. @nikodemus SB-INTROSPECT test adjustment

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

    nikodemus committed
     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. @nikodemus DECODE-FLOAT and INTEGER-DECODE-FOAT are not flushable

    nikodemus committed 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. @nikodemus LVAR-MATCHES needs to deal with unnamed leaves

    nikodemus committed 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. @nikodemus missing array predicate definitions

    nikodemus committed
     * 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. @csrhodes Octets support for ebcdic-us

    csrhodes committed
    	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. @nikodemus faster SLOT-VALUE on structures

    nikodemus committed
     * 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.
  2. @nikodemus SB-INTROSPECT:ALLOCATION-INFORMATION test adjustment

    nikodemus committed
     * 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. @nikodemus faster TRUNCATE on floats

    nikodemus committed
     * 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. @nikodemus fix SB-INTROSPECT test broken by

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

    csrhodes committed
    	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. @nikodemus turn SB-INTROSPECT into an ASDF system

    nikodemus committed
     * 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. @nikodemus flushable INITIALIZE-VECTOR

    nikodemus committed
     * 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. @nikodemus failed aver in %ALLOCATE-CLOSURES IR2 conversion

    nikodemus committed
     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. @csrhodes Update to Unicode 5.0.1

    csrhodes committed
    	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
  1. @kevinrosenberg

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

    nikodemus committed
     * Patch by Larry D'Anna.

    nikodemus committed
     * Patch by Larry D'Anna.

    nikodemus committed
     * Patch by Larry D'Anna.
  4. @nikodemus pretty-printing improvements

    nikodemus committed
     * 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. @nikodemus fix failing AVER in CONVERT-MV-CALL

    nikodemus committed
     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. @nikodemus deftransform for ARRAY-IN-BOUNDS-P

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

    nikodemus committed
     * 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. @nikodemus adjust OpenBSD address spaces on x86

    nikodemus committed
     * 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. @nikodemus better DELETE-FILE on streams

    nikodemus committed
     * 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. @nikodemus prettier STYLE-WARNINGS for incompatible type proclamations

    nikodemus committed
     * Print the specifier, not the type object.
Something went wrong with that request. Please try again.