Skip to content
Commits on Oct 25, 2006
  1. 0.9.18:

    William Harold Newman committed
    	release, will be tagged as sbcl_0_9_18
Commits on Oct 23, 2006
  1. @nikodemus fix windows build, MAKE-ALIEN compiler note muffled fully

    nikodemus committed
     * Win32 build needs MAKE-ALIEN much earlier then other platforms,
       so restore MAKE-ALIEN to its old place in target-alieneval.lisp,
       and muffle the %SAP-ALIEN note from there unconditionally.
Commits on Oct 21, 2006
  1. @bdowning

    bdowning committed
        Problem reported by <>.
Commits on Oct 19, 2006

    Nathan Froyd committed
    	Delete dead checked-cell-ref VOP in x86oid backends.
Commits on Oct 18, 2006
  1. @nikodemus silence %SAP-ALIEN compiler-note for MAKE-ALIEN in default…

    nikodemus committed
    … policy
     * Uses of MAKE-ALIEN are a common source of unavoidable notes about
       unoptimized %SAP-ALIEN, which only serve to mask the ones the user
       can do something about.

    William Harold Newman committed
    	a bit of OAOOification in the way tests/ code
    		invokes SBCL, so that now it consistently ignores
    		.sbclrc again, so tests succeed even when .sbclrc
    		contains (BREAK)
  3. @nikodemus SB-POSIX:CFSET*SPEED, SB-POSIX:CFGET*SPEED, and related co…

    nikodemus committed
      * Patch by Max-Gerd Retzlaff. cfsetspeed left out as non-portable,
        cfgetispeed and cfgetospeed added.
      * Tests -- which have not been properly run, and aren't run as part
        of the SB-POSIX suite, since they require serial port access.
Commits on Oct 9, 2006
  1. @nikodemus restore win32 and x86-darwin buildability

    nikodemus committed
     * trivial assembler directive fixes
  2. @csrhodes

    csrhodes committed
    	Scribble some notes on funcallable instances before I forget.
Commits on Oct 6, 2006
  1. async unwind for specials

    Gabor Melis committed
      * in UNBIND zero the symbol before the value
      * in UNBIND-TO-HERE zero the value even if the symbol is zero
  2. @csrhodes

    csrhodes committed
    	One missing include directive which got through the net.
  3. @csrhodes

    csrhodes committed
    	... in a threaded world, we can't set the function and lexenv
    		of a funcallable instance separately, because some other
    		thread might inconveniently funcall the object 'twixt
    		the one and the other.
    	... instead, make the funcallable-instance-function a
    		fully-fledged slot, and give a funcallable-instance a
    		trampoline which knows how to call it.
    	... which means implementing this strategy for $n$
    		architectures.  Tested on x86, x86-64, ppc, alpha and
    		sparc; completely untested on mips, and unimplemented
    		on hppa.
    	This removes some of the complexity in calling closures (the
    	closure-self slot is now redundant, as is the extra
    	indirection).  Other miscellaneous fixes:
    	* extract-fun-type worked only by accident;
    	* new magic :init :funcallable-instance-tramp for primitive
    	* verify_space() need no longer worry its little brain about
    	  undefined_tramp and closure_tramp (I think)
    	* test case for threaded funcallable-instance interaction.
Commits on Oct 2, 2006
  1. @jsnell

    jsnell committed
            Implementation of STEP-OUT was completely bogus.
            * Only do the *STEP-OUT* binding / handling only around the STEP-INTO
              branch in the step-around wrapper, not around the STEP-NEXT /
              CONTINUE / OUT branch.
            * Detect attempts to STEP-OUT when there is no matching STEP-IN
              also in STEP-FORM, not just in the debugger repl
            * Test
  2. @jsnell

    jsnell committed
            * Fix formatting of sub-items in 0.9.17 NEWS (thanks to Kevin Reid)
            * gc.lisp whitespace canonicalization
  3. @jsnell

    jsnell committed
            The debugger tends to not show all variables regardless of the
            optimization policy. Fix the most common reason for that happening.
            * When compiling with a high debug quality, don't do substitution for
              variables that are only used once.
            * Except for variables introduced in DEFTRANSFORM inline
              lambdas, since they're not going to very interesting for the
  4. @jsnell

    jsnell committed
            The debugger tends to not show all variables regardless of the
            optimization policy. Fix the most common reason for that happening.
            * When compiling with a high debug quality, don't do substitution for
              variables that are only used once.
            * Except for variables introduced in DEFTRANSFORM inline
              lambdas, since they're not going to very interesting for the
  5. @jsnell

    jsnell committed
    	Fix the STORE-VALUE restart for CHECK-TYPE on non-variable places
            (DO considered harmful).
  6. @jsnell

    jsnell committed
    	Fix negation of character-set types (reported by Anton Kazennikov
            on comp.lang.lisp).
Commits on Sep 27, 2006
  1. @nikodemus fix two potential GC deadlocks

    nikodemus committed
     * Dying threads used to grab session and all-threads locks
       with GC inhibited, which was bad:
        1. T1 has the lock, GC not inhibited
           T2 in HANDLE-THREAD-EXIT waiting for the lock, GC inhibited
        2. GC is triggered
        3. T1 stopped while holding the lock
           T2 deadlocks waiting for T1 to release the lock.
     * Mark threads dead while holding the *ALL-THREADS-LOCK*, so that
         (unless (thread-alive-p th)
           (assert (not (member th (list-all-threads)))))
       cannot fail.
     * Since dying threads can now trigger GCs, don't run after-gc hooks
       and finalizers if the thread has been marked as dead.
     * Move all thread cleanup logic to HANDLE-THREAD exit.
Commits on Sep 26, 2006

    Thiemo Seufer committed
    	Improve thread safety.
  2. 0.9.17:

    William Harold Newman committed
    	release, will be tagged as sbcl_0_9_17
Commits on Sep 24, 2006
  1. @jsnell

    jsnell committed
            Fix regressions:
            * Installation was broken with non-bash /bin/sh (thanks to
              Niimi Satoshi for the patch)
            * DEFAULT-EXTERNAL-FORMAT would now try to print a warning for
              an invalid external format before streams had been initialized,
              causing an infinite error loop (reported by Hannu Koivisto).
              Temporary fix is just not printing the warning, a better fix
              will wait until after the freeze.
            * Also stop autodetecting the external format from the locale
              on non-unicode builds. Having a default external format that's
              incompatible with CHARACTER doesn't seem very sensible, especially
              now that the external formats are also used for SB-ALIEN:C-STRING
              instead of just streams.
Commits on Sep 20, 2006
  1. @jsnell

    jsnell committed
            Fix building with CMUCL (typo in the name of an IGNOREd variable
  2. @jsnell

    jsnell committed
            Stepper tweaks:
            * Inhibit stepping while calling the stepper hook.
            * Make the body of STEP steppable
            * Signal a STEP-FINISHED-CONDITION when STEP returns
  3. @jsnell

    jsnell committed
            Switch to using the more accurate method of determining
            *STEP-FRAME* on x86/x86-64 where SIGNAL-CONTEXT-FRAME works.
            Retain the previous kludge on non-x86, where SIGNAL-CONTEXT-FRAME
            seems to be completely broken.
  4. @jsnell

    jsnell committed
            Always update TN-CURRENT-CONFLICT after the innermost loop of
            PROPAGATE-LIVE-TNS has found a match, and not just every time
            it converts a :READ conflict to a :LIVE conflict. This avoids
            useless travelsals over the tnwise global-conflicts chain, speeding
            up compilation when there are lots of global conflicts (for
            example on (DEBUG 3)). Thanks to David Lichteblau.
  5. @jsnell

    jsnell committed
            More win32 fixes.  (Thanks to Yaroslav Kavenchuk: sbcl-devel
            "win32 regression" on 2006-09-18 and "merge-pathnames on
            win32" on 2006-09-19)
            * Double the size of the string buffers given to syscalls on
              sb-unicode, since the data is going to be in UCS-2 instead of
              some single-octet encoding
            * Fix the code for finding the system-wide sbclrc
            * Whitespace
Commits on Sep 19, 2006
  1. @jsnell

    jsnell committed
    	Don't do permutation vector optimization for SLOT-VALUE on method
            parameters that are SETQd [see the test ((:setq :method-parameter)
            slot-value) in clos.impure.lisp].
            * WALK-METHOD-LAMBDA detects parameters whose bindings are modified,
              and returns them as a list
            * MAKE-METHOD-LAMBDA-INTERNAL adds a symbol-macrolet
              %PARAMETER-BINDING-MODIFIED with that list as a value around
              the method body
            * OPTIMIZED-SLOT-VALUE and friends no longer directly return the
              optimized form when the method is being walked, but a macro
              that expands to either the optimized or unoptimized form, based
            * As a side effect, SETQ-P becomes a little more accurate
  2. @jsnell

    jsnell committed
            Oops, unblock interrupts while handling a single-stepper trap. Fixes
            GC deadlocks while using the stepper in Slime on a threaded
Commits on Sep 18, 2006
  1. @jsnell

    jsnell committed
            Rewrite the single-stepper to solve the compilation/run-time
            performance and type-inference inaccuracy problems with the old
            approach. Also make some UI improvements to the stepper.
            * The IR1 stage no longer instruments the code. Instead it
              only detects function call forms which should (according to
              the policy) be steppable, and records a string
              representation of those forms in the matching combination
              nodes (to be stored in the debug-info).
            * Modify the function call vops to emit some instrumentation just
              before the actual call happens. This will check either the
              symbol-value of *STEPPING* (unithreaded) or the new STEPPING
              slot of threads (multithreaded) and trap if it's true. The
              trap handler will replace the closure / fdefn that was about
              to be called with a wrapper, which will signal a stepper
              condition and then call the original function.
            * Emit a similar bit of instrumentation before any call that
              got optimized to a simple VOP. The difference is that the
              only thing that the trap handler will do is to directly
              signal the condition.
            * The necessary VOP / runtime changes have only been done on
              x86, x86-64 and ppc so far. Alpha, Mips and Sparc should
              still compile, but the stepper won't work there.
            * Remove the old single-stepper REPL, and instead integrate the
              stepper into the debugger.
            * Add STEP-OUT functionality (stop stepping temporarily,
              resuming it once the current function returns).
  2. @csrhodes

    csrhodes committed
    	Minor fixups
    	... fix building on x86-64 (delete some extra parens...)
    	... make funcallable-standard-objects (including generic
    		functions) properly inspectable again, after the
    		change of the superclasses' order.
  3. @jsnell

    jsnell committed
            Oops, fix minor bug introduced in .35: #+sb-unicode -> #!+sb-unicode
Commits on Sep 17, 2006
  1. @jsnell

    jsnell committed
            Merge sbcl-devel "some reconstruction of win32 and others", 2006-09-10
            by Yaroslav Kavenchuk.
            * Replace manual external-format conversions in various SB-WIN32
              internals with alien external-formats.
            * Implement MACHINE-INSTANCE and SOFTWARE-VERSION.

    Nathan Froyd committed
    	Improve code generation for LOGTEST on x86.
    	* Use the logic the fixnum test VOPs use for emitting small TEST
    	  instructions in the LOGTEST VOPs as well;
    	* Change {ODD,EVEN}P source transforms to use LOGTEST.

    Nathan Froyd committed
    	Micro-optimize keyword argument parsing on x86 and x86-64.
    	* Change %MORE-ARG to take a negative offset, so we can perform
    	  the negation once outside the parsing loop instead of twice
    	  each time through the loop;
    	* Combine the retrieval of the keyword and its associated value
    	  into a single VOP, so we can take advantage of base+index+disp
Something went wrong with that request. Please try again.