2003-10-24 10:23  dan_b

	* package-data-list.lisp-expr, version.lisp-expr,
	contrib/experimental-thread.patch, src/code/target-signal.lisp,
	src/code/toplevel.lisp, src/runtime/interrupt.c:

	0.8.4.40
		Removed debugging message about unexpectedly enabled signals.
		These days we're older and wiser and expect that stuff to
		happen
	
		contrib/experimental-thread.patch, as the name suggests, is
		a patch that may help thread stability problems, but hasn't
		been sufficiently well tested to get merged into SBCL proper
		this late int he release cycle
	
2003-10-22 16:27  crhodes

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

	0.8.4.39:
		CLISP build "fixes"
		... don't emit structure-sharing code from macros
			(fixes "SB-IMPL::|,| does not name a function" clisp
			error)
		... rewrite bad LOOP as per TFBurdick sbcl-devel 2003-10
	
		I say `"fixes"' because new sbcl code has exposed some
		clisp bugs, so the resulting codebase doesn't build from
		clisp-2.31; however, I have patched my clisp and it works to the
		extent that the resultant sbcl binary only fails one test.
	
2003-10-22 11:30  crhodes

	* make-config.sh, version.lisp-expr, src/cold/ansify.lisp,
	tests/stream.impure.lisp:

	0.8.4.38:
		Solaris fixes (from Nikodemus Siivola sbcl-devel 2003-10-22)
		... sh(1) apparently doesn't like $(foo).  Make it `foo`.
		... allow building from cmucl/sparc, by suppressing underflow
			traps
		... /dev/random doesn't exist.  /dev/zero better had, though
	
2003-10-20 15:29  crhodes

	* BUGS, NEWS, version.lisp-expr, src/code/stream.lisp,
	tests/stream.impure.lisp:

	0.8.4.37:
		Fix bug 46k: READ-BYTE on STRING-INPUT-STREAMs
		... add a test
		... some other BUGS filtrage (BIT-VECTOR is required to be
			disjoint from SIMPLE-VECTOR; other fixed bugs)
	
2003-10-20 13:31  crhodes

	* BUGS, NEWS, make-config.sh, version.lisp-expr,
	src/code/coerce.lisp, src/code/early-type.lisp, src/code/seq.lisp,
	src/code/sort.lisp, tests/seq.impure.lisp:

	0.8.4.36:
		Fix bug 213a
		... CONS-TYPE-LENGTH-INFO to walk CONS-TYPE lists
		... delete the neat but ultimately flawed (CONS NIL T) test
			and use a proper test instead
		... test suite additions.
		Add idea from Michael Hudson (sbcl-devel 2003-08-26) to exit
			early from Darwin compilations when the stack size
			limit is too small.
	
2003-10-19 19:10  crhodes

	* tests/clos.pure.lisp:

	(logically part of 0.8.4.35 commit, but forgot to cvs add)
	
2003-10-19 19:09  crhodes

	* version.lisp-expr, src/pcl/boot.lisp, src/pcl/slots-boot.lisp:

	0.8.4.35:
		One last little PCL frob
		... when declaring defgenerics, don't foolishly assume that all
			extended function names are of the form (SETF ..)
		... now internal PCL generic functions can have lambda lists
		... and that's all of the ones at startup, so let's write an
			internalsish test to ensure that it stays that way
	
2003-10-19 18:08  crhodes

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

	0.8.4.34:
		Make MODULE-PROVIDE-CONTRIB obey the protocol
		... hacky solution as per CSR sbcl-devel 2003-10-18
	
2003-10-19 17:52  antifuchs

	* version.lisp-expr, src/cold/ansify.lisp:

	0.8.4.33:
		Add a check for working CONSTANTLY in OpenMCL (some CVS versions
		throw an error)
	
2003-10-18 17:17  dan_b

	* version.lisp-expr, contrib/sb-introspect/sb-introspect.lisp:

	0.8.4.32
		More for SB-INTROSPECT, shamelessly inspired by Helmut
		Eller's SLIME code for CMUCL.
	
		FIND-FUNCTION-CALLERS, FIND-FUNCTION-CALLEES search in CODE
		objects for FDEFN references and return functions.  Users of
		the former interface are probably advised to cache the
		answers, or to accept that it's presently rather slow.
	
2003-10-18 12:55  crhodes

	* version.lisp-expr, src/pcl/boot.lisp:

	0.8.4.31:
		Minor PCL fixette
		... when defining early generic functions in the bootstrap
			process, clobber the lambda list if the gf has already
			been created (e.g. NO-APPLICABLE-METHOD) by an early
			DEFMETHOD.
	
2003-10-18 10:14  crhodes

	* package-data-list.lisp-expr, version.lisp-expr,
	src/code/load.lisp, src/code/target-load.lisp, src/pcl/braid.lisp,
	src/pcl/slots-boot.lisp, src/pcl/std-class.lisp,
	tests/clos.impure.lisp:

	0.8.4.30:
		Be more careful over automatically generated generic function
		lambda lists
		... when generating PCL-internal GFs, pass :LAMBDA-LIST to
			ENSURE-GENERIC-FUNCTION
		... when generating accessor GFs, pass :LAMBDA-LIST if the
			function is not already created (where you want to
			preserve the user's lambda list instead)
		... tests for required behaviour
		Adjust INVALID-FASL patch slightly
		... comment in package-data-list.lisp-expr
		... remove unneccessary sb!ext:: prefixes
	
2003-10-17 16:16  antifuchs

	* NEWS, version.lisp-expr, src/code/loop.lisp,
	tests/loop.pure.lisp:

	0.8.4.29:
		LOOP fixups - whee, I love digging around in code from 1986
	
		* make SB-LOOP::LOOP-SEQUENCER no longer choke on NIL
		  as a name for for-as-arithmetic counters
		* also make it throw a PROGRAM-ERROR when it encounters
		  a list as a counter variable.
	
2003-10-17 15:44  antifuchs

	* NEWS, package-data-list.lisp-expr, version.lisp-expr,
	src/code/load.lisp, src/code/target-load.lisp:

	0.8.4.28:
		ASDF users, rejoice!
		* Add a condition SB-EXT:INVALID-FASL (subtype ERROR)
		* Make SB-FASL::CHECK-FASL-HEADER raise conditions that are subtype
		  SB-EXT:INVALID-FASL on the appropriate errors (or the other way
		  around, I forget)
		* Make SB-FASL::INTERNAL-LOAD also raise a condition if the FASL
		  header is broken.
	
2003-10-17 14:27  crhodes

	* version.lisp-expr, contrib/README, contrib/STANDARDS,
	contrib/asdf/asdf.lisp, contrib/asdf-install/Makefile,
	contrib/sb-executable/sb-executable.lisp,
	contrib/sb-introspect/sb-introspect.lisp, src/code/module.lisp:

	0.8.4.27:
		OK, here's the deal.
		... *MODULE-PROVIDER-FUNCTIONS* no longer call PROVIDE.  It's
			now the job of user code to do that (as it probably
			should always have been.
		... OK, so as a result, our one-file contribs now need to
			PROVIDE themselves.  Make it so.
		... fix asdf-install/asdf autorequiration; an installed sbcl
			can now require asdf-install (as well as all the other
			asdfized contribs) as the first command in a clean core
		... update contrib/{README,STANDARDS} to match what we currently
			do.
	
2003-10-16 12:14  dan_b

	* version.lisp-expr, contrib/sb-introspect/sb-introspect.lisp,
	src/compiler/debug-dump.lisp:

	0.8.4.26
		Innie?  Outie?
	
		Take the first debug-fun from the fun-map vector in debug-info
		instead of looking for one with a matching name, which may not
		exist.  We only want it for the top-level form number anyway
	
		compiler/debug-dump.lisp; write the tlf number at all debug
		quality levels.  0 would take up just as much space as n does
		anyway
	
2003-10-16 12:03  dan_b

	* version.lisp-expr, contrib/README, contrib/STANDARDS:

	0.8.4.25
		Update text files in contrib/ directory
	
2003-10-16 09:34  crhodes

	* version.lisp-expr, contrib/asdf-module.mk:

	0.8.4.24:
		Since it's rapidly becoming an FAQ
		... additional magic in asdf-module.mk to make synthetic fasls
			allowing REQUIRE on an asdf module to work without
			a loaded ASDF.
		... does not work for the ASDF-INSTALL contrib, because REQUIRE
			goes for the file named "asdf-install" rather than
			"asdf-install.fasl" in preference.  Probably want to fix
			REQUIRE for that, but that's pending the other REQUIRE
			issues
	
2003-10-15 16:28  crhodes

	* BUGS, NEWS, version.lisp-expr, src/pcl/boot.lisp,
	src/pcl/combin.lisp, src/pcl/dfun.lisp, src/pcl/fngen.lisp,
	src/pcl/methods.lisp, tests/clos.impure.lisp:

	0.8.4.23:
		Fix for bug 191c (and some of PFD's tests)
		... do proper keyword argument checking in the effective method
		... not the cleanest fix in the world (note especially
			the use of PROGN as an optimization inhibitor)
		... I'm not telling you how long it took me to find the
			NCONC -> APPEND bug in fngen.lisp
	
2003-10-14 07:31  adejneka

	* NEWS, package-data-list.lisp-expr, version.lisp-expr,
	src/pcl/slots-boot.lisp, src/pcl/slots.lisp,
	tests/clos.impure.lisp:

	0.8.4.22:
	        * Fix problem reported by salex on #lisp: SLOT-VALUE was not
	          known to return exactly one value.
	
2003-10-13 11:57  crhodes

	* NEWS, version.lisp-expr, src/code/fd-stream.lisp,
	src/code/filesys.lisp, tests/stream.impure.lisp:

	0.8.4.21:
		A couple of filesystem-related fixes from Milan Zamazal
		... :IF-EXISTS OPEN behaviour corrected
		... don't error if a file is deleted from under us in DIRECTORY
	
2003-10-11 16:44  dan_b

	* version.lisp-expr:

	0.8.4.20
		Is that lint?
	
		DEFINITION-SOURCE now has both FORM-PATH (a la CMUCL source
		path, renamed because "source-path" is just too similar to
		"source-pathname") and CHARACTER-OFFSET accessors.
	
		DEFINITION-SOURCE now works to some extent on struct accessors
		and predicates.  (It gets the pathname right, but I can't find
		anywhere to get a within-file offset)
	
		Commentary and stuff.
	
2003-10-11 16:22  dan_b

	* contrib/sb-introspect/sb-introspect.lisp:

	0.8.4.20
		Is that lint?
	
		DEFINITION-SOURCE now has both FORM-PATH (a la CMUCL source
		path, renamed because "source-path" is just too similar to
		"source-pathname") and CHARACTER-OFFSET accessors.
	
		DEFINITION-SOURCE now works to some extent on struct accessors
		and predicates.  (It gets the pathname right, but I can't find
		anywhere to get a within-file offset)
	
		Commentary and stuff.
	
2003-10-10 17:25  wnewman

	* clean.sh, version.lisp-expr, doc/clean.sh:

	0.8.4.19:
		Clean more cleanly:
		...Delete more doc/html/ stuff.
		...also contrib/sb-bsd-sockets/alien.so
	
2003-10-10 09:14  crhodes

	* version.lisp-expr, src/pcl/braid.lisp, tests/interface.pure.lisp:

	0.8.4.18:
		Fix DOCUMENTATION bug reported by dan_b on #lisp
		... set documentation slot of braid classes to NIL
	
2003-10-10 07:33  adejneka

	* version.lisp-expr, src/code/debug-int.lisp,
	src/code/defmacro.lisp, src/code/describe.lisp,
	src/code/macros.lisp, src/code/target-misc.lisp,
	src/compiler/generic/early-objdef.lisp,
	src/compiler/generic/early-type-vops.lisp, src/runtime/backtrace.c,
	src/runtime/gc-common.c, src/runtime/print.c, src/runtime/purify.c,
	tests/debug.impure.lisp:

	0.8.4.17:
	        * Remove CLOSURE-FUN-HEADER-WIDETAG; preserve its number for
	          some time in order to keep FASL compatibility.
	
2003-10-10 04:05  dan_b

	* version.lisp-expr, contrib/sb-introspect/sb-introspect.lisp,
	contrib/sb-introspect/test-driver.lisp,
	contrib/sb-introspect/test.lisp:

	0.8.4.16
		More navel-gazing ...
	
		FIND-DEFINITION-SOURCE takes a thing and returns the source
		pathname and location at which it was defined.  Currently
		works for only a small number of things (simple functions
		and methods of gfs) and returns the location as the number
		of source forms from the start of the file.  Suspect that
		a character offset would be a better bet.
	
		Poor pretence for a test case added as well.  So far no
		framework to automate same.
	
2003-10-09 19:55  adejneka

	* build-order.lisp-expr, version.lisp-expr,
	src/code/cross-misc.lisp, src/code/numbers.lisp,
	src/compiler/srctran.lisp, src/compiler/alpha/arith.lisp,
	src/compiler/generic/vm-macs.lisp,
	src/compiler/generic/vm-tran.lisp, src/compiler/hppa/arith.lisp,
	src/compiler/mips/arith.lisp, src/compiler/ppc/arith.lisp,
	src/compiler/sparc/arith.lisp, src/compiler/x86/arith.lisp,
	tests/arith.pure.lisp:

	0.8.4.15:
	        * Change modularization of ASH
	          ... add per-function cutter;
	          ... s/ash-left-constant-modxx/ash-left-modxx/;
	          ... put DEFKNOWN and modular function optimizer for
	              ASH-LEFT-MODxx to src/compiler/generic/sm-tran.lisp;
	          ... compile src/compiler/generic/vm-tran.lisp before
	              src/compiler/target/arith.lisp (in fact, immediately
	              after src/compiler/srctran.lisp);
	        * strength reducer for * wraps LOGAND around the whole form.
	
2003-10-09 15:47  crhodes

	* NEWS, version.lisp-expr, src/code/early-type.lisp,
	tests/arith.pure.lisp, tests/type.impure.lisp:

	0.8.4.14:
		Fix suboptimality reported by piso on #lisp
		... catch bogus types like (fixnum 10) before they get too far
			in the type system
		... doesn't work for logically-built-in-but-made-by-PCL types
			(yet)
		Comment out newly-broken assertion that constant multiplies
			don't produce compiler-notes
		... if that's all that broke, count your lucky stars :-)
	
2003-10-09 13:50  dan_b

	* version.lisp-expr, contrib/sb-introspect/Makefile,
	contrib/sb-introspect/sb-introspect.lisp:

	0.8.4.13
		 Added sb-introspect contrib to SBCL.  Mostly for
		 experimentation at this stage: do not use this stuff in
		 client code unless you are willing to revisit it later, and
		 please do say if it does things differently than you wanted.
	
2003-10-09 11:05  crhodes

	* version.lisp-expr, src/code/cross-misc.lisp,
	src/code/numbers.lisp, src/compiler/srctran.lisp,
	src/compiler/alpha/arith.lisp, src/compiler/generic/vm-tran.lisp,
	src/compiler/hppa/arith.lisp, src/compiler/mips/arith.lisp,
	src/compiler/ppc/arith.lisp, src/compiler/sparc/arith.lisp,
	src/compiler/x86/arith.lisp, tests/compiler.pure.lisp:

	0.8.4.12:
	        I'm not proud of this.
	
	        HEALTH WARNING: this may not work.  It does for me, on Linux/PPC.
			If your sourceforge-fu is strong, please try it.
	        HEALTH WARNING: this is ugly as sin.  Unexported symbols, special
	                assumptions, KLUDGEs thrown in with gay abandon.
	
	        In partial mitigation, it does fix a bug :-)
	
	        Fix for lying-to-the-compiler bug in
	                UB32-STRENGTH-REDUCE-CONSTANT-MULTIPLY
	        ... turn TRULY-THEs into suitable LOGANDs
	                (inefficient in compile-time space; we only need one
	                LOGAND wrapping the resulting form)
	        ... likewise in x86 OPTIMIZE-MULTIPLY
	                (even less efficient: constant mask is first :-)
	        but that would be slow at runtime if we just left it there, so
	        ... add - as a modular function (that was easy)
	        ... add preliminary support for ASH as a modular function
	                (for constant right shifts):
	        ... delete ASH-RIGHT-[UN]SIGNED from the sparc backend
	                (will be restored eventually, fear not, probably more
			cross-platformly)
	        ... hack in special knowledge about ASH into CUT-TO-WIDTH
	        ... ensure that all backends have a suitable VOP for translation
	                of new ASH function
	        ... (alpha version is 64bit, oh yes)
	        ... don't forget out-of-line version (for xc also!)
	                (aside: might we not need out-of-line versions of
	                other modular functions in the xc?)
	
2003-10-09 06:41  adejneka

	* BUGS, version.lisp-expr, src/code/filesys.lisp,
	src/compiler/ir1util.lisp, src/compiler/locall.lisp,
	tests/compiler.pure-cload.lisp, tests/compiler.pure.lisp:

	0.8.4.11:
	        * Fix bug found by WHN and Paul Dietz: do not replace optional
	          dispatch with an entry point in a block to be deleted.
	
2003-10-07 21:41  dan_b

	* install.sh, version.lisp-expr, contrib/asdf-module.mk,
	contrib/vanilla-module.mk, contrib/asdf-install/defpackage.lisp,
	contrib/asdf-install/installer.lisp, doc/sbcl.1,
	src/code/debug.lisp, src/code/toplevel.lisp, src/runtime/runtime.c,
	src/runtime/thread.c:

	0.8.4.10
		"brown paper bag" bug fix: initialise the thread->state slot
		when it's created, to fix the most obvious threading problem
	
		Search order for sbcl.core and sbclrc simplified.
	
		Manual page edits: updates for contrib/, threading, platforms,
		new sbcl.core search order, etc
	
		Make "debugger invoked" message print thread id
		asdf-install contrib: new UNINSTALL function deletes a
		package's files.
	
		New installation variable $(BUILD_ROOT) for use by package
		installers that want to install into a fake root directory
	
2003-10-07 10:23  crhodes

	* NEWS, version.lisp-expr, src/code/late-type.lisp,
	tests/type.impure.lisp:

	0.8.4.9:
		Fix bug in CONS types/SUBTYPEP
		... actually a bug in the CONS :SIMPLE-INTERSECTION2 type
			method, which wasn't doing enough work when one of the
			types produced a useful intersection and the other
			not.
	
2003-10-06 16:48  dan_b

	* version.lisp-expr, src/code/target-signal.lisp,
	src/code/toplevel.lisp, src/compiler/generic/objdef.lisp,
	src/runtime/interrupt.c, src/runtime/runtime.c,
	src/runtime/thread.c, src/runtime/thread.h:

	0.8.4.8
		More thread fixes: now passes the cl-ppcre thread test
	
		... all_threads_lock needed to be declared volatile
	
		... new 'state' field in struct thread, to avoid race where
		the head of the all_threads list is reaped during stop_for_gc
	
		Removed "waitpid : child %d %x exited \n" message (rather,
		conditionalised it on show_thread_exit, which is default 0
	
		Remove unexplained (setsigmask 0) call in the repl, replaced
		with a call to warn_when_signals_masked so we can find out
		what it was for anyway.
	
		Default repl calls (get-foreground) - this is a unithread nop
	
2003-10-03 17:39  crhodes

	* BUGS, NEWS, version.lisp-expr, src/code/pp-backq.lisp,
	src/runtime/thread.c, tests/pprint.impure.lisp:

	0.8.4.7:
		(Not Linux) build fix
		... move reference to SIG_DEQUEUE into #ifdef LISP_FEATURE_SB_THREAD
		Fix bug in backquote pretty-printer
		... now takes care to disambiguate ,.foo and , .foo
	
2003-10-03 12:19  crhodes

	* version.lisp-expr, contrib/sb-simple-streams/file.lisp,
	src/code/unix.lisp, src/runtime/alpha-linux-os.c,
	src/runtime/wrap.c:

	0.8.4.5:
		Make simple-streams work on alpha
		... really ensure the various ffi_foo_t types for wrapped_stat
			are 32-bit everywhere
		... update the lisp version of the struct definition to believe
			this, too (UNSIGNED-INT, not UNSIGNED-LONG)
		... also bugfix: MOST-POSITIVE-FIXNUM is an upper exclusive bound
		... stray arch_os_get_current_thread() fix
	
2003-10-03 10:59  crhodes

	* make-config.sh, version.lisp-expr, src/runtime/.cvsignore,
	src/runtime/alpha-osf1-os.c, src/runtime/bsd-os.c,
	src/runtime/hppa-linux-os.c, src/runtime/mips-linux-os.c,
	src/runtime/ppc-linux-os.c, src/runtime/sparc-linux-os.c,
	src/runtime/sparc-sunos-os.c, tools-for-build/.cvsignore,
	tools-for-build/Makefile, tools-for-build/where-is-mcontext.c:

	0.8.4.5:
		PPC build fix (kludge)
		... use offsetof() to find where the glibc maintainers have put
			the uc_mcontext slot today, and delegate to appropriate
			source code
		non-x86/linux build fix
		... undefine arch_os_get_current_thread() from individual
			architecture header files
		Everywhere clean.sh fix
		... only include src/runtime/Config in tools-for-build/Makefile
			if it exists.  Now clean.sh works on a clean tree.
	
2003-10-03 10:20  crhodes

	* NEWS, version.lisp-expr, src/code/bignum.lisp,
	src/compiler/srctran.lisp, tests/arith.pure.lisp:

	0.8.4.4:
		Fix bignum/bignum ASH bug (PFD sbcl-devel 2003-09-22)
		... one-liner fix, yum yum
		Add SIGNUM derive-type optimizer
		... not strictly necessary any more as we now ignore errors when
			deriving types, but since I wrote it, why not?
	
2003-10-03 03:23  dan_b

	* version.lisp-expr, src/runtime/thread.h,
	src/runtime/x86-linux-os.c:

	0.8.4.3
		Inline arch_os_get_current_thread.  This means putting it in
		thread.h, which may be considered a little silly.  When >1
		arch/os combination supports threading, maybe we need a
		late-target-arch-os.h file or similar.  In the meantime I'm
		not going to turn the build upside down right now.
	
2003-10-03 02:51  adejneka

	* BUGS, NEWS, version.lisp-expr, src/compiler/checkgen.lisp,
	src/compiler/debug.lisp, src/compiler/ir1final.lisp,
	src/compiler/ir1util.lisp, src/compiler/ltn.lisp,
	src/compiler/macros.lisp, src/compiler/node.lisp,
	src/compiler/srctran.lisp, tests/arith.pure.lisp,
	tests/compiler.impure-cload.lisp, tests/compiler.pure-cload.lisp,
	tests/compiler.pure.lisp:

	0.8.4.2:
	        * Changes in type checking:
	        ... test for NIL has zero cost;
	        ... add NULL to types of optional arguments (fix bug 261);
	        ... change implementation of "external type check":
	            ... new kind of CAST-TYPE-CHECK;
	            ... detect blocks of externally checkable CASTs by
	                backward walking of a component;
	            ... merge unsafe CASTs in IR1-FINALIZE ( bug 282);
	            ... consider known call of a function without applicable
	                :FAST-SAFE templates to be full;
	        * print CTRAN numbers in component dumps;
	        * fix bug 214, also reported by rydis on #lisp: in
	          NOTE-REJECTED-TEMPLATES ignore :FAST-SAFE templates for
	          :SAFE policy;
	        * DO-NODE-BACKWARDS: stop when faced with a CTRAN with no use
	          (bug reported by Paul Dietz);
	        * TWO-ARG-DERIVE-TYPE: when deriving type for constant
	          arguments, if the function signals an error return type NIL
	          (bug reported by Paul Dietz);
	        * fix TRUNCATE optimizer for (+ -) arguments (bugs 293, 294
	          reported by Paul Dietz);
	        * tests/compiler.impure-cload.lisp: switch to CL-USER package
	          before deleting temporal one.
	
2003-10-02 23:13  dan_b

	* version.lisp-expr, doc/beyond-ansi.sgml, src/code/gc.lisp,
	src/code/target-thread.lisp, src/runtime/alloc.c,
	src/runtime/breakpoint.c, src/runtime/cheneygc.c,
	src/runtime/gencgc.c, src/runtime/interrupt.c,
	src/runtime/linux-os.c, src/runtime/linux-os.h,
	src/runtime/runtime.c, src/runtime/thread.c,
	tests/threads.impure.lisp, tools-for-build/grovel_headers.c:

	0.8.4.1
		Merge most of atropos-branch: miscellaneous (mostly threading)
		fixes that were probably a little too risky for late in 0.8.4
		development.
	
	        doc/ - fix up some of the sgml errors that sourceforge keeps
	        mailing me about
	
	        New function release-spinlock that only changes the lock value
	        if we owned the spinlock, so good for unwind-protect cleanups
	        when lock acquisition failed
	
	        get-spinlock release-spinlock current-thread-id could all win
	        from being inlinable
	
	        Use a RT signal (SIG_DEQUEUE) for resuming threads that were
	        on queues, instead of having SIGCONT do both this and the
	        resume-after-gc task.
	
	        Scattered commentary describing the state of the signal mask
	        in various interesting places
	
	        In gencgc alloc, only install a deferred handler for GC if
	        there was no previous handler for anything else.  This fixes
	        a longstanding bug where the GC thread would eat all cpu while
	        waiting indefinitely for othr threads to stop.
	
	        Add SIG_STOP_FOR_GC to the blockable list
	
	        interrupt_maybe_gc_int: enable signals before calling SUB-GC,
	        or the locking that sub-gc does is going to interact badly.
	
	        Minor rearrangement to parent thread to stop it having to wake
	        up on every GC
	
	        Add grovel_headers line for SIG-DEQUEUE.  OAOOM alert...
	
2003-10-02 19:04  wnewman

	* CREDITS, NEWS, version.lisp-expr, src/code/early-fasl.lisp:

	0.8.4:
		release, tagged as sbcl_0_8_4
	
2003-10-02 17:54  crhodes

	* build-order.lisp-expr, package-data-list.lisp-expr,
	version.lisp-expr, src/assembly/alpha/arith.lisp,
	src/assembly/alpha/assem-rtns.lisp, src/code/bit-bash.lisp,
	src/code/class.lisp, src/code/cold-init.lisp,
	src/code/defstruct.lisp, src/code/numbers.lisp,
	src/code/package.lisp, src/code/pprint.lisp, src/code/room.lisp,
	src/code/target-hash-table.lisp, src/code/target-sxhash.lisp,
	src/code/toplevel.lisp, src/code/unix.lisp,
	src/compiler/early-assem.lisp, src/compiler/globaldb.lisp,
	src/compiler/alpha/alloc.lisp, src/compiler/alpha/arith.lisp,
	src/compiler/alpha/array.lisp, src/compiler/alpha/call.lisp,
	src/compiler/alpha/char.lisp, src/compiler/alpha/debug.lisp,
	src/compiler/alpha/float.lisp, src/compiler/alpha/insts.lisp,
	src/compiler/alpha/macros.lisp, src/compiler/alpha/move.lisp,
	src/compiler/alpha/parms.lisp, src/compiler/alpha/static-fn.lisp,
	src/compiler/alpha/system.lisp, src/compiler/alpha/type-vops.lisp,
	src/compiler/alpha/values.lisp, src/compiler/alpha/vm.lisp,
	src/compiler/generic/early-objdef.lisp,
	src/compiler/generic/early-vm.lisp,
	src/compiler/generic/genesis.lisp,
	src/compiler/generic/late-type-vops.lisp,
	src/compiler/generic/objdef.lisp,
	src/compiler/generic/primtype.lisp,
	src/compiler/generic/utils.lisp,
	src/compiler/generic/vm-array.lisp,
	src/compiler/generic/vm-fndb.lisp,
	src/compiler/generic/vm-tran.lisp,
	src/compiler/generic/vm-type.lisp,
	src/compiler/generic/vm-typetran.lisp, src/runtime/alpha-assem.S,
	src/runtime/backtrace.c, src/runtime/cheneygc.c,
	src/runtime/core.h, src/runtime/coreparse.c,
	src/runtime/gc-common.c, src/runtime/monitor.c,
	src/runtime/parse.c, src/runtime/print.c, src/runtime/purify.c,
	src/runtime/runtime.h, src/runtime/thread.h:

	0.8.3.95.alpha64_2.1:
		YUM YUM! THAT WAS TASTY!
	
		IT RUNS!  (sort of)
	
		* forward-port alpha64_branch;
		* a couple more stray backend 4 -> 8; stl -> stq substitutions;
		* implement new specialized arrays (e.g. (unsigned-byte 63), yuk);
	
		(by this point, we're running about 1/3 of the toplevel forms
		in cold-init)
	
		* implement 64bit-logical-foo functions for use in bit-bashers
		(mostly because SYMBOLICATE needs the concatenate deftransform,
		which needs BIT-BASH-COPY);
	
		(by this point, we run all the toplevel forms, and die a death in
		!PPRINT-COLD-INIT; comment that and the call to GC out -- see
		below -- and we get to a REPL, so...)
	
		* (* 2 3) -> 6 [good]; most-positive-fixnum -> 11520460976 [bad]
	
		(work out that it's a printing issue...)
	
		* fix COPY-TO-SYSTEM-AREA and NORMALIZE-SAP for 64bitness
	
		(now basic printing works)
	
		TODO
		* GC
		* bignums (type tests for ub64, needed by the compiler
		  probably depend on them)
		* etc
	
2003-09-30 15:49  dan_b

	* version.lisp-expr, src/code/gc.lisp, tests/threads.impure.lisp:

	0.8.3.95.atropos.2
		Rewrote the strange locking stuff in SUB-GC so that I can
		understand it again: as a side effect, my newest thread/gc
		torture test works again
	
		OTOH, the final test in threads.impure.lisp was once observed
		to break with this code, but who's to know if that's new?
	
2003-09-30 11:23  dan_b

	* version.lisp-expr, doc/beyond-ansi.sgml,
	src/code/target-thread.lisp, src/runtime/alloc.c,
	src/runtime/breakpoint.c, src/runtime/cheneygc.c,
	src/runtime/gencgc.c, src/runtime/interrupt.c,
	src/runtime/linux-os.c, src/runtime/linux-os.h,
	src/runtime/runtime.c, src/runtime/thread.c, src/runtime/thread.h,
	src/runtime/x86-linux-os.c, src/runtime/x86-linux-os.h,
	tools-for-build/grovel_headers.c:

	0.8.3.95.atropos.1 ; cutting threads
	
		There is getting to be rather a lot of sensible but
		not-now-while-we're-releasing code in my thread/gc fix.
		So here it is on a branch, hopefully minus the slightly
		more evil debugging crud
	
		doc/ - fix up some of the sgml errors that sourceforge keeps
		mailing me about
	
		New function release-spinlock that only changes the lock value
		if we owned the spinlock, so good for unwind-protect cleanups
		when lock acquisition failed
	
		get-spinlock release-spinlock current-thread-id could all win
		from being inlinable
	
		Use a RT signal (SIG_DEQUEUE) for resuming threads that were
		on queues, instead of having SIGCONT do both this and the
		resume-after-gc task.
	
		Scattered commentary describing the state of the signal mask
		in various interesting places
	
		In gencgc alloc, only install a deferred handler for GC if
		there was no previous handler for anything else.  This fixes
		a longstanding bug where the GC thread would eat all cpu while
		waiting indefinitely for othr threads to stop.
	
		Add SIG_STOP_FOR_GC to the blockable list
	
		interrupt_maybe_gc_int: enable signals before calling SUB-GC,
		or the locking that sub-gc does is going to interact badly.
	
		Minor rearrangement to parent thread to stop it having to wake
		up on every GC
	
		Inline arch_os_get_current_thread (note, thread.h is not a
		sensible place for an x86linuxonly operation, rearrange this
		before committing to HEAD)
	
		Add grovel_headers lines for our RT signals.  OAOOM alert...
		(Actually, of these three we only need SIG-DEQUEUE)
	
2003-09-29 15:35  dan_b

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

	0.8.3.95
		Minimal fix to compile on Linux 2.6 and recent FreeBSD:
		disable running of pre-gc hooks
		move running of post-gc hooks later, so it is done after
		 other threads start running aagin, outside the GC lock
	
2003-09-26 17:19  crhodes

	* OPTIMIZATIONS, version.lisp-expr, src/assembly/alpha/arith.lisp,
	src/compiler/alpha/arith.lisp, src/compiler/alpha/insts.lisp,
	tests/arith.pure.lisp, tests/compiler.pure.lisp:

	0.8.3.94:
		Compiler fixes (touching only files in the alpha backend)
		... the assembly routine for (signed-byte 32) [sic] truncate did
			in fact work only for signed-byte 32 quantities, but was
			being called on signed-byte 64 quantities.  Fix it.
		... the translators for ASH were broken in amusing ways: some
			led to internal compiler errors when fed out-of-range
			numbers; more insidiously, others allowed temporaries
			to be overwritten in some cases.  Fix them.
		... lastly but not leastly, the %LI code to load an immediate
			was wrong in a very small proportion of cases.  After
			much scribbling, deduce why and fix it.
		... test cases to go with all of the above.
	
2003-09-26 11:07  crhodes

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

	0.8alpha.0.28.alpha64.8:
		YUM YUM.  FOOD FOR THOUGHT.
	
		No, this doesn't fix the problems.  What don't you want to see
		when you think about merging upstream changes?  That's right,
		un-checked-in deltas.
	
		In this case I suspect that I had a reason for trying these
		changes even if they turned out not to fix the problem, so
	
		... turn off raw structure slots
		... make only small fixnums in pointer-hash.
	
