William Harold Newman [Mon, 3 Dec 2001 14:27:58 +0000 (14:27 +0000)]
 
0.pre7.86.flaky7.17:
	(still works as well as before, still fails in
		pathnames.impure.lisp the same way as before, since all
		the changes are still only preparation for a real fix)
	removed various INLINEs in ir1util.lisp, to ease debugging and
		because I hope sometime next year to be doing some
		profiling on the compiler (so that if they really need
		to be inlined, I should soon find out)
	making FIND-INITIAL-DFO recognize closure dependencies...
	...rearranged DFO-SCAVENGE-DEPENDENCY-GRAPH in preparation for
		walking through LAMBDA-REFERS-TO-VARS as well as
		LAMBDA-CALLS
William Harold Newman [Sun, 2 Dec 2001 20:06:58 +0000 (20:06 +0000)]
 
0.pre7.86.flaky7.16:
	(still works as well as before, still fails in
		pathnames.impure.lisp the same way as before, since all
		the changes are still only preparation for a real fix)
	making FIND-INITIAL-DFO recognize closure dependencies,
		continued...
	...In order to make the information conveniently available
		for DFO-SCAVENGE-DEPENDENCY-GRAPH, add a new slot
		LAMBDA-REFERS-TO-VARS, analogous to LAMBDA-CALLS.
	...made IR1-CONVERT-VARIABLE and DEF-IR1-TRANSLATOR SETQ
		set LAMBDA-REFERS-TO-VARS as appropriate
	...wrote untidy CONTINUATION-HOME-LAMBDA to support this
	...tweaked CONTINUATION-STARTS-BLOCK and LINK-BLOCKS so that
		when IR1-CONVERT-IF uses them it sets up links early
		enough to let CONTINUATION-HOME-LAMBDA work
	...made merge-LETs logic merge LAMBDA-REFERS-TO-VARS as it
		already merged LAMBDA-CALLS
William Harold Newman [Sun, 2 Dec 2001 14:38:13 +0000 (14:38 +0000)]
 
0.pre7.86.flaky7.15:
	s/walk-home/scavenge-home/ for consistency with old renamings
	DTC's analysis of the regression test bug is that Python is
		losing a variable because its home CLAMBDA is in one
		COMPONENT while the closing-over CLAMBDA is in another
		COMPONENT, and the one-COMPONENT-at-a-time physical
		environment analysis isn't up to the challenge. Thus
		Python deletes the apparently-unused variable and
		things deteriorate from there. He produced a fix
		involving special-casing top-level variables so that
		physenv analysis never deletes them, but neither he
		nor I was convinced that this covers all the bases.
		So I'll try another approach, making FIND-INITIAL-DFO
		treat the home/closure relationship as just as much
		of a physical dependency as a function call, and so
		prevent separation of the two CLAMBDAs into different
		components. Thus...
	...s/call-graph/dependency-graph/ to reflect intended
		new behavior
William Harold Newman [Thu, 29 Nov 2001 17:12:46 +0000 (17:12 +0000)]
 
0.pre7.86.flaky7.14:
	trivial changes made while hunting for the regression test bug
William Harold Newman [Mon, 26 Nov 2001 21:31:40 +0000 (21:31 +0000)]
 
0.pre7.86.flaky7.13:
	restored *PRINT-PRETTY* default
William Harold Newman [Mon, 26 Nov 2001 03:53:07 +0000 (03:53 +0000)]
 
0.pre7.86.flaky7.12:
	(now bootstraps successfully even without :SB-SHOW)
	made unbound-PRINT-OBJECT hack unconditional
William Harold Newman [Sun, 25 Nov 2001 23:21:05 +0000 (23:21 +0000)]
 
0.pre7.86.flaky7.11:
	(now bootstraps successfully, at least when :SB-SHOW to
		enable the new unbound-PRINT-OBJECT recovery stuff)
	added #!+SB-SHOW mechanism to catch and recover from
		unbound-PRINT-OBJECT gotchas in PCL bootstrapping
William Harold Newman [Sat, 24 Nov 2001 22:54:58 +0000 (22:54 +0000)]
 
0.pre7.86.flaky7.10:
	(now gets to src/pcl/print-object.lisp in warm init before
		dying)
	s/function/fun/ in DEFSTRUCT PPRINT-DISPATCH-ENTRY to match
		the s/function/fun/ in slot accessor names elsewhere
William Harold Newman [Sat, 24 Nov 2001 18:48:21 +0000 (18:48 +0000)]
 
0.pre7.86.flaky7.9:
	(can now do (SB!DI:TOP-FRAME) at cold toplevel prompt without
		crashing)
	fixed %DEFAULT-STRUCTURE-UGLY-PRINT call in
		DEFAULT-STRUCTURE-PRINT
William Harold Newman [Wed, 14 Nov 2001 16:28:30 +0000 (16:28 +0000)]
 
0.pre7.86.flaky7.8:
	found that suppressing the pretty printer lets the system limp
		into warm init (then die around assem-rtns.lisp)
William Harold Newman [Wed, 14 Nov 2001 02:25:54 +0000 (02:25 +0000)]
 
0.pre7.86.flaky7.7:
	split REPL out of TOPLEVEL-REPL, partly for style, partly as
		part of a hack to try in debugging
	REPL shouldn't need two levels of LOOP.
William Harold Newman [Tue, 13 Nov 2001 16:05:27 +0000 (16:05 +0000)]
 
0.pre7.86.flaky7.6:
	(This version makes it all the way through xc, then dies
		shortly after TOPLEVEL-INIT.)
	I guess PLACEHOLDER-FENV is more persistent than I realized, so
		old CMU CL code to modify it is actually important, so
		SBCL should modify it too.
William Harold Newman [Mon, 12 Nov 2001 23:40:25 +0000 (23:40 +0000)]
 
0.pre7.86.flaky7.5:
	(gets through the typep.lisp problem of flaky7.4, now dies
		in xc of srctran, apparently because the LABELS code
		is still broken)
	s/find-lambda-vars/make-lambda-vars/
	s/compute-closure/add-lambda-vars-and-let-vars-to-closures/
	The old logic in CLOSE-OVER implicitly relied on LEAF-REFS
		being completely set up before any CLOSE-OVERs were
		called, else CLOSE-OVER could terminate prematurely
		in the (MEMBER THING (PHYSENV-CLOSURE)) clause.
		It looks as though it might even be the cause of the
		failure in xc of typep.lisp. Since I'm finding it
		difficult to grok, must less debug the order in which
		the compiler initializes and mutates things, any order
		dependency is the enemy, so rewrite it so that
		it floods more systematically.
William Harold Newman [Mon, 12 Nov 2001 00:02:37 +0000 (00:02 +0000)]
 
0.pre7.86.flaky7.4:
	(This version dies with an AVER failure in FIND-IN-PHYSENV
		again, this time in xc of typep.lisp. Maybe, since
		I'm now substantially more knowledgeable about
		PHYSENVs than I was a few weeks ago, this will be
		easier to debug.)
	fixed bug which caused target-sxhash problem. PAIRLIS: "The
		new pairs may appear in the resulting association list
		in either forward or backward order." Egads. This is
		why the xc dies in target-sxhash: It's not a problem
		in &OPTIONAL handling, it's that I used (PAIRLIS ...)
		in a recent rewrite of LABELS as though it were
		(MAPCAR #'CONS ...), and the code breaks because
		PAIRLIS reverses the order on me. So..
	..Rewrite DEF-IR1-TRANSLATOR LABELS more thoroughly, so it
		loses its dependence on the order of PLACEHOLDER-FENV.
William Harold Newman [Sun, 11 Nov 2001 17:13:36 +0000 (17:13 +0000)]
 
0.pre7.86.flaky7.3:
	(This version cross-compiles all the way up to target-sxhash,
		where it dies with some sort of bug in &OPTIONAL
		arguments in FLET.)
	s/physenv-function/physenv-lambda/
	PHYSENV-LAMBDA is read-only.
	PRE-PHYSENV-ANALYZE-TOPLEVEL does COMPUTE-CLOSURE on all
		the LETs of each CLAMBDA.
		PREALLOCATE-PHYSENVS-FOR-TOPLEVELISH-LAMBDAS, which
		is supposed to play the same role, does not. What
		bozo wrote that?:-( Ahem. So..
	..Since there's never a good reason to call COMPUTE-CLOSURE
		on CLAMBDA without calling it on its LETs as well,
		and since I've demonstrated that it's an attractive
		nuisance, I'll try to make it less attractive, by
		making COMPUTE-CLOSURE automatically run over all the
		the LETs, and moving the old COMPUTE-CLOSURE code into
		an FLET hidden by the new COMPUTE-CLOSURE interface.
William Harold Newman [Sat, 10 Nov 2001 21:10:56 +0000 (21:10 +0000)]
 
0.pre7.86.flaky7.2:
	(still dies with the same assertion failure)
	factored out some idioms..
	..LAMBDA-BLOCK
	..LAMBDA-COMPONENT (previously known as CLAMBDA-COMPONENT)
	s/entry-function/entry-fun/
	s/tail-set-functions/tail-set-funs/
William Harold Newman [Sat, 10 Nov 2001 17:30:36 +0000 (17:30 +0000)]
 
0.pre7.86.flaky7.1:
	(still dies with the same assertion failure)
	reexpressing things in an effort to understand them..
	..renamed DFO-WALK-CALL-GRAPH to DFO-SCAVENGE-CALL-GRAPH
	..s/new-function/new-fun/
	..s/reanalyze-function/reanalyze-fun/
	..s/local-call-analyze-until-done/locall-analyze-clambdas-until-done/
	..s/local-call-analyze/locall-analyze-component/
	..s/local-call-analyze-1/locall-analyze-fun-1/
William Harold Newman [Tue, 6 Nov 2001 22:21:54 +0000 (22:21 +0000)]
 
0.pre7.86.flaky7:
	(This version dies early in cross-compilation with an assertion
		failure, perhaps because PRE-PHYSENV-ANALYZE-TOPLEVEL
		isn't being called on the right stuff.)
	tried to straighten out function names and debug names,
		splitting LEAF-NAME into LEAF-SOURCE-NAME and
		LEAF-DEBUG-NAME and making both SOURCE-NAME and
		DEBUG-NAME read-only..
	..IR1-CONVERT-LAMBDA gets both :SOURCE-NAME and :DEBUG-NAME
		keyword arguments, and then IR1-CONVERT-LAMBDA-BODY
		and IR1-CONVERT-HAIRY-LAMBDA and
		IR1-CONVERT-INLINE-LAMBDA do too
	..defined DEBUG-NAMIFY to support this
	..deleted no-longer-used COMPILE-FIX-FUN-NAME (and made mental
		note that it's probably the reason that old COMPILE
		got function debug name right even though %COMPILE
		doesn't)
	removed no-longer-used PRIMITIVE-TRANSLATOR stuff
	noticed that LAMBDA-VARS is read-only
William Harold Newman [Sun, 4 Nov 2001 01:07:06 +0000 (01:07 +0000)]
 
0.pre7.86:
	s/top-level/toplevel/, to conform with ANSI EVAL-WHEN
		situation names
William Harold Newman [Sat, 3 Nov 2001 20:45:15 +0000 (20:45 +0000)]
 
0.pre7.85:
	verified that LAMBDA-NAME isn't just for debugging, but can
		break the compiler, too:-(
William Harold Newman [Fri, 2 Nov 2001 17:10:41 +0000 (17:10 +0000)]
 
0.pre7.84:
	merged AD patch to remove :GLOBAL-VAR :KIND :CONSTANT
		(sbcl-devel 2001-10-02)
William Harold Newman [Fri, 2 Nov 2001 16:17:07 +0000 (16:17 +0000)]
 
0.pre7.83:
	deleted unused FAST-SYMBOL-FUNCTION and
		OBJECT-NOT-FUNCTION-OR-SYMBOL-ERROR
	replaced %COERCE-NAME-TO-FUNCTION and RAW-DEFINITION
		with %COERCE-NAME-TO-FUN
	s/coerce-callable-to-function/coerce-callable-to-fun/
	removed FSET in favor of (SETF SYMBOL-FUNCTION)
William Harold Newman [Thu, 1 Nov 2001 21:53:27 +0000 (21:53 +0000)]
 
0.pre7.82:
	s/static-function/static-fun/
	another DEFSTRUCT cleanup..
	..rewrote structure constructor form to try to make it more
		concise and readable
William Harold Newman [Thu, 1 Nov 2001 20:24:55 +0000 (20:24 +0000)]
 
0.pre7.81:
	DEFSTRUCT cleanups..
	..got rid of old SLOT-ACCESSOR-FORM in favor of
		%ACCESSOR-PLACE-FORM, so that now information about
		the different types of raw slots is more nearly
		centralized in *RAW-SLOT-DATA-LIST*
	..moved target-only stuff from near %TARGET-DEFSTRUCT call in
		%DEFSTRUCT into %TARGET-DEFSTRUCT
	miscellaneous cleanups..
	..added (SETQ *PRINT-CIRCLE* T) to the before-proper-printing
		hacks in make-target-2.sh
	fixed stupid *PRINT-CIRCLE*-related bug in OUTPUT-OBJECT
		(introduced in the 0.pre7.76 changes)
William Harold Newman [Thu, 1 Nov 2001 18:39:01 +0000 (18:39 +0000)]
 
0.pre7.80:
	fixed raw slot accessor stuff so that it indexes correctly
		when it's looking at raw data (rescaling the index by
		the element size, as the old DEFUN SLOT-ACCESSOR-FORM
		code did but my new code doesn't)
	redid *RAW-TYPE->RAWREF-FUN-NAME* as *RAW-SLOT-DATA-LIST*
		to support this
William Harold Newman [Thu, 1 Nov 2001 14:16:40 +0000 (14:16 +0000)]
 
0.pre7.79:
	added %COMPILER-DEFSTRUCT-generated inline expansions
		for type predicates
	removed predicate DEFUN from macroexpansion of DEFSTRUCT
		(so that now %DEFSTRUCT-generated closures and
		%COMPILER-DEFSTRUCT-generated inline expansions do
		everything)
	moved definitions of SPECIFIER-TYPE stuff later in
		early-type.lisp, after DEFSTRUCT VALUES-TYPE, so that
		the VALUES-TYPE-P call there can be inlined
William Harold Newman [Thu, 1 Nov 2001 02:21:15 +0000 (02:21 +0000)]
 
0.pre7.78:
	miscellaneous DEFSTRUCT-related cleanups..
	..There are no longer DEFSTRUCTs in defstruct.lisp itself,
		so DEFSTRUCT-parsing stuff no longer needs to be
		wrapped in EVAL-WHEN.
	..moved DEFUN SLOT-ACCESSOR-FUNS to target-defstruct.lisp
	..removed lotso /SHOW stuff from defstruct.lisp
	..removed REMOVEMEs
William Harold Newman [Thu, 1 Nov 2001 00:11:47 +0000 (00:11 +0000)]
 
0.pre7.77:
	removed slot accessor DEFUNs from macroexpansion of DEFSTRUCT
		(so that now %DEFSTRUCT-generated closures and
		%COMPILER-DEFSTRUCT-generated inline expanders
		do everything)
William Harold Newman [Wed, 31 Oct 2001 21:38:18 +0000 (21:38 +0000)]
 
0.pre7.76:
	As long as I'm testing whether the old code works as an xc
		host, I might as well make some pending cleanups..
	..made CERROR use COERCE-CONDITION directly instead of
		trying to screen it from the already-a-CONDITION case
	..renamed stems-and-flags.lisp-expr to build-order.lisp-expr
		(taking a hint from the explanatory comment at head
		of file:-)
	..factored should-we-CHECK-IT logic out of OUTPUT-OBJECT into
		COMPOUND-OBJECT-P, and shared it with DUMP-OBJECT
	..renamed CIRCULAR-LIST-P to CYCLIC-LIST-P
	..factored out UNIQUELY-IDENTIFIED-BY-PRINT-P too
	..deleted unused INSTANCE-SET-CONDITIONAL and INSTANCE-XADD
		stuff
William Harold Newman [Wed, 31 Oct 2001 19:42:57 +0000 (19:42 +0000)]
 
0.pre7.75:
	merged MNA READ-SEQUENCE and WRITE-SEQUENCE patch
		("Re: .. horks" sbcl-devel 2001-10-23)
	renamed LISP-STREAM to ANSI-STREAM
	renamed lisp-stream.lisp to ansi-stream.lisp
	renamed ANSI-STREAM-related IN-BUFFER-FOO stuff to
		ANSI-STREAM-IN-BUFFER-FOO
	renamed +IN-BUFFER-EXTRA+ to +ANSI-STREAM-IN-BUFFER-EXTRA+
	renamed ANSI-STREAM-IN-BUFFER-TYPE to ANSI-STREAM-IN-BUFFER
		(If you have half a dozen namespaces, why not
		use them?:-|)
William Harold Newman [Wed, 31 Oct 2001 17:51:04 +0000 (17:51 +0000)]
 
0.pre7.74:
	merged flaky6 changes back into main branch
William Harold Newman [Wed, 17 Oct 2001 22:15:17 +0000 (22:15 +0000)]
 
0.pre7.73:
	added more tests for DEFSTRUCT
	Don't proclaim/declaim instance types in DEFSTRUCT :TYPE LIST
		or DEFSTRUCT :TYPE VECTOR (because they're not known
		to the type system in those cases).
William Harold Newman [Wed, 17 Oct 2001 18:37:52 +0000 (18:37 +0000)]
 
0.pre7.72:
	merged two AD patches from sbcl-devel 2001-10-17..
	.."inconsistency in FIND", fixing bug in %FIND-POSITION stuff
	.."bug in APROPOS-LIST"
	added tests for these bugs
William Harold Newman [Wed, 17 Oct 2001 13:43:22 +0000 (13:43 +0000)]
 
0.pre7.71:
	added new closures for out-of-line slot accessors (but didn't
		actually hook them into %DEFSTRUCT yet)
	added typecheckfuns.lisp to stems-and-flags
	made %DEFSTRUCT FOO clear (GETHASH 'FOO *TYPECHECKFUNS*)
	made typecheckfuns.lisp initialized in cold init
William Harold Newman [Wed, 17 Oct 2001 13:39:26 +0000 (13:39 +0000)]
 
0.pre7.70:
	The definition of functions using INFO :FOO :BAR can't safely
		be mixed among the definitions of info classes (like
		:FOO) and types (like :BAR). This is a misfeature, but
		even though it's just bitten me I've got many more
		urgent things to do than fixing it, so I just moved
		the definition of DEFUN FUN-NAME-INLINE-EXPANSION from
		globaldb.lisp into info-functions.lisp.
William Harold Newman [Tue, 16 Oct 2001 21:01:52 +0000 (21:01 +0000)]
 
0.pre7.69:
	added current draft of typecheckfuns.lisp to CVS (but not to
		stems-and-flags yet)
	--
	cvs add typecheckfuns.lisp
William Harold Newman [Tue, 16 Oct 2001 17:26:15 +0000 (17:26 +0000)]
 
0.pre7.68:
	more name systematization..
	..s/variable-length/var-length/
	..s/variable-name/ambiguous-var-name/
	..s/fast-read-variable-integer/fast-read-var-u-integer/
	..s/variable-lexical-p/var-lexical-p/
	..s/variable-special-p/var-special-p/
	..s/variable-globally-special-p/var-globally-special-p/
	..s/variable-declaration/var-declaration/
	..s/variable-same/var-same/
	merged AD's fix-TRACE-nesting patch (sbcl-devel 2001-10-16)
	also went back to the original sources to try to see
		how this got
William Harold Newman [Tue, 16 Oct 2001 03:12:06 +0000 (03:12 +0000)]
 
0.pre7.67:
	cleaned up miscellaneous FTYPE proclamation stuff..
	..I changed my mind: PROCLAIM-AS-FUN-NAME is appropriate
		in PROCLAIM INLINE and PROCLAIM NOTINLINE after all.
	..got rid of separate PROCLAIM-AS-DEFSTRUCT-FUN-NAME in
		favor of ordinary PROCLAIM FTYPE
	..moved remove-from-*FREE-FUNCTIONS* logic from
		%COMPILER-DEFSTRUCT to PROCLAIM-AS-FUN-NAME
	..PROCLAIM-AS-FUN-NAME doesn't need to return NAME. Nor
		CHECK-FUN-NAME neither.
	..When %COMPILER-DEFSTRUCT sets the inline expansions of
		slot functions, it should proclaim their ftype too.
	Now that %COMPILER-DEFSTRUCT wants SB!XC:PROCLAIM, I
		rearranged things to make SB!XC:PROCLAIM available
		sooner, moving src/compiler/proclaim, and the
		src/compiler/knownfun that it depends on, earlier
		in stems-and-flags
William Harold Newman [Tue, 16 Oct 2001 00:46:33 +0000 (00:46 +0000)]
 
0.pre7.66:
	got rid of now-redundant :ACCESSOR-FOR stuff, hoping that
		henceforth slot accessors can truly be ordinary
		functions with ordinary inline expansions instead of
		hybrid non-ANSI weirdosities
William Harold Newman [Mon, 15 Oct 2001 22:18:43 +0000 (22:18 +0000)]
 
0.pre7.65:
	tweaked things (making %COMPILER-DEFSTRUCT responsible
		for setting inline expansions) so that whenever
		INFO :FUNCTION :ACCESSOR-FOR is set the inline
		expansion always exists too
	defined NTH-WITH-SANE-ARG-ORDER to support future
		generalization of new DEFSTRUCT code to :TYPE LIST
	s/defined-function/defined-fun/
	The manual can be formatted into HTML with openjade now, at
		least on my system, and probably also on other systems
		which use the same absolute filename for docbook.dsl
		as OpenBSD 2.9 does.
William Harold Newman [Mon, 15 Oct 2001 17:23:48 +0000 (17:23 +0000)]
 
0.pre7.64:
	merged AD patch to fix new DECLAIM FTYPE in DEF-ALIEN-ROUTINE
		so that it actually DECLAIMs argument types (instead of
		bogusly DECLAIMing the code to generate argument types)
	started tweaking doc/ stuff to work with openjade (but doesn't
		work yet, at least with my current openjade/DocBook
		setup)
William Harold Newman [Sun, 14 Oct 2001 03:48:05 +0000 (03:48 +0000)]
 
0.pre7.63:
	made tests/*clocc-ansi* stuff work with my patched version
		of clocc/src/tools/ansi-test/
	(submitted ansi-test patch to clocc-devel)
	added tests/defstruct.impure.lisp
	redefined RAISES-ERROR? to allow error subtype to be specified
	changed INTERNAL-TIME-UNITS-PER-SECOND to 1000
	removed redundant type.pure.lisp code from time.pure.lisp,
		since evidently I was a mite groggy when copying
		copyright-and-whatnot boilerplate into time.pure.lisp
	finally updated fasl file version
William Harold Newman [Sun, 14 Oct 2001 00:08:38 +0000 (00:08 +0000)]
 
0.pre7.62:
	added first draft of tests/*clocc-ansi* stuff
	applied Alexey Dejneka's fixes from sbcl-devel 2001-10-13..
	..exported RETURN-PC-SAVE-OFFSET from SB!VM as per
		"broken debugger" message
	..fixed PARSE-COMPILED-DEBUG-BLOCKS along the lines of
		"debugger errors" message (DEBUG-FUNCTION vs.
		DEBUG-FUN, argh!)
	s/about-to-modify/about-to-modify-symbol-value/
	INDEX is in SB-INT now, so it doesn't need package prefixes
		anywhere any more.
	exported SC-OFFSET from SB-C
William Harold Newman [Sat, 13 Oct 2001 02:44:15 +0000 (02:44 +0000)]
 
0.pre7.61:
	OK, that's enough renaming for a while. I'm tired of rebuilding
		taking so long, and from the long compile times of the
		DEFSTRUCT-heavy files like node.lisp, the use of
		DEFUN instead of closures to define structure
		accessors is likely to be contributing, and
		that's something I wanted to fix anyway. So in
		preparation for removing DEFUNs from DEFSTRUCT
		macroexpansion..
	..hacked the definition of INFO :FUNCTION :INLINE-EXPANSION
		so that it will accept FUNCTION values as well as
		lambda expressions, with the nonobvious but convenient
		interpretation that the function is to be called
		to get a lambda expression.
	..wrote FUN-NAME-INLINE-EXPANSION to support this
	..renamed other FUNCTION-NAME stuff to have parallel names
	..renamed INFO :FUNCTION :INLINE-EXPANSION to
		INFO :FUNCTION :INLINE-EXPANSION-DESIGNATOR
	..renamed CLASS-STRUCTURE-P to DD-CLASS-P, since I keep
		forgetting exactly what CLASS-STRUCTURE-P means
		(and vice versa, forgetting the name for this property)
	tweaked representation of INFO :VARIABLE :CONSTANT-VALUE so
		that it returns only a single value, so that we no
		longer need the complexity of VALUES-returning INFO
		entries, so that the type declaration of the return
		value doesn't wander into the twilight zone of
		whether T is a (VALUES T T) and similar questions
		that ANSI seems not to've considered
	restructured compiler-macro implementation of INFO to
		avoid the (VALUES T T) ambiguity
	rewrote FIND-FREE-VARIABLE to use bare
		(EQL (INFO :VARIABLE :KIND ..) :CONSTANT) instead
		of messing with the second value return from
		(INFO :VARIABLE :CONSTANT-VALUE ..); and checked that
		there are no other uses of the second value
	split #'SYMBOL-SELF-EVALUATING-P out of #'ABOUT-TO-MODIFY, and
		used it in INFO instead of the funky special casing
		of T and NIL in :DEFAULT of INFO :VARIABLE :KIND and
		elsewhere
	copied Christophe Rhodes' *BACKEND-FEATURES* documentation
		from the CLiki SBCL internals site and pasted them
		into the source code
William Harold Newman [Thu, 11 Oct 2001 14:05:25 +0000 (14:05 +0000)]
 
0.pre7.60:
	more renaming..
	..renamed BYTE-BITS to N-BYTE-BITS
	..renamed WORD-BYTES to N-WORD-BYTES
	got rid of various redundant SB!VM: prefixes
	exported LRA-SAVE-OFFSET, OCFP-SAVE-OFFSET, and NFP-SAVE-OFFSET
		from SB!VM, since debug internals need 'em
William Harold Newman [Thu, 11 Oct 2001 01:09:15 +0000 (01:09 +0000)]
 
0.pre7.59:
	cleanup after widetag renaming in 0.pre7.58..
	..renamed %VECTOR-TYPE-CODE to VECTOR-WIDETAG-AND-N-BITS
	..renamed %COMPLEX-VECTOR-TYPE-CODE to COMPLEX-VECTOR-WIDETAG
	..renamed DEFINE-PRIMITIVE-OBJECT :HEADER to :WIDETAG
	..renamed PRIMITIVE-OBJECT-HEADER to PRIMITIVE-OBJECT-WIDETAG
	renamed WORD-BITS to N-WORD-BITS
William Harold Newman [Wed, 10 Oct 2001 22:44:30 +0000 (22:44 +0000)]
 
0.pre7.58:
	(aside: I screwed up CVS checkin somehow on the last version.
		My local backend.lisp was modified by CR's patch but
		for some reason didn't make it into the CVS repository.
		Hopefully this checkin will take care of the problem.)
	renamed the 8-bit tag codes from FOO-TYPE to FOO-WIDETAG,
		and from type_FooBar to FOO_BAR_WIDETAG. (I used
		WIDETAG instead of just TAG because I figure as long
		as I'm trying to reduce the ambiguities of TYPE in old
		names, I might as well minimize the ambiguity of TAG
		(in the sense of THROW/CATCH) in the new names too.)
	also s/fun-header-types/fun-header-widetags/
	renamed TYPE-BITS to N-WIDETAG-BITS, and TYPE-MASK to
		WIDETAG-MASK
	renamed TypeOf to widetag_of
	renamed lowtagof to lowtag_of
	renamed LOWTAG-BITS to N-LOWTAG-BITS
	renamed TYPE_MASK to WIDETAG_MASK
	renamed N_TYPE_BITS to N_WIDETAG_BIGS
William Harold Newman [Mon, 8 Oct 2001 23:40:00 +0000 (23:40 +0000)]
 
0.pre7.57:
	merged Christophe Rhodes VOPs-conditional-on-target-variant
		patches (sbcl-devel 2001-10-08)
William Harold Newman [Mon, 8 Oct 2001 21:39:51 +0000 (21:39 +0000)]
 
0.pre7.56:
	renamed the 3-bit lowtag codes from FOO-TYPE to FOO-LOWTAG,
		e.g. FUN-POINTER-LOWTAG, to make it clear that
		they're not parallel to the 8-bit codes like
		SIMPLE-FUN-HEADER-TYPE, or to things like FUN-TYPE
		used to represent (SPECIFIER-TYPE '(FUNCTION ..))
	and in C, renamed 'em from type_FooBar to FOO_BAR_LOWTAG
	also renamed some tag- and low-level-type-related names
		in runtime.h to be less quirky: ALL_UPPERCASE for
		constants, inline functions instead of macros
	The TRACE-TABLE-FOO things no longer need to be copied into
		sbcl.h by GENESIS, because C code no longer uses them.
	--
	Don't forget to update the DEFENUM in early-objdef.lisp.
	Don't forget to update the GENESIS code which copies
		them into sbcl.h.
William Harold Newman [Mon, 8 Oct 2001 16:21:30 +0000 (16:21 +0000)]
 
0.pre7.55:
	renamed low level function-as-opposed-to-closure objects
		as SIMPLE-FUN to disambiguate the old nasty
		(DEFPARAMETER *FUNCTION-HEADER-TYPES*
		  (LIST FUNCALLABLE-INSTANCE-HEADER-TYPE
			FUNCTION-HEADER-TYPE ; <- source of confusion
			CLOSURE-FUNCTION-HEADER-TYPE
			CLOSURE-HEADER-TYPE))
	..generally s/%function/%simple-fun/
	..also s/%fun-type/%simple-fun-type/
	..s/function-code-header/fun-code-header/
	..Generally matches to "-i 'function.*header'" become
		corresponding 'simple.*fun.*header'.
	s/function-header-word/simple-fun-header-word/
	s/function-pointer-type/fun-pointer-type/
	..also similarly matches to 'function.*slot'
	CHECK-FUNCTION-OR-SYMBOL is no longer used, probably because
		function names can be (SETF FOO) now. Delete it.
	Similarly, SYMBOL-FUNCTION-SLOT is no longer used. Delete it.
	Dunno why SYMBOL-SETF-FUNCTION-SLOT is no longer used --
		FDEFNs, probably -- but by now you know the drill.
	and SYMBOL-RAW-FUNCTION-ADDR-SLOT, too
	back to SIMPLE-FUN and friends..
	.."closure.*function.*header" to "closure.*fun.*header"
	..s/scav_function_header/scav_fun_header/
	..tweaked DEFINE-PRIMITIVE-OBJECT (FUNCTION ..) to use
		SIMPLE-FUN name
	..s/%fun-type/%simple-fun-type/
	..s/%fun-name/%simple-fun-name/
	..s/%fun-arglist/%simple-fun-arglist/
	..s/%fun-self/%simple-fun-self/
	..s/%fun-next/%simple-fun-next/
	Also substitute s/function/fun/ in slot names defined in
		objdef.lisp, e.g. CLOSURE-FUN.
William Harold Newman [Mon, 8 Oct 2001 02:34:15 +0000 (02:34 +0000)]
 
0.pre7.54:
	(Incidentally, I've pretty much given up on incrementing the
		fasl file version number on every renaming. Eventually
		I'll bump it, with a very high level summary comment.)
	back to standard abbrev. FUN for "object of type FUNCTION"..
	..find . -name *.lisp | xargs egrep -i '[^a-z:]:function-'
	..and 'function-end'
	..and 'function-start'
	..and 'FunctionEnd' and 'FunctionStart' and 'function.end'
	..and 'function-type'
	..but SB-EXT:*DERIVE-FUNCTION-TYPES* remains the same
William Harold Newman [Sun, 7 Oct 2001 22:10:02 +0000 (22:10 +0000)]
 
0.pre7.53:
	deleted dead code related to MINIMAL-DEBUG-FUNs..
	..find . -name *.lisp | xargs egrep -i 'uncompact-function-map'
	..and 'make-uncompacted-debug-fun'
	..and '\*uncompacted-function-maps\*'
	..and 'debug-fun-minimal-p'
	..and 'dump-1-minimal-dfun'
	..and 'minimal-debug'
	..also s/get-debug-info-function-map/debug-info-function-map/
	Then in the spirit of renaming object-of-type-FUNCTION to FUN,
		as begun in 0.pre7.52, s/function-map/fun-map/.
William Harold Newman [Sun, 7 Oct 2001 20:58:14 +0000 (20:58 +0000)]
 
0.pre7.52:
	standard abbreviation FUN for "object of type FUNCTION" (or
		some other kind of function when qualified, e.g.
		DEBUG-FUN) in global internal names..
	..find . -name *.lisp | xargs egrep -i 'debug-function'
	..and 'debug-fun-function'
	..and 'function-debug'
	..and 'frame-function'
William Harold Newman [Sat, 6 Oct 2001 22:31:20 +0000 (22:31 +0000)]
 
0.pre7.51:
	The LAMBDAS slot of ENVIRONMENT isn't used? Delete it.
	renamed ENVIRONMENT structure to PHYSENV to reflect
		my understanding from reverse engineering while
		working on flaky5_branch
	renamed IR2-ENVIRONMENT structure to IR2-PHYSENV
	rename envanal.lisp to physenvanal.lisp
	bumped fasl file version number (should have done that last
		version too, since new low-level type codes are not
		good for binary compatibility, oops..)
William Harold Newman [Sat, 6 Oct 2001 19:54:38 +0000 (19:54 +0000)]
 
0.pre7.50:
	deleting more old byte-compiler/byte-interpreter stuff..
	..find . -name *.lisp | xargs egrep -i 'byte.*interp'
	..and egrep -i 'interp.*byte'
	..and egrep -i 'byte.*component'
	..and egrep -i 'interpreted-frame'
	..and egrep -i 'byte.*code'
	..and egrep -i 'byte.*fun'
	..and egrep -i 'byte.*closure'
	..no longer need POSSIBLY-AN-INTERPRETED-FRAME or
		FRAME-REAL-FRAME, and some nearby debug-int.lisp stuff
		gets simpler too
	s/"Returns /"Return / in doc strings (and impatiently try to
		make corresponding grammatical changes too)
	s/immediate-types/*immediate-types*/
	s/function-header-types/*function-header-types*/
William Harold Newman [Sat, 6 Oct 2001 17:18:30 +0000 (17:18 +0000)]
 
0.pre7.49:
	deleting old byte-compiler/byte-interpreter stuff..
	..find . -name *byte*lisp | xargs rm
	..find . -name *.lisp | xargs egrep -i 'byte.*comp'
William Harold Newman [Sat, 6 Oct 2001 13:34:18 +0000 (13:34 +0000)]
 
0.pre7.48:
	deleted remaining conditional-on-GENGC-feature stuff (except
		what's in Alpha, where I don't have an Alpha to test
		the changes on)
	did "egrep -i gengc" and removed what I found
	(deleted some byte code stuff too, instead of trying to
		selectively remove gengc conditionalization within it)
	removed UNUSED slot in SYMBOL: We don't have any bootstrapping
		issues at cross-compile time which require us to
		maintain the same layout in the target as in the host
William Harold Newman [Sat, 6 Oct 2001 01:12:01 +0000 (01:12 +0000)]
 
0.pre7.47:
	deleted various long-unused GENGC stuff..
	..deleted #!+GENGC conditional code
	..made #!-GENGC code unconditional
William Harold Newman [Fri, 5 Oct 2001 23:59:26 +0000 (23:59 +0000)]
 
0.pre7.46:
	various refactorings and tidying..
	..redid the hairy remove-ourselves-from-tail-set mess in
		MERGE-LETS as a separate function,
		DEPART-FROM-TAIL-SET
	..split diagnostic/reporting stuff (starting around
		(DECLAIM (SPECIAL *CURRENT-PATH*)) out of ir1util.lisp
		into ir1report.lisp
	..moved UNIX-HOST stuff around in an effort to get rid
		of compiler not-defined-(yet) warnings
	..split target-pathname.lisp out of pathname.lisp to support
		this
	..moved target-only HOST stuff from pathname.lisp (which is
		built both on host and target) to filesys.lisp (which
		is flagged as :NOT-HOST in stems-and-flags.lisp-expr)
	..Since there's no longer any numbers.lisp or
		host-numbers.lisp to contrast to, target-numbers.lisp
		really ought to be called numbers.lisp.
	..split ir1-translators.lisp out of ir1tran.lisp (as per FIXME)
	..moved IDENTITY, COMPLEMENT, and CONSTANTLY out of list.lisp
		into funutils.lisp
William Harold Newman [Fri, 5 Oct 2001 20:02:24 +0000 (20:02 +0000)]
 
0.pre7.45:
	added test cases for BUTLAST/NBUTLAST functions, rewrote the
		functions (again..) (and fantasized about someday
		learning to write correct code..)
William Harold Newman [Fri, 5 Oct 2001 17:41:31 +0000 (17:41 +0000)]
 
	merged AD sbcl-devel 2001-10-05 LOOP patches..
	..Variable *LOOP-DESTRUCTURING-HOOKS* is checked three times,
		but set nowhere: remove.
	..Declare WITH-introduced variables.
	..bug 103: Forms after INITIALLY, FINALLY, DO must be compound
		forms.
	added test cases for second and third patches
	fixed bug in third patch: missing argument in LOOP-ERROR
	tweaked suggested *SHEBANG-FEATURES* customization procedure
		text sorta along the lines suggested by Nathan Froyd
William Harold Newman [Fri, 5 Oct 2001 14:47:27 +0000 (14:47 +0000)]
 
0.pre7.43:
	testing..
	..current working copy builds under sbcl-0.6.13 on OpenBSD/x86
	..current working copy builds with :SB-SHOW on OpenBSD/x86
	..fresh "cvs co", with no customize-target-features.lisp or
		anything, builds under cmucl-18c on Linux/x86
William Harold Newman [Thu, 4 Oct 2001 22:16:54 +0000 (22:16 +0000)]
 
0.pre7.42:
	merged three Alexey Dejneka sbcl-devel patches..
	.."bug 49-b*" 2001-09-30
	.."bug 81" 2001-09-30
	.."compiler/interpreter disagreement" 2001-10-02
William Harold Newman [Thu, 4 Oct 2001 20:18:20 +0000 (20:18 +0000)]
 
0.pre7.41:
	fixed bug 126 Alexey Dejneka's way after all: I gave up on my
		fancy distinction between high-level and low-level
		default initial elements once I realized that the
		code (1) had to be changed in two different places
		(DEFTRANSFORM MAKE-ARRAY and DEFUN MAKE-ARRAY) and
		(2) was nasty enough that it'd have to be substantially
		rewritten in both places
William Harold Newman [Thu, 4 Oct 2001 17:38:45 +0000 (17:38 +0000)]
 
0.pre7.40:
	preparing for fixing bug 126, not changing the meaning of the
		code, just trying to make it easier for me to follow
William Harold Newman [Wed, 3 Oct 2001 20:03:25 +0000 (20:03 +0000)]
 
0.pre7.39:
	merged MNA fd-stream.lisp patch (sbcl-devel 2001-09-10)
	merged AD EXPAND-DEFGENERIC patch (sbcl-devel 2001-09-10)
	stuffed DEFUN EXPAND-DEFGENERIC into DEFMACRO DEFGENERIC
	merged AD DIRECTORY patch (sbcl-devel 2001-09-22)
	swapped FunctionPointer and InstancePointer type codes for PPC
		convenience (as per dan sbcl-devel 2001-09-22)
	incremented fasl file version number again
	tweaked clean.sh so it will delete CVS update crud
William Harold Newman [Wed, 3 Oct 2001 15:20:43 +0000 (15:20 +0000)]
 
0.pre7.38:
	(flaky5_branch RIP. There are still problems: debugging data
		going astray, and new DEFUN of inline FOO being too
		wimpy. But it seems better than 0.pre7.37. So..)
	merged flaky5_branch back onto the main branch
William Harold Newman [Thu, 6 Sep 2001 23:50:43 +0000 (23:50 +0000)]
 
0.pre7.37:
	merged %COMPILER-TRULY-DEFSTRUCT into %COMPILER-DEFSTRUCT
	The '%.*defstruct' operators no longer need to be exported.
	made PROCLAIM-AS-FUNCTION not complain about redefinition
		unless the function name is actually fbound (not just
		noted as accessor in info database)
	moved some function definitions from proclaim.lisp to
		info-functions.lisp so they'd be available earlier
William Harold Newman [Wed, 5 Sep 2001 23:41:07 +0000 (23:41 +0000)]
 
0.pre7.36
	(This version still issues bogus redefinition warnings and
		still builds structure slot accessors without enough
		type checks, but at least it works well enough to
		build itself.)
	replaced old 'def-ir1.*defstruct' magic with new ANSI
		EVAL-WHEN magic
	merged %%COMPILER-DEFSTRUCT into %COMPILER-DEFSTRUCT
	renamed %COMPILER-DEFSTRUCT to %COMPILER-TRULY-DEFSTRUCT
	renamed %COMPILER-ONLY-DEFSTRUCT to %COMPILER-DEFSTRUCT
	renamed EXPANDER-FOR-DEFSTRUCT to !EXPANDER-FOR-DEFSTRUCT
	renamed PARSE-1-OPTION to PARSE-1-DD-OPTION
	renamed DO-INCLUSION-STUFF to DO-DD-INCLUSION-STUFF
	did some other renaming too
William Harold Newman [Wed, 5 Sep 2001 21:35:06 +0000 (21:35 +0000)]
 
0.pre7.35:
	(This version issues lots of bogus redefinition warnings, and
		also fails in type.impure.lisp because it builds
		structure slot accessors without enough type checks
		(and so doesn't catch some kinds of improper usage).
		Both of these problems seem to be symptoms of doing
		things out of order in the macroexpansion and
		compilation of DEFSTRUCT. Hopefully I can get rid of
		these problems soon in the process of getting rid of
		old 'def-ir1.*defstruct' constructs in favor of new
		ANSI EVAL-WHEN-based constructs.)
	renamed DSD-ACCESSOR to DSD-ACCESSOR-NAME
	renamed DD-PREDICATE to DD-PREDICATE-NAME
	undid KLUDGE/FIXME in DEFMACRO-MUNDANELY DECLAIM: Now that
		EVAL-WHEN behaves better, we don't need it.
	PROCLAIM INLINE shouldn't PROCLAIM-AS-FUNCTION-NAME (both in
		principle and also because right now it's causing
		problems in DEFSTRUCT)
	PROCLAIM-AS-FUNCTION-NAME shouldn't blow away a structure class
		just because it happens to use the same name for one of
		its slot accessors (just as PROCLAIM INLINE change)
	made DESCRIBE smarter about SETF functions
William Harold Newman [Wed, 5 Sep 2001 04:22:32 +0000 (04:22 +0000)]
 
0.pre7.34:
	merged MNA "small defstruct patch" sbcl-devel 2001-09-03
William Harold Newman [Wed, 5 Sep 2001 01:37:37 +0000 (01:37 +0000)]
 
0.pre7.33:
	fixed (LOOP FOR KEY BEING EACH HASH-KEY IN HASH COLLECT KEY)
		bug reported by Alexey Dejneka on sbcl-devel 2001-09-03
	some package cleanup in preparation for making byte-interp.lisp
		IN-PACKAGE SB!BYTECODE..
	..exported &MORE from SB!INT instead of SB!C
	..exported MAKE-VALUE-CELL, VALUE-CELL-REF, and VALUE-CELL-SET
		from SB!KERNEL instead of SB!C, so that they're visible
		in SB!BYTECODE.
	also put &MORE onto the LAMBDA-LIST-KEYWORDS list
	added SB-XC prefixes to LAMBDA-LIST-KEYWORDS usage
	rearranged macroexpand/uncross/eval operations in
		cross-compiler PROCESS-TOP-LEVEL-FORM so xcompiling
		DEFCONSTANT-EQX SB!XC:LAMBDA-LIST-KEYWORDS will
		redefine SB-XC:LAMBDA-LIST-KEYWORDS instead of
		CL:LAMBDA-LIST-KEYWORDS
	tweaked PARSE-1-DSD so that it always sets DSD-ACCESSOR,
		dropping CMU CL's "don't shadow inherited accessor"
		special case
William Harold Newman [Mon, 3 Sep 2001 02:26:26 +0000 (02:26 +0000)]
 
0.pre7.32:
	merged Alexey Dejneka's WRITE-STRING/WRITE-LINE fix
	rewrote WRITE-STRING to use a simplified, unconditional
		version of the old HIGH-SECURITY code
	WRITE-STRING* is always used with four arguments, so the
		&OPTIONALness of its arguments is unnecessary
		generality, so get rid of it. Then, since its
		calling convention has changed, rename it to
		%WRITE-STRING.
	WRITE-LINE can be made a lot simpler by reusing WRITE-STRING,
		and then WRITE-LINE* isn't needed at all.
William Harold Newman [Sun, 2 Sep 2001 23:03:44 +0000 (23:03 +0000)]
 
0.pre7.31:
	merged MNA "cleanups" patch from sbcl-devel 2001-08-31
	got rid of INDEXV-USER-SPECIFIED-P completely, since MNA
		points out that it's unused
	got rid of ignored FORM arg in definition of %PRIMITIVE, too
William Harold Newman [Sun, 2 Sep 2001 21:44:48 +0000 (21:44 +0000)]
 
	rewrite of DEFMACRO DEFCLASS, inspired by but different from
		MNA's "defclass" patch from sbcl-devel 2001-08-31..
	..don't need DEFUN EXPAND-DEFCLASS distinct from
		DEFMACRO DEFCLASS
	..Don't do INFORM-TYPE-SYSTEM-ABOUT-STD-CLASS at
		macroexpansion time, but instead at
		EVAL-WHEN (COMPILE LOAD EVAL) time.
William Harold Newman [Sun, 2 Sep 2001 17:28:32 +0000 (17:28 +0000)]
 
0.pre7.29:
	merged MNA EVAL-WHEN patch from sbcl-devel 2001-08-31 (doing
		nothing at toplevel unless :EXECUTE)
	rewrote the logic in the rest of the same EVAL-WHEN clause (not
		trying to change its behavior, just to express it more
		nicely)
	The implementation of EVAL doesn't actually belong IN-PACKAGE
		SB!BYTECODE. Put it in SB!IMPL instead.
	deleted duplicate definition of SB-KERNEL:*EVAL-STACK-TOP*
	moved definition of IGNORE-ERRORS src/code/macros (as
		DEFMACRO-MUNDANELY at build-the-cross-compiler time) so
		it can be used in target code in src/code/extensions
		(although that turns out not to help, since it expands
		into HANDLER-CASE, which wants to be defined later..)
	added src/code/late-extensions.lisp to hold things like
		LIST-WITH-LENGTH-P which want to have some of the
		Lisp system set up before they're defined
	renamed src/code/extensions.lisp to
		src/code/early-extensions.lisp (since now there's
		a corresponding late-extensions.lisp again)
	moved POSITIVE-PRIMEP to src/code/late-extensions.lisp,
		deleted src/code/numbers.lisp
	limited POSITIVE-PRIMEP to FIXNUM and moved it to SB!INT
	merged MNA "eval-when problems -- fix" patch from sbcl-devel
		2001-09-01 (IR1-converting EVAL-WHEN (with no forms)
		even in "the forms in the body are ignored" case,
		instead of just skipping IR1 conversion completely
		and leaving START and CONT dangling in the wind)
	since I'm doing related filename and stems-and-flags cleanup
		 anyway..
	..renamed src/code/early-target-error.lisp to
		src/code/target-error.lisp
	..renamed src/code/late-target-error.lisp to
		src/code/condition.lisp
William Harold Newman [Sun, 2 Sep 2001 14:17:37 +0000 (14:17 +0000)]
 
0.pre7.28:
	changed fasl file extension to .fasl
	Since fasl file extensions aren't backend-dependent any more,
		now they're controlled by *FASL-FILE-TYPE* instead
		of *BACKEND-FASL-FILE-TYPE*.
William Harold Newman [Fri, 31 Aug 2001 17:59:39 +0000 (17:59 +0000)]
 
0.pre7.27:
	cleanup of leftover search list stuff..
	..got rid of ENUMERATE-SEARCH-LIST
	..renamed DEF!STRUCT SEARCH-LIST to LOGICAL-HOSTNAME, since
		it's now used only to represent the stuff before the
		colon in logical pathnames
William Harold Newman [Thu, 30 Aug 2001 00:10:56 +0000 (00:10 +0000)]
 
0.pre7.25:
	got rid of :SB-CONSTRAIN-FLOAT-TYPE as a separate target
		*FEATURES* option controlling the build (instead
		hardwiring it to always be on)
	removed some CROSS-FLOAT-INFINITY-KLUDGE SB-XC-HOST
		conditionalization from srctran..
	..Defining support functions is ok, as long as we don't
		actually execute the paths which mess with floating
		point infinities.
	..Stuff which doesn't use floats should be OK, too: ASH,
		LOGNOT, LOGAND, LOGIOR, LOGXOR..
	..Things which work with integers exclusively (not floats)
		should be safe.
William Harold Newman [Wed, 29 Aug 2001 23:22:35 +0000 (23:22 +0000)]
 
0.pre7.24:
	got rid of :SB-PROPAGATE-FLOAT-TYPE and
		:SB-PROPAGATE-FUN-TYPE as separate target *FEATURES*
		options controlling the build, instead hardwiring
		them to always on; and rewrote
		CROSS-FLOAT-INFINITY-KLUDGE so that stuff like
			#!+sb-propagate-foo-type
		becomes
			#-sb-xc-host ; (See CROSS-FLOAT-INFINITY-KLUDGE.)
		instead; and similarly stuff like
			#!-sb-propagate-foo-type
		becomes
			#+sb-xc-host ; (See CROSS-FLOAT-INFINITY-KLUDGE.)
	--
	Remember to delete 'em from base-target-features.lisp-expr.
	Build SBCL with itself to test this change, since I had so
		much trouble with it.
	Document :SB-PROPAGATE-FOO-TYPE changes in NEWS.
	Crib "what is CROSS-FLOAT-INFINITY-KLUDGE" text.
William Harold Newman [Tue, 28 Aug 2001 03:55:51 +0000 (03:55 +0000)]
 
0.pre7.22:
	used %FUNCALL-IN-FOOMACROLET-LEXENV for SYMBOL-MACROLET too
		(this time noticing that (MAKE-LEXENV :FUNCTIONS ..)
		isn't the same as (MAKE-LEXENV :VARIABLES ..)!)
William Harold Newman [Tue, 28 Aug 2001 03:10:15 +0000 (03:10 +0000)]
 
0.pre7.21:
	..factored out some shared logic into
		%FUNCALL-IN-FOOMACROLET-LEXENV (though SYMBOL-MACROLET
		was left alone for now, since I had problems with it
		last time)
William Harold Newman [Mon, 27 Aug 2001 20:10:06 +0000 (20:10 +0000)]
 
0.pre7.20:
	more post-IR1-interpreter cleanup: grepped down and killed
		things matching FOR-INTERPRETER, COMPILE-FOR-EVAL,
		DEBUGGING-INTERPRETER, EVAL-IN-FRAME, and LAMBDA-EVAL
	deleted unused ALIEN:ALIEN-BOOLEAN symbol
	(Now that the IR1 interpreter is gone, and some other code too,
		this version has some 3400 (or 2.5%) fewer lines of
		Lisp source code than sbcl-0.6.13 did.)
William Harold Newman [Mon, 27 Aug 2001 19:01:02 +0000 (19:01 +0000)]
 
0.pre7.19:
	various avante-garde mostly-post-IR1-interpreter-ism
		reinterpretation of debug-int.lisp..
	..grepped down and killed things matching 'interpreted-debug-'
	..grepped down and killed things matching 'interpreted-code-'
	..added :CONSTRUCTOR NIL to the abstract base class
		DEBUG-FUNCTION
	..deleted unused debug-vm.lisp
	..deleted redundant SETF DOCUMENTATION operations (and updated
		corresponding slot comments in DEF!STRUCT DEBUG-SOURCE
		in some cases)
	..no need for DEBUG-SOURCE-ROOT-NUMBER to be inline
William Harold Newman [Mon, 27 Aug 2001 17:19:25 +0000 (17:19 +0000)]
 
0.pre7.18:
	miscellaneous post-IR1-interpreter cleanup..
	..put all of eval.lisp into the SB-BYTECODE package
	..made SB-BYTECODE package use SB-EXT, as other packages do
	..deleted INTERPRETED-FUNCTION stuff
	..renamed INTERNAL-EVAL (external) to %EVAL (internal)
	..moved eval.lisp after globaldb.lisp in
		stems-and-flags.lisp-expr, so that it can use the
		compiler macro form of INFO instead of full call
	..moved FIND-IF-IN-CLOSURE from SB!SYS (which is supposed to
		be system-dependent stuff) into SB!KERNEL; and then
		made it a private function, since it's only used in
		one place anyway
William Harold Newman [Mon, 27 Aug 2001 16:11:46 +0000 (16:11 +0000)]
 
0.pre7.17:
	now you don't see it, now you do: re-cvs-committed
		src/code/eval.lisp, so that now, I hope, CVS and I
		agree that my initial "cvs remove" has been revoked
		by my more recent "cvs add"
William Harold Newman [Mon, 27 Aug 2001 16:09:28 +0000 (16:09 +0000)]
 
0.pre7.16.1:
	(trying to unscrew the state of src/code/eval.lisp, since
		since CVS apparently *doesn't* think that "cvs add"
		undoes "cvs remove" when there is no intervening
		"cvs commit")
William Harold Newman [Mon, 27 Aug 2001 16:07:41 +0000 (16:07 +0000)]
 
0.pre7.16:
	Since this version builds nicely without :SB-INTERPRETER now,
		I can burn the bridges. Die, ill-begotten writhing
		mass of wacky special cases, crude hackery, and
		never-say-die ANSI-non-compliance! Begone back to the
		bit bucket that barfed you!..
	..deleted :SB-INTERPRETER stuff everywhere
	..deleted src/code/eval.lisp, src/compiler/eval-comp.lisp,
		and src/compiler/eval.lisp
	..renamed SB-EVAL package to SB-BYTECODE
	..renamed target-eval.lisp to eval.lisp (possibly confusing
		CVS; dunno what happens with "cvs remove" followed by
		"cvs add" without an intervening commit, but will soon
		find out:-)
	FUNCTION-DEBUG-FUNCTION should use ECASE to signal an error
		when it's confused, instead of just dropping a NIL
		into the bowels of the debugger and waiting to see
		what breaks later.
	TRY-TO-RENAME-INTERPRETED-FUNCTION-AS-MACRO goes away.
William Harold Newman [Mon, 27 Aug 2001 14:44:34 +0000 (14:44 +0000)]
 
0.pre7.15:
	merged flaky4_branch back into the main branch
	deleted :SB-INTERPRETER from base-target-features.lisp-expr
		(since I realized that I dunno whether this version
		builds with :SB-INTERPRETER any more, and I'm after
		all trying to be nice and not check excessively
		dain-bramaged nonworking versions into main branch)
William Harold Newman [Sun, 26 Aug 2001 23:30:09 +0000 (23:30 +0000)]
 
0.pre7.14.flaky4.13:
	(This version builds itself, and builds under CMU CL on Linux,
		and could be said to have no known new bugs compared to
		0.pre7.14, as long as we consider bugs 119, 120a,
		120b, 122, 123, and 124 to be old bugs revealed by
		the conversion, rather than new bugs introduced by the
		conversion.:-| So maybe I can stop calling it flaky
		now.:-)
	rationalized leaving the commented-out MACROLET test in
		tests/walk.impure.lisp commented out indefinitely. (See
		BUGS 124.)
William Harold Newman [Sat, 25 Aug 2001 19:12:51 +0000 (19:12 +0000)]
 
0.pre7.14.flaky4.12:
	commented out MNA's HANDLER-CASE patch from sbcl-dev 2001-07-16
		(merged in sbcl-0.6.12.51) in favor of the grotty old
		THROW/CATCH code, since the MNA code causes
			(DEFUN FOO1I ()
			  (IF (NOT (IGNORE-ERRORS
				     (MAKE-PATHNAME :HOST "FOO"
						    :DIRECTORY "!BLA"
						    :NAME "BAR")))
			      (PRINT "OK")
			      (ERROR "NOTUNLESSNOT")))
		to be compiled incorrectly. (I rather suspect that
		may not be a bug in the patch, but instead that the
		correct code generated by the patch exercises a bug
		elsewhere in the compiler.)
	redid indentation in MNA HANDLER-CASE code
	fixed #!+X86 (was #+X86) conditionalization in MNA
		HANDLER-CASE code
William Harold Newman [Fri, 24 Aug 2001 00:14:34 +0000 (00:14 +0000)]
 
0.pre7.14.flaky4.11:
	fixed map-tests.impure.lisp compiler problem: in
		GENERATE-BYTE-CODE-FOR-REF, replaced
		COMBINATION-ARGS with BASIC-COMBINATION-ARGS, since
		the CONTINUATION-DEST can be a MV-COMBINATION, not
		necessarily a COMBINATION (and BASIC-COMBINATION
		is a base class of both MV-COMBINATION and
		COMBINATION)
William Harold Newman [Thu, 23 Aug 2001 22:11:58 +0000 (22:11 +0000)]
 
0.pre7.14.flaky4.10:
	fixed FLOAT-RADIX problem in float.pure.lisp
	found bug 120a/120b in the #!-SB-INTERPRETER case of
		POSSIBLY-AN-INTERPRETED-FRAME, and rewrote it to
		work around the bug
	made INTERNAL-EVAL go on to call the function even when
		FAILURE-P, since that's the right thing to do when
		e.g. there are type mismatch errors on code paths
		which turn out never to be executed
	similarly, made COMPILE set FDEFINITION even when FAILURE-P
	also fixed bug in COMPILE (and added test case): it's
		supposed to set MACRO-FUNCTION when NAME names a macro
William Harold Newman [Thu, 23 Aug 2001 14:09:01 +0000 (14:09 +0000)]
 
0.pre7.14.flaky4.9:
	(This version builds itself without :SB-INTERPRETER. Still a
		few regression tests commented out, though..)
	I looked at nlx stuff in byte-comp.lisp for a while, without
		getting much insight. So I mailed in a bug report to
		cmucl-imp@cons.org, in hopes that they'll fix it (or
		maybe even have already fixed it since 18c). Meanwhile
		I made a workaround, adding declarations to force the
		ARRAY translator to be compiled to native code.
William Harold Newman [Thu, 23 Aug 2001 01:15:32 +0000 (01:15 +0000)]
 
0.pre7.14.flaky4.8:
	(This version presumably builds itself, because I didn't make
		any very exciting changes since the last version that
		built itself; but I haven't actually tested.)
	We no longer need the distinction between PARSE-ALIEN-TYPE and
		%PARSE-ALIEN-TYPE, and it obscured the
		couldn't-byte-compile-FIND-ESCAPE-FRAME bug, so I
		eliminated it.
	I didn't fix the couldn't-byte-compile-FIND-ESCAPED-FRAME bug,
		but I find a much simpler test case which exercises
		the underlying bug, now recorded in BUGS as 119.
William Harold Newman [Wed, 22 Aug 2001 12:52:02 +0000 (12:52 +0000)]
 
0.pre7.14.flaky4.7:
	rewrote UNIX-FAST-SELECT as an inline function (and
		resurrected all the old argument DECLAREs)
	fixed weirdness in DISASSEMBLE..
	..Why does it use a different output format for
		(DISASSEMBLE (SB-DEBUG:ARG 0)) from the debugger
		prompt (where it properly inserts a space between
		bytecode and translation) and display of the
		same function with
		(DISASSEMBLE (SB-XC:MACRO-FUNCTION 'SB!EXT:WITH-ALIEN))
		from the main command prompt? I think it's weirdness
		with "~12T" in DISASSEM-BYTE-SAP. Try changing to
		" ~14T" instead.
	..Why does it stop output from disassembly of byte-compiled
		WITH-ALIEN at byte 83, when that looks like a
		completely unnatural stopping point? It seems to be
		that *PRINT-LINES* is rebound to a small value, and
		then the outer PPRINT-LOGICAL-BLOCK (used to prepend
		#\; to each line of output) tests the current
		dynamical value and bails out. So make PRETTY-STREAM
		grab the *PRINT-LINES* value at ctor time and use that,
		rather than the dynamic value, when deciding whether
		to truncate output
	bumped fasl file version number since PRETTY-STREAM layout
		changed
William Harold Newman [Wed, 22 Aug 2001 00:10:25 +0000 (00:10 +0000)]
 
0.pre7.14.flaky4.6:
	(This version can bootstrap itself without :SB-INTERPRETER.
		However, it can't pass all the original regression
		tests, and I even had to disable some code in
		debug-int.lisp in order to get it to build, so more
		work is needed before it becomes unflaky.)
	I wasn't making much progress on figuring out why the system
		can't cross-compile FIND-ESCAPED-FRAME when
		bootstrapping itself without :SB-INTERPRETER, so I
		I just stubbed out FIND-ESCAPED-FRAME.
	deleted unused 'find . | xargs egrep tty-process-group' stuff
	deleted unused SIGMASK macro
	deleted unused UNIX-SIGBLOCK and UNIX-SIGPAUSE functions
	moved F(sigsetmask) out of __*BSD__ conditionalization in
		undefineds.h so that GENESIS could find it (I dunno
		how it found it before. Perhaps old references
		to sigblock or sigpause caused sigsetmask to be
		slurped in too?)
William Harold Newman [Tue, 21 Aug 2001 19:58:13 +0000 (19:58 +0000)]
 
0.pre7.14.flaky4.5:
	(Oops: In the previous version, I worked on "reimplemented
		ONCE-ONLY so it expands into a single LET, so that
		DECLAREs inside work as they should" enough that I
		put it into the commit notes, but then I realized
		that using an inline function is a nice way to solve
		the UNIX-FAST-SELECT problemm, so I undid the ONCE-ONLY
		changes, but forgot to clean up the commit notes.)
	(This version builds under sbcl-0.6.13 with :SB-SHOW, and
		without :SB-INTERPRETER, in target *FEATURES*. Now
		maybe I can use the result to figure out why it can't
		build itself.)
	Maybe we don't need the extra space in DISASSEM-BYTE-COMPONENT
		after all.
	added :IGNORE-FAILURE-P for src/cold/cold-init in order to
		build with :SB-SHOW
	got rid of various early /SHOWs (before the definition of
		UNWIND in assem-rtns.lisp is loaded) so that the system
		could cold init
	chopped make-target-2.sh *PRINT-LEVEL* back down to 5 so that
		/SHOW statements terminate before hell freezes over
William Harold Newman [Mon, 20 Aug 2001 23:05:35 +0000 (23:05 +0000)]
 
0.pre7.14.flaky4.4:
	(This version still can't build itself, dying in
		cross-compilation of debug-int.lisp.)
	revised FUNCALL-IN-MACROLET-LEXENV to look more like
		FUNCALL-IN-SYMBOL-MACROLET-LEXENV
	reimplemented ONCE-ONLY so it expands into a single LET,
		so that DECLAREs inside work as they should
	commented out bogus macroexpansion-time DECLAREs in
		UNIX-FAST-SELECT
William Harold Newman [Mon, 20 Aug 2001 19:56:23 +0000 (19:56 +0000)]
 
0.pre7.14.flaky4.3:
	(This version builds under sbcl-0.6.12.1, but can't build
		itself, dying in cross-compilation of string.lisp.)
	added missing space in NEXT-BYTE in DISASSEM-BYTE-SAP
	removed bogus DECLAIM (TYPE SYMBOL *SHEBANG-FEATURES*)
	reenabled COMPILE 'IN-HOST-COMPILATION-MODE