2003-01-24 20:36  dan_b

	* version.lisp-expr, src/code/unix.lisp, src/runtime/ldso-stubs.S,
	src/runtime/purify.c, src/runtime/runtime.c:

	0.7.11.10.thread.6
		TTY handling.  An awful lot of effort for the exciting reward
		of being able to press ^C without the GC thread getting killed
	
		Add some useful syscalls for manipulating terminal stuff for
		braver people than I who want to open new terminals and have
		signal handling _continue_ to work properly in them
	
		Comment in purify.c noting that it's broken if >1 thread exists
	
2003-01-23 00:25  dan_b

	* build-order.lisp-expr, version.lisp-expr, src/code/load.lisp,
	src/code/serve-event.lisp, src/code/target-thread.lisp,
	src/code/thread.lisp, src/runtime/runtime.c,
	src/runtime/x86-linux-os.c:

	0.7.11.10.thread.5
		Commit build-order.lisp-expr change missed last time
	
		Fasloader now surrounded by *big-compiler-lock* (it would
		be nice to use a second lock, but as compiler and fasloader
		are mutually recursive, probably asking for trouble)
	
		serve-event changes: *descriptor-handlers* now has
		thread-local binding - after all, so do the fds
	
		More fiddling with locks: whatever descriptor-sap does, "give
		the desired answer" is not it.  So, use explicit shifts instead
	
		x86 linux version of arch_os_get_current_thread that
		references %gs, so avoiding use of a syscall.
	
2003-01-22 12:49  dan_b

	* src/code/thread.lisp:

	file thread.lisp was initially added on branch dan_native_threads_2_branch.
	
2003-01-22 12:49  dan_b

	* TODO.dan, package-data-list.lisp-expr, version.lisp-expr,
	src/code/debug-int.lisp, src/code/fd-stream.lisp,
	src/code/target-thread.lisp, src/code/thread.lisp,
	src/compiler/main.lisp:

	0.7.11.10.thread.4
		MAKE-LISTENER-THREAD needs package prefix for
		HANDLING-END-OF-THE-WORLD : now (quit) works properly - or
		better, at least
	
		Add in the first Big Lock: *BIG-COMPILER-LOCK* serialises all
		access to the compiler.  While we're at it, fix the locking
		functions to work as expected.  NB Second hunk of
		compiler/main diff is mostly whitespace change: only addition
		is the actual with-recursive-lock form
	
		New file thread.lisp contains dummy WITH-RECURSIVE-LOCK impl
		for use in the cross-compiler.
	
2003-01-22 08:45  adejneka

	* BUGS, version.lisp-expr:

	0.7.11.14:
	        One more bug.
	
2003-01-22 07:37  adejneka

	* BUGS, OPTIMIZATIONS, version.lisp-expr:

	0.7.11.13:
	        Bugs.
	
2003-01-21 10:43  dan_b

	* version.lisp-expr:

	0.7.11.10.thread.3
		IRC discussions with CSR highlighted that I'm dumber than I
		like to pretend I am.  Another scheme for
		stop-the-world-for-GC  - it seems to work, but then, so
		did the previous one
	
2003-01-21 06:19  adejneka

	* BUGS, version.lisp-expr:

	0.7.11.12:
	        Register bugs in structure slot type checking (CSR and WHN,
	        2003-01-19).
	
2003-01-20 12:58  dan_b

	* package-data-list.lisp-expr, src/code/debug-int.lisp,
	src/runtime/interrupt.c, src/runtime/runtime.c:

	0.7.11.10.thread.3
		IRC discussions with CSR highlighted that I'm dumber than I
		like to pretend I am.  Another scheme for
		stop-the-world-for-GC  - it seems to work, but then, so
		did the previous one
	
2003-01-20 11:35  dan_b

	* version.lisp-expr, src/code/debug-int.lisp, src/code/gc.lisp,
	src/code/target-thread.lisp, src/runtime/globals.c,
	src/runtime/globals.h, src/runtime/interrupt.c,
	src/runtime/runtime.c, src/runtime/thread.c:

	0.7.11.10.thread.2
		Rewrite bits of toplevel.c so that now it can stop all threads
		for GC in what I believe is a race-free way.  Tested with six
		threads attempting simultaneous (gc :full t) - scheduling
		uneven, but nothing died
	
		New functions in SB-THREAD: DESTROY-THREAD, SUSPEND-THREAD,
		RESUME-THREAD
	
		OTHER-THREAD-COLLECT-GARBAGE actually works, ditto
		CURRENT-THREAD-ID
	
		Whitespace etc cleanup in debug-int.lisp
	
2003-01-20 08:15  adejneka

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

	OOps.
	
2003-01-20 08:06  adejneka

	* package-data-list.lisp-expr, version.lisp-expr,
	src/code/describe-policy.lisp, src/cold/warm.lisp,
	src/compiler/checkgen.lisp, src/compiler/fndb.lisp,
	src/compiler/ir1opt.lisp, src/compiler/ir1util.lisp,
	src/compiler/locall.lisp, src/compiler/policy.lisp,
	src/compiler/proclaim.lisp, tests/compiler.impure.lisp:

	0.7.11.11:
	        * Add dependent optimization qualities: LET-CONVERTION,
	          TYPE-CHECK, VERIFY-ARG-COUNT;
	        * add SB-EXT:DESCRIBE-COMPILER-POLICY;
	
2003-01-19 21:32  dan_b

	* src/: compiler/x86/parms.lisp, compiler/x86/system.lisp,
	runtime/interrupt.c, runtime/runtime.c, runtime/runtime.h:

	bits lost in the merge.  remove some of the debug output
	
2003-01-19 21:26  dan_b

	* TODO:

	oops
	
2003-01-19 20:26  dan_b

	* src/runtime/primitive-objects.h:

	file primitive-objects.h was initially added on branch dan_native_threads_2_branch.
	
2003-01-19 20:26  dan_b

	* src/runtime/primitive-objects.h:

	new on this branch (from dan_native_threads_branch)
	
2003-01-19 19:46  dan_b

	* TODO, build-order.lisp-expr, make-genesis-2.sh, make-host-1.sh,
	package-data-list.lisp-expr, version.lisp-expr,
	src/assembly/x86/assem-rtns.lisp, src/code/debug-int.lisp,
	src/code/early-impl.lisp, src/code/exhaust.lisp, src/code/gc.lisp,
	src/code/purify.lisp, src/code/run-program.lisp,
	src/code/symbol.lisp, src/code/toplevel.lisp,
	src/compiler/ir2tran.lisp, src/compiler/generic/genesis.lisp,
	src/compiler/generic/objdef.lisp, src/compiler/x86/alloc.lisp,
	src/compiler/x86/c-call.lisp, src/compiler/x86/cell.lisp,
	src/compiler/x86/insts.lisp, src/compiler/x86/macros.lisp,
	src/compiler/x86/nlx.lisp, src/compiler/x86/system.lisp,
	src/runtime/GNUmakefile, src/runtime/alloc.c,
	src/runtime/backtrace.c, src/runtime/breakpoint.c,
	src/runtime/cheneygc.c, src/runtime/coreparse.c,
	src/runtime/dynbind.c, src/runtime/dynbind.h,
	src/runtime/gc-common.c, src/runtime/gc-internal.h,
	src/runtime/gc.h, src/runtime/gencgc-internal.h,
	src/runtime/gencgc.c, src/runtime/globals.c, src/runtime/globals.h,
	src/runtime/interr.c, src/runtime/interrupt.c,
	src/runtime/interrupt.h, src/runtime/linux-os.c,
	src/runtime/monitor.c, src/runtime/parse.c, src/runtime/print.c,
	src/runtime/purify.c, src/runtime/run-program.c,
	src/runtime/runtime.c, src/runtime/runtime.h, src/runtime/save.c,
	src/runtime/search.c, src/runtime/thread.c, src/runtime/validate.c,
	src/runtime/validate.h, src/runtime/x86-arch.c,
	src/runtime/x86-assem.S, src/runtime/x86-linux-os.c,
	src/runtime/x86-linux-os.h:

	merge (by hand) all changes from dan_native_threads_branch
	
2003-01-19 18:53  dan_b

	* src/code/late-symbol.lisp, src/code/target-thread.lisp,
	src/runtime/gencgc-alloc-region.h, src/runtime/thread.c,
	src/runtime/thread.h, TODO.dan:

	copied unchanged from dan_native_threads_branch
	
2003-01-19 16:51  dan_b

	* version.lisp-expr, TODO.dan, make-genesis-2.sh, make-host-1.sh,
	src/code/debug-int.lisp, src/code/early-impl.lisp,
	src/code/exhaust.lisp, src/code/target-thread.lisp,
	src/code/toplevel.lisp, src/compiler/generic/genesis.lisp,
	src/compiler/generic/objdef.lisp, src/compiler/x86/macros.lisp,
	src/compiler/x86/parms.lisp, src/compiler/x86/system.lisp,
	src/runtime/GNUmakefile, src/runtime/alloc.c,
	src/runtime/breakpoint.c, src/runtime/dynbind.c,
	src/runtime/gc-common.c, src/runtime/gencgc-internal.h,
	src/runtime/gencgc.c, src/runtime/interr.c,
	src/runtime/interrupt.c, src/runtime/linux-os.c,
	src/runtime/linux-os.h, src/runtime/monitor.c, src/runtime/print.c,
	src/runtime/purify.c, src/runtime/runtime.c, src/runtime/search.c,
	src/runtime/thread.c, src/runtime/thread.h, src/runtime/validate.c,
	src/runtime/validate.h, src/runtime/x86-assem.S:

	"0.7.9.54.thread.17"
		#+thats-not-a-thread-its-a-promise
	
		To reduce the number of hardcoded offsets to struct thread
		elements in Lisp, we move the struct thread definition into
		objdef.lisp
	
		But this creates circular dependencies in C-land, where the
		first half of sbcl.h has #defines that all the other headers
		depend on, but the second half has structures that depend on
		all the other headers.  So, hack up genesis to write n
		header files (config.h, constants.h, static-symbols.h, plus
		one per primitive-object) instead of one.
	
		Now we can do some cleanup of the more gross uses of magic
		numbers in Lisp (debug-int, pseudo-atomic macro, etc)
	
		Lost *current-thread* : as a struct thread * it was useless,
		and as a pid it was unprintable 75% of the time, a native word
		pid is not a fixnum.
	
		Settled the interface for protect_control_stack_guard_page:
		it takes a pid
	
		is_valid_lisp_addr fixed to check all control stacks, not just
		the first one
	
		Parent thread now catches signals from dying children and
		cleans up after them (see destroy_thread)
	
2003-01-19 09:40  adejneka

	* BUGS, NEWS, OPTIMIZATIONS, version.lisp-expr,
	src/code/defstruct.lisp, src/compiler/info-functions.lisp,
	src/compiler/locall.lisp, tests/defstruct.impure.lisp,
	tests/eval.impure.lisp:

	0.7.11.10:
	        Fixed some bugs revealed by Paul Dietz' test suite:
	        ** BOA constructor with &AUX argument without a default value does
	           not cause a type error;
	        ** CONSTANTP now returns true for all self-evaluating objects.
	
2003-01-18 20:31  wnewman

	* CREDITS, package-data-list.lisp-expr, version.lisp-expr,
	src/code/toplevel.lisp:

	0.7.11.9:
		added hooks, more or less as sketched by dan_b on sbcl-devel, to
			 support kmr/acl-style alternate toplevel loop
	
