Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: maintenance
Commits on Aug 17, 2011
  1. * src/code/win32.lisp: remove leftovers from my first attempt to hand…

    …le LFNs, making CreateFileW an ordinary alien routine once again.
Commits on Aug 15, 2011
  1. Merge branch 'master' into mswinmt

  2. sb-studio

    fix bogus deadlocks from interrupts and GCs

    sb-studio authored
     Going in despite the freeze since this is a regression that can
     semi-randomly break correct code. *ouch*
     Thanks to Bart Bortta and #sbcl for the analysis.
     Problem 1:
       T1 holds L1
       T2 is waiting for L1
       T2 is interrupted, interrupt handler grabs L2
       T1 starts waiting on L2
       Prior to this patch, when GET-MUTEX in T2's interrupt handler grabbed
       L2 is marked T2 as still waiting for L1 -- which is not true until
       the interrupt handler returns.
     Problem 2:
       T1 holds L1
       T2 is waiting for L1
       GC is triggered in T2 inside GET-MUTEX
       T2 grabs *ALREADY-IN-GC* lock
       GC is triggered in T1, T1 tries to get *ALREADY-IN-GC* lock.
       Prior to this patch, when T1 detects a bogus deadlock as T2 has
       been marked as waiting for L1 -- which is not true until the GC is
       finished and normal execution resumes.
     Problem 3:
       T1 holds L1
       T2 is waiting for L1
       GC is triggered in T2 inside GET-MUTEX
       T2 grabs lock L2 due to a finalizer or an after-gc-hook
       GC is triggered in T1
       T1 tries to grab L2 due to a finalizer, etc.
       Same as problem 2, but with a user-lock and POST-GC instead of
       *ALREADY-IN-GC* and SUB-GC.
     This patch fixes the issue by saving, clearing, and restoring
     the waiting-for mark in
      1) interrupt handlers
      2) SUB-GC
      3) POST-GC
Commits on Aug 14, 2011
  1. Paul Khuong

    Fix automatic &rest to &more conversion in unsafe code

    pkhuong authored
     Applying &rest lists to known/typed functions can lead to a
     :fixed values call to %more-arg-values.  In that case, unroll
     it into several %more-arg of constant indices.
     Reported, with test case, by Lutz Euler (lp#826459).
  2. Paul Khuong

    New function: SB-EXT:SPIN-LOOP-HINT

    pkhuong authored
     Some architectures have developed ways to help the processor execute
     spin loops efficiently; expose them, where applicable, via
     Assembles to PAUSE on x86oids, and to nothing on other platforms.
  3. Merge branch 'master' into mswinmt

  4. Paul Khuong

    Missing NEWS entry for 4e431db

    pkhuong authored
     Also, missing credit for Lutz Euler's bug report on a7b24b5.
  5. Paul Khuong

    Handle SIMPLE-TYPE-ERROR when propagating bounds

    pkhuong authored
     Type conversions (e.g. bignum to float) may signal a
     SIMPLE-TYPE-ERROR rather than returning an infinity.
     Treat that case like an unknown value.
     Add two tests.
     Fixes lp#819269.
  6. Paul Khuong

    New function: SB!KERNEL:%MULTIPLY-HIGH

    pkhuong authored
     * Does the same thing as only returning the first value of %MULTIPLY,
       only better on some platforms.
     * Implemented vas VOPs on x86, x86-64 and PPC.  The PPC code sequence
       is fully untested, and merely looks correct.
     * VOPs for fixnum first argument are included, but will only be used
       when the result is forcibly marked as fixnum, e.g., with TRULY-THE.
       Questionnable, but I'd rather err on the side of straightforwardness
       rather than put even more pressure on representation selection.
     * Use it in the division-by-multiplication transform for unsigned
       TRUNCATE by constant.
  7. Paul Khuong

    More efficient integer division by multiplication

    pkhuong authored
     * Exploit restricted range for inputs (e.g. fixnums).
     * When the divisor is even, simplify with a mask instead of a shift.
     * Clean up the code a bit: we don't want modular arithmetic, it's
       actually all guaranteed not to wrap around.
     * Change the test so that larger divisors are a bit more likely to
       get tested too.
     * Lots more things can be done, including generalizing the transform
       to pretty much arbitrary rational divisor, or avoiding the costly
       general code sequence in nearly all cases.  Unfortunately, it's a
       lot of (somewhat original, at that) code, and can be fairly slow;
       if it matters to someone, I can try and find a compromise (contrib?).
  8. Paul Khuong

    Various (mostly) SSE x86-64 instruction definition fixes and additions

    pkhuong authored
     * Fix typos in mnemonics and non-temporal store definitions;
     * Add some instructions;
     * CLFLUSH was totally broken.
    Taken from Alexander Gavrilov's SSE intrinsics branch.
Commits on Aug 13, 2011
  1. Nikodemus Siivola
Commits on Aug 12, 2011
  1. * src/code/target-package.lisp (intern*): yet another take on

    base-string conversion -- sb-kernel:extended-char-p seems to
    be broken (everywhere); now using base-char-p instead.
  2. * src/code/target-package.lisp (intern*): another take on symbol name

    'base-stringification': avoid consing a temporal non-base string.
  3. * src/code/target-package.lisp (intern*): fix after myself -- "it's too

    cold" to use coerce in intern.
  4. * src/code/target-package.lisp (intern*): if we have base-string-named

    symbols anyway, let's save some storage by using base strings for new
    symbols when possible.
  5. Christophe Rhodes

    allow user-defined STRING synonyms in MAKE-SEQUENCE

    csrhodes authored
    ...and MAP, MERGE, COERCE and CONCATENATE too.  This also meant
    working a bit on TYPEXPAND, to make (STRING <N>) be unexpanded in the
    same way as STRING, and consequently on VALUES-SPECIFIER-TYPE to
    ensure that the system would still recognize those types.
    Include test cases for the sequence functions but not for TYPEXPAND.
Commits on Aug 11, 2011
  1. Stas Boukarev

    Declaim sb-di::valid-lisp-pointer-p inline.

    stassats authored
    Making it inline prevents from creating a SAP, and thus reduces
    consing and improves performance. It's called a lot by
    map-allocated-objects when GCing is disabled, so consing less is a
    desirable property.
    Reported by `lisper' on #lisp
  2. Merge branch 'master' into mswinmt

    * src/code/filesys.lisp: accepted from 'master'
    * src/code/win32.lisp: resisted some changes :(
  3. lichtblau

    Fix QUERY-FILE-SYSTEM for Windows UNC and device file names

    lichtblau authored
    Thanks to Anton Kovalenko.
Commits on Aug 10, 2011
  1. * src/runtime/win32-os.c: mostly accepted from master;

    (os_validate): mwwFlag reintroduced
  2. * src/code/win32.lisp: conflicted mostly over comments and formatting,

    except one case of using system-string (--ak) vs. reader conditionals (upstream)
  3. * contrib/sb-simple-streams/file.lisp: accepted from master

    * contrib/sb-simple-streams/simple-stream-tests.lisp: ditto
  4. Merge branch 'master' into mswinmt

    Non-conflicting files
  5. lichtblau

    sb-bsd-sockets: Fix error code handling on Windows

    authored lichtblau committed
      Factored out into a new function for the win32-specific
      WSAGetLastError call.
      Run-time results now match the existing constant definitions.
    Thanks to Anton Kovalenko.
  6. lichtblau

    sb-simple-streams: In test lp491087, merge the pathname

    lichtblau authored
      Needed for Windows.
    Thanks to Anton Kovalenko.
Something went wrong with that request. Please try again.