Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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

    1.0.6.60: add test file that was forgotten from 1.0.6.59

    nikodemus authored
     * clos-interrupts.impure.lisp
Commits on Jun 20, 2007
  1. @nikodemus

    1.0.6.59: 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

    1.0.6.58: 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

    1.0.6.57: fix sb-bsd-socket build on win32

    jsnell authored
             * Reported by Yaroslav Kavenchuk.
Commits on Jun 19, 2007
  1. @nikodemus

    1.0.6.56: 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

    1.0.6.52: 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

    1.0.6.51: clean up compiler warnings in the runtime

    jsnell authored
            * Patch by Robert Brown.
  6. @jsnell

    1.0.6.50: 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
              general.
            * Fix merging of &key parameters of all the methods.
            * Patch by Tobias Rittweiler.
  7. @jsnell

    1.0.6.49: 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
              grovel.
            * 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

    1.0.6.48: Don't instrument the internal flets from the PROGV expansion

    jsnell authored
            * PROGV would get compiled to BINDING-STACK-POINTER -> X, ...,
              BIND-SENTINEL, UNBIND-TO-HERE X, UNBIND-SENTINEL. So the
              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))
              declarations.
    	* Reported by Nikodemus
Commits on Jun 15, 2007
  1. @nikodemus

    1.0.6.47: 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

    1.0.6.46: 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

    1.0.6.45: fix compilation speed regression from DATA-VECTOR-REF-WITH-…

    jsnell authored
    …OFFSET
    
    	* 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

    1.0.6.44: 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

    1.0.6.42: 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

    1.0.6.41: 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.
    
     * Rename %OUTPUT-FIXNUM-IN-BASE to %OUTPUT-REASONABLE-INTEGER-IN-BASE
       and %OUTPUT-BIGNUM-IN-BASE to %OUTPUT-HUGE-INTEGER-IN-BASE.
    
     * 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

    1.0.6.40: missed tests from 1.0.6.38

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

    1.0.6.39: 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

    1.0.6.38: thread and interrupt safe ADD/REMOVE-METHOD

    nikodemus authored
     * ADD/REMOVE-METHOD need to grab the GF lock and disable interrupts.
    
     * ADD/REMOVE-DIRECT-METHOD, and SPECIALIZER-DIRECT-GENERIC-FUNCTIONS
       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

    1.0.6.37: thread safety test for the CLOS cache

    nikodemus authored
     ...better late then never.
  4. @nikodemus

    1.0.6.36: 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.
    
     * WITHOUT-INTERRUPTS binds *ALLOW-WITH-INTERRUPTS* to NIL, and
       establishes ALLOW-WITH-INTERRUPTS and WITH-LOCAL-INTERRUPTS as
       local macros.
    
       ALLOW-WITH-INTERRUPTS binds *ALLOW-WITH-INTERRUPTS* to the value it
       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
         (without-interrupts
           (unwind-protect
               (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
       expansions.
    
     * 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

    1.0.6.34: AVER that the GF lock is held during SET-DFUN

    nikodemus authored
     ...and adjust commentary in UPDATE-DFUN.
  7. @nikodemus

    1.0.6.33: 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
       analysis.
    
     * Typo in the format string in PRINT-OBJECT (CACHE T).
    
     * A couple of non-CLOS optimization possibilities recorded.
  8. @nikodemus

    1.0.6.32: 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. 1.0.6.31: 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. 1.0.6.30: 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. 1.0.6.29: 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

    1.0.6.28: fix UNWIND-TO-FRAME-AND-CALL for #+SB-THREAD

    jsnell authored
             * Ensure that *UNWIND-TO-FRAME-FUNCTION* has a TLS index
  2. 1.0.6.27: 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.