Commits on Feb 3, 2009
Commits on Jan 26, 2009
  1. Do explicit sign-extension of small signed alien return va…

            * gcc 4.3 has a different interpretation of the ABI, and
              zero-extends signed chars, shorts and (on x86-64) ints.
    jsnell committed Jan 26, 2009
Commits on Jan 21, 2009
  1. Fix regression with enums in structs.

    This is not the most elegant of fixes, but arrange to return the old
    structure where applicable, and make incompatible mentions cause a
    CERROR with clobber continue semantics, to parallel what I think is the
    logic in the union/struct case.
    csrhodes committed Jan 21, 2009
Commits on Jan 17, 2009
  1. SB-BSD-SOCKETS workingness from saved cores on Windows

     * Need to call WSA-STARTUP on init.
     * Reported by Stephen Westfold, fix by Rudi Schlatte.
    nikodemus committed Jan 17, 2009
  2. handle IO errors in LDB and when saving the core

     * In LDB, if users response cannot be read, assume y.
     * Check fwrite() called when saving the core, and report the error.
     * Patch by Daniel Lowe.
    nikodemus committed Jan 17, 2009
Commits on Jan 16, 2009

    …ot unbound
     * It's :EXPECTED-TYPE, not :TYPE. ...having compiler check calls to ERROR like
       this would be nice.
     * Marginally better test to catch this.
    nikodemus committed Jan 16, 2009
Commits on Jan 15, 2009
  1. DEFTYPE to accept bodies consisting a single symbol

     * Regression from, reported by Ariel Badichi.
    nikodemus committed Jan 15, 2009
Commits on Jan 14, 2009
  1. fix bug 235a

       the functional only if policy matches.
    nikodemus committed Jan 14, 2009
Commits on Jan 12, 2009
  1. add necessary disambiguating curly braces to runtime

     * When QSHOW is undefined FSHOW(...) expands into nothing, leading to unexpected
       results for code like
         if (gencgc_verbose)
       as the conditional will then apply to the next syntactic element.
     * Patch by Daniel Lowe.
    nikodemus committed Jan 12, 2009
  2. fix regression from

     * TNs with KIND :CONSTANT don't have leaves if they represent load
       time values.
     * Reported by Attila Lendvai.
    nikodemus committed Jan 12, 2009
  3. mutex changes

    - do what a FIXME suggests and rename MUTEX-VALUE to MUTEX-OWNER
    - in the process, make sure that the value returned is less stale
    - keep MUTEX-VALUE around for compatibility for a while
    - also add HOLDING-MUTEX-P
    - to make MUTEX-OWNER and HOLDING-MUTEX-P useful make unithread builds
      keep track of the owner of mutex
    Gabor Melis committed Jan 12, 2009
  4. improve test scripts

    - robustify even more
    - fix the same bug related to $! in
    - make condition-wait-sigcont.lisp work unithread builds
    Gabor Melis committed Jan 12, 2009
  5. full raw-instance-slot support on HPPA

     * Patch by Larry Valkama.
    nikodemus committed Jan 12, 2009
  6. don't print the array object when reporting index out of b…

     * Report the type of the array instead, and encapsulate the array object in the
       condition object so that it can still be inspected manually.
     * Suggested by Stas Boukarev.
    nikodemus committed Jan 12, 2009
Commits on Jan 11, 2009
  1. Flag-setting VOPs on x86[-64] and conditional moves

     * Most :CONDITIONAL VOPs only specify which condition flags they set
     * GENERIC-{EQL,=,<,>} are :CONDITIONAL VOPs, but don't show up as
       calls anymore
     * Values may be selected with CMOVcc if applicable (and :CMOV is
       in *backend-subfeatures*, for x86):
        - Values that are represented, unboxed, in GPRs are CMOVed using
          custom VOPs
        - Unboxed float and complex types aren't converted
        - Other types are assumed to be boxed and CMOVed as descriptors
     * A test to try and to cover an interesting cross-section of flags
       and values to move conditionally.
    pkhuong committed Jan 11, 2009
  2. IR2: additional representation for predicates, conditional…

    … moves
     * :CONDITIONAL VOPs can now specify how to interpret the test
       they compute without performing the branch directly. How the
       test is specified is completely platform-dependent and only
       affects new-style :CONDITIONAL VOPs and a new BRANCH-IF VOP
     * Candidates for conversion to conditional moves are found
       and may be converted, depending on CONVERT-CONDITIONAL-MOVE-P,
       a new VM support routine. C-C-M-P returns NIL to punt on the
       conversion, or 5 values:
        1. name of the VOP to use
        2. TN for the first argument (NIL if none)
        3. TN for the second argument (NIL if none)
        4. TN for the result
        5. A list of info data, which will be appended to the flags
       The correct values will be MOVEd in the argument TNs if needed
       before computing the condition, and the result MOVEd to the right
       TN after the conditional move VOP.
    pkhuong committed Jan 11, 2009
  3. fix bug 316075
     * In DEFINE-ALIEN-ROUTINE, if the return-type is VOID, don't return
       the result of ALIEN-FUNCALL but a literal NIL instead.
    nikodemus committed Jan 11, 2009
  4. undo parts of

    No need for memory barriers when unlocking a spinlock on x86/x86-64.
    The ordering rules and the cache coherency mechanism together
    guarantee this. However, the compiler must be prevented from
    reordering instructions with the unlock (at least in one direction).
    This is now done in the runtime, but not in Lisp as the Lisp compiler
    does no reordering.
    Gabor Melis committed Jan 11, 2009
  5. robustify some more

     * Missed --no-userinit --no-sysinit --disable-debugger, causing it to
       fail for some setups.
    nikodemus committed Jan 11, 2009
Commits on Jan 10, 2009
  1. fixed and tested some more cleanups on hppa-hpux

     * Fix a stray #+ -> #!+.
     * Removed unneeded nops.
     * Explanation of magic numbers (but not yet substituted.)
       (Above changes in patch by Larry Valkama)
     * Fix a bunch of comments in the HPPA backend to use the right number
       of semicolons, and use FIXME-lav instead of FIX-lav to mark things
       (better grepping for the rest of us.)
    nikodemus committed Jan 10, 2009
Commits on Jan 9, 2009
  1. make unbind in the runtime zero the value of the binding

    ... to parallel what the Lisp side does. As far as I see the rationale
    for doing that (in doc/internals/specials.texinfo) does not apply here
    since signals are blocked when the dynbind functions are called. That
    said, instead of adding documentation let's fix it.
    Gabor Melis committed Jan 9, 2009
  2. target-thread cosmetics

    - in the docstring of CONDITION-NOTIFY document that the mutex must be held
    - remove and explain fixme in CONDITION-WAIT
    - respect 80 char limit
    - use ; ;; ;;; and ;;;; where appropriate
    - fill the comment paragraphs
    - add form feeds (^L) to separate pages
    Gabor Melis committed Jan 9, 2009
  3. fix release spinlock

    Both in the runtime and in Lisp releasing a spinlock was a simple
    assignment. That doesn't work because the new value may not make it to
    main memory by the time another CPU wants to acquire it making it
    needlessly slow. Worse, it also allows the CPU to reorder instructions
    from the critical section after the release.
    There is a spinlock implementation for MIPS in the runtime, but it's
    not used as we don't have threads on that platform. I don't know if
    it's broken too.
    Gabor Melis committed Jan 9, 2009
  4. add volatile after asm in spinlock and swap_lispobjs

    ... to prevent the compiler from optimizing away certain calls or
    maybe reorder them. Test for swap_lispobj.
    Gabor Melis committed Jan 9, 2009
Commits on Jan 8, 2009
  1. fix

    ... so that it doesn't leave stray sbcl child processes around and it
    actually tests what it wants to test.
    Gabor Melis committed Jan 8, 2009
Commits on Jan 5, 2009
  1. fix alien struct struct member offset bug

    No-one uses struct struct members, right?  Well, academics are
    notoriously bad at keeping up to dat with good practice...
    csrhodes committed Jan 5, 2009
Commits on Jan 4, 2009
  1. mudball of VOP updates for HPPA

     * Based on a mix of the old hppa-code and the mips backend.
     * Patch by Larry Valkama.
    nikodemus committed Jan 4, 2009
  2. call stub needed to switch between hpux heap-spaces

     * Patch by Larry Valkama.
    nikodemus committed Jan 4, 2009
  3. misc HPPA & HPUX updates

     * "To make it compile and run".
     * Config.hppa-hpux missed from
     * Patch by Larry Valkama.
    nikodemus committed Jan 4, 2009
Commits on Jan 3, 2009
  1. COMPILE-TIME reports timings at millisecond accuracy

     * Patch by Luis Oliveira.
    nikodemus committed Jan 3, 2009
  2. new HPUX specific files

     * Also more separation of linux stuff versus common stuff (hpux vs linux).
     * Patch by Larry Valkama.
    nikodemus committed Jan 3, 2009
  3. grab-bag of fixes to make hpux-os smile

     * Patch by Larry Valkama.
    nikodemus committed Jan 3, 2009
  4. updates on how we deal with fixup on HPPA

     * Patch by Larry Valkama.
    nikodemus committed Jan 3, 2009
  5. contrib fixes for HPPA

     * Fix or disable what breaks in contribs, so not everything breaks.
     * Patch by Larry Valkama.
    nikodemus committed Jan 3, 2009