Skip to content


Subversion checkout URL

You can clone with
Download ZIP
tag: sbcl.1.0.7
Commits on Jun 27, 2007
  1. 1.0.7: release, will be tagged as sbcl_1_0_7

    William Harold Newman authored
Commits on Jun 21, 2007
  1. @nikodemus add test file that was forgotten from

    nikodemus authored
     * clos-interrupts.impure.lisp
Commits on Jun 20, 2007
  1. @nikodemus bogus metacircles due to interrupted applicable method comp.

    nikodemus authored
     * If an interrupt arrives while have stuff on the *CACHE-MISS-VALUES-STACK*
       and the interrupt handler happens to call a gf that is already there,
       we used to think this was a metacircle. Instead we need to bind
       variables like this to "empty" values for interrupt hanlers.
     * Test.
     * Note some bugs.
  2. @nikodemus better heap exhaustion information

    nikodemus authored
     * Print states of *GC-PENDING*, *GC-INHIBIT*, and
       *SIG-STOP-FOR-GC-PENDING* for fatal heap exhaustions.
     * Use alloc_number instead of make_fixnum for requested/available.
  3. @jsnell fix sb-bsd-socket build on win32

    jsnell authored
             * Reported by Yaroslav Kavenchuk.
Commits on Jun 19, 2007
  1. @nikodemus replace CALL-WITH-DX-FUNCTION with DX-FLET

    nikodemus authored
     * Essentially same underlying macroexpansion, but more flexible in
       use, and possibly even easier to read.
     * Use DX-FLET instead of LAMBDAs in our CALL-WITH-FOO expansions
       to avoid consing up closures.
Commits on Jun 18, 2007
  1. @jsnell
  2. @jsnell
  3. @jsnell
  4. @jsnell mark most current tests failures on buildbot as expected

    jsnell authored
            * To make it easier to find out when there are new failures.
  5. @jsnell clean up compiler warnings in the runtime

    jsnell authored
            * Patch by Robert Brown.
  6. @jsnell better arglists for generic functions

    jsnell authored
            * Parameter names in the lambda list of the generic function
              are given priority to those of the gf's methods, since the
              names given in the generic function are likely to be more
            * Fix merging of &key parameters of all the methods.
            * Patch by Tobias Rittweiler.
  7. @jsnell make asdf-based contribs more friendly to :FORCE T

    jsnell authored
            * Do the groveling part of sb-grovel only at contrib build time.
              If the contrib is later recompiled, reuse the results from that
            * Doesn't solve the asdf-binary-locations problems related to
              groveling, but it looks as if asdf-binary-locations is already
              automatically adding SBCL_HOME into it's exceptions list.
  8. @jsnell Don't instrument the internal flets from the PROGV expansion

    jsnell authored
            * PROGV would get compiled to BINDING-STACK-POINTER -> X, ...,
              UNBIND-TO-HERE would also pop the sentinel from the binding stack,
              and the UNBIND-SENTINEL would then unbalance the stack.
            * Ensure that there will only be matched BIND-SENTINEL /
              UNBIND-SENTINEL pairs between taking the binding stack pointer
              and unwinding by adding some (OPTIMIZE (INSERT-DEBUG-CATCH 0))
    	* Reported by Nikodemus
Commits on Jun 15, 2007
  1. @nikodemus small fixes

    nikodemus authored
     * When expanding the CLOS cache, insert the new value before copying
       the old ones, in order to ensure that FILL-CACHE always terminations.
     * Cancel deadline before signalling the DEADLINE-ERROR, so that same
       deadline cannot be caught again during unwind.
Commits on Jun 11, 2007
  1. @csrhodes better standard-specializer-p implementation

    csrhodes authored
    	Instead of defining a gf with several methods, define a new
    	class STANDARD-SPECIALIZER to be used as a superclass to the
    	various specializers that are handled internally in PCL.
    	It's not exported, because we don't want people to subclass it:
    	they will not be able to implement the relevant protocols.
  2. @jsnell fix compilation speed regression from DATA-VECTOR-REF-WITH-…

    jsnell authored
    	* Change the remaining x86oid DATA-VECTOR-REF VOPs to
              DATA-VECTOR-REF-WITH-OFFSETs. The VOPs only accept an offset of
              0, and are thus functionally identical to the old ones.
            * This allows replacing the conditional deftransform from D-V-R to
              D-V-R-W-O with an unconditional source-transform.
            * Rewrite transformations with (OR (SIMPLE-UNBOXED-ARRAY (*))
              SIMPLE-VECTOR) argument types to instead do the type tests in the
              body of the transform, since the test can be expressed
              in a cheaper way in the latter case.
  3. @jsnell make WITHOUT-INTERRUPTS non-consing

    jsnell authored
    	* Consing up a closure for CALL-WITHOUT-INTERRUPTS is a performance
              problem, stack-allocate the closure on platforms with dx support.
            * Doing the stack-allocation properly is a bit tricky, encapsulate
              the right way into the CALL-WITH-DX-FUNCTION macro.
            * TODO: apply the same procedure to other CALL-WITH-FOOs.
  4. @jsnell
Commits on Jun 10, 2007
  1. @jsnell handle unbound markers (from BIND-SENTINEL) in unbind_to_here

    jsnell authored
    	* Like in the x86oid UNBIND-TO-HERE vop
            * Fixes calling SAVE-LISP-AND-DIE when the call stack contains
              functions compiled with high DEBUG quality
Commits on Jun 9, 2007
  1. @nikodemus optimized bignum printing

    nikodemus authored
     * Cache the power-vectors, the computation of which is the real
       bottleneck of bignum printing. So that we don't keep huge bignums
       forever, make GC gently scrub the cache.
     * The ideal cutoff point between the two algorithms isn't the
       fixnum/bignum divide, but is (on x86/Darwin) around 87 bits -- so
       make the cutoff point N-POSITIVE-FIXNUM-BITS * 3, and hope that
       makes sense on other platforms as well.
     This improves (on x86/Darwin) bignum printing speed in the reasonable
     range by 40%, and by 30% while below 2048 bits. The benefit decreases
     after that, as the GC drops bignums with over 2048 bits from the
     cache -- this doesn't show in a tight benchmarking loop, though.
  2. @nikodemus missed tests from

    nikodemus authored
     ...for ADD/REMOVE-METHOD thread safety, that is.
Commits on Jun 8, 2007
  1. @nikodemus COMPUTE-DISCRIMINATING-FUNCTION micro-optimization

    nikodemus authored
     * Old versio used WITH-SLOTS to read DFUN-STATE twice per call,
       but (let ((dfun-state (slot-value gf 'dfun-state))) ...)
       is faster, as it avoids the second lookup.
  2. @nikodemus thread and interrupt safe ADD/REMOVE-METHOD

    nikodemus authored
     * ADD/REMOVE-METHOD need to grab the GF lock and disable interrupts.
       need a lock as well, but instead of adding per-specializer lock
       just use one global one: contention should be minimal here.
     * INTERN-EQL-SPECIALIZER needs a lock.
     * Fix non-threaded build.
     * Delete dead NAME variables from ADD/REMOVE-METHOD.
     * Tests.
  3. @nikodemus thread safety test for the CLOS cache

    nikodemus authored
     ...better late then never.
  4. @nikodemus ALLOW-WITH-INTERRUPTS and interrupt safe WITH-MUTEX &co

    nikodemus authored
     * Remove the *IN-INTERRUPTION* kludge, and replace it with a
       general-purpose mechanism.
     * New variable: *ALLOW-WITH-INTERRRUPTS*. WITH-INTERRUPTS is a no-op
       unless it is true and interrupts are inhibited.
       local macros.
       held before entry to WITHOUT-INTERRUPTS.
       WITH-LOCAL-INTERRUPTS is equivalent to
         (allow-with-interrups (with-interrupts ...))
       but somewhat more efficient.
     * Use the above to make WITH-MUTEX &co interrupt-safe, but still
       interruptible: WITH-FOO becomes
               (when (setf foo (allow-with-interrupts (get-foo)))
                 (with-local-interrupts ...))
             (when foo
               (release-foo foo))))
       and GET-FOO wraps it's waiting section inside a WITH-INTERRUPTS.
     * While at it, rewrite WITH-MUTEX &co to use CALL-WITH-FOO style
     * Write CALL-WITH-SYSTEM-MUTEX as a more efficient alternative to:
         (without-interrupt (with-mutex ...)) ; and
         (without-gcing (with-mutex ...))
       Similarly for CALL-WITH-RECURSIVE-SYSTEM-SPINLOCK, for the benefit
       of PCL.
     * No need to signal a WARNING for WITH-INTERRUPTS inside a WITHOUT-GCING,
       as *ALLOW-WITH-INTERRUPTS* is always false there, so interrupts will
       not be enabled.
  5. @nikodemus
  6. @nikodemus AVER that the GF lock is held during SET-DFUN

    nikodemus authored
     ...and adjust commentary in UPDATE-DFUN.
  7. @nikodemus small CLOS cache improvements

    nikodemus authored
     * General PCL cleanups:
       -- Get rid of FUNCTION-FUNCALL and FUNCTION-APPLY: instead just
          declare the argument type. ETOOMANYLAYERSOFABSTRACTION.
       -- Implement the unused GET-FUN in terms of GET-FUN1 for clarity.
     * Use a single bitmask instead of multiply and mask to compute the
       cache index (like the original implementation).
     * Slower probe depth limit growth: caches with 1024 lines used to
       have probe depth 16, which is starting to be on the slow side, and
       some fairly common generics like PRINT-OBJECT have caches with
       enough entries that they will be large no matter what. Instead of
       (ceiling (sqrt lines) 2) make it (ceiling (sqrt (sqrt lines))).
     * Better CACHE-HAS-INVALID-ENTRIES-P (does less work, picks up
       incomplete lines.)
     * MAP-ALL-CACHES and CHECK-CACHE-CONSISTENCY for debugging and
     * Typo in the format string in PRINT-OBJECT (CACHE T).
     * A couple of non-CLOS optimization possibilities recorded.
  8. @nikodemus printing of layoutless structures

    nikodemus authored
     * This used be conditionalized for SB-SHOW builds, but they come up often
       enough when in the debugger during PCL build that it seems worthwhile
       to keep in core.
Commits on Jun 6, 2007
  1. use proper types for STRING-DISPATCH

    Nathan Froyd authored
    	* We only want to let one-dimensional character strings through.
    	  This change will probably produce better code, too.
  2. clean up FD-SOUT a little bit

    Nathan Froyd authored
    	* Apparently the bozos have been dealt with; we now receive strings
    	  to all calls to this function;
    	* Declare types appropriately.
  3. improved WITH-ARRAY-DATA on simple multi-dimensional arrays

    Nathan Froyd authored
    	* Instead of looping to find the underlying one-dimensional simple
    	  array, just return it directly.
Commits on Jun 5, 2007
  1. @jsnell fix UNWIND-TO-FRAME-AND-CALL for #+SB-THREAD

    jsnell authored
             * Ensure that *UNWIND-TO-FRAME-FUNCTION* has a TLS index
  2. make FD-SOUT slightly faster

    Nathan Froyd authored
    	* Eliminate spurious call to FIND; POSITION gives us enough info.
Something went wrong with that request. Please try again.