2006-09-24 15:47  jsnell

	* NEWS, install.sh, version.lisp-expr, src/code/octets.lisp:

	0.9.16.46:
	        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.
	
2006-09-20 18:18  jsnell

	* version.lisp-expr, src/code/defstruct.lisp:

	0.9.16.45:
	        Fix building with CMUCL (typo in the name of an IGNOREd variable
	        in !DEFSTRUCT-WITH-ALTERNATE-METACLASS).
	
2006-09-20 18:05  jsnell

	* version.lisp-expr, package-data-list.lisp-expr,
	src/code/condition.lisp, src/code/step.lisp:

	0.9.16.44:
	        Stepper tweaks:
	
	        * Inhibit stepping while calling the stepper hook.
	        * Make the body of STEP steppable
	        * Signal a STEP-FINISHED-CONDITION when STEP returns
	
2006-09-20 15:04  jsnell

	* version.lisp-expr, src/code/debug-int.lisp,
	tests/step.impure.lisp:

	0.9.16.43:
	        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.
	
2006-09-20 14:50  jsnell

	* version.lisp-expr, src/compiler/life.lisp:

	0.9.16.42:
	        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.
	
2006-09-20 12:08  jsnell

	* version.lisp-expr, src/code/toplevel.lisp,
	src/code/win32-os.lisp, src/code/win32.lisp:

	0.9.16.41:
	        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
	
2006-09-19 23:38  jsnell

	* NEWS, version.lisp-expr, src/pcl/boot.lisp, src/pcl/vector.lisp,
	tests/clos.impure.lisp:

	0.9.16.40:
		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
	          on %PARAMETER-BINDING-MODIFIED
	        * As a side effect, SETQ-P becomes a little more accurate
	
2006-09-19 21:35  jsnell

	* version.lisp-expr, src/runtime/breakpoint.c:

	0.9.16.39:
	        Oops, unblock interrupts while handling a single-stepper trap. Fixes
	        GC deadlocks while using the stepper in Slime on a threaded
	        SBCL.
	
2006-09-18 20:09  jsnell

	* NEWS, build-order.lisp-expr, package-data-list.lisp-expr,
	version.lisp-expr, src/code/condition.lisp,
	src/code/debug-info.lisp, src/code/debug-int.lisp,
	src/code/debug-var-io.lisp, src/code/debug.lisp,
	src/code/early-step.lisp, src/code/step.lisp,
	src/code/target-thread.lisp, src/code/toplevel.lisp,
	src/compiler/debug-dump.lisp, src/compiler/ir1-step.lisp,
	src/compiler/ir1tran.lisp, src/compiler/ir2tran.lisp,
	src/compiler/node.lisp, src/compiler/alpha/call.lisp,
	src/compiler/alpha/parms.lisp, src/compiler/generic/objdef.lisp,
	src/compiler/generic/parms.lisp, src/compiler/mips/call.lisp,
	src/compiler/mips/parms.lisp, src/compiler/ppc/call.lisp,
	src/compiler/ppc/parms.lisp, src/compiler/sparc/call.lisp,
	src/compiler/sparc/parms.lisp, src/compiler/x86/call.lisp,
	src/compiler/x86/parms.lisp, src/compiler/x86-64/call.lisp,
	src/compiler/x86-64/insts.lisp, src/compiler/x86-64/parms.lisp,
	src/runtime/breakpoint.c, src/runtime/ppc-arch.c,
	src/runtime/thread.c, src/runtime/x86-64-arch.c,
	src/runtime/x86-arch.c, tests/debug.impure.lisp,
	tests/foreign-stack-alignment.impure.lisp, tests/step.impure.lisp:

	0.9.16.38:
	        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).
	
2006-09-18 14:26  crhodes

	* version.lisp-expr, src/code/inspect.lisp,
	src/compiler/x86-64/call.lisp:

	0.9.16.37:
		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.
	
2006-09-18 11:28  jsnell

	* version.lisp-expr, src/code/win32.lisp:

	0.9.16.36:
	        Oops, fix minor bug introduced in .35: #+sb-unicode -> #!+sb-unicode
	
