Mon Nov 23 01:24:52 1987  Chris Hanson  (cph at kleph)

	* Shortened several filenames to make them fit in 14 characters
	when Emacs added numeric versions to them:

	old name	 new name
	--------	 --------
	character.c	 char.c
	character.h	 char.h
	dumpworld.c	 dmpwrld.c
	interpret.c	 interp.c
	interpret.h	 interp.h
	interrupt.h	 intrpt.h
	string.c	 ostring.c
	stringprim.c	 string.c
	stringprim.h	 string.h
	translate.h	 psbmap.h

Mon Jan 12 17:11:49 1987  Chris Hanson  (cph at kleph)

	* Moby rewrite, which started out as some simple bug fixes.
	Using the change log to record this message which is too long for
	RCS to handle at present. Interesting points:

	* New alternative names for some basic macros:

	Type_Code --> pointer_type
	Datum --> pointer_datum

	* New predicates for certain types:

	fixnum_p
	character_p
	string_p

	* `Primitive_Error' and `Primitive_Interrupt' close-coded to save
	space.  For extra savings, the following new procedures are available
	(where N ranges from 1 to 10):

	void error_wrong_type_arg_N ()
	void error_bad_range_arg_N ()
	void error_external_return ()

	* Many new argument tests for common things (again, N from 1 to 10).

	The first set just checks the type of the argument and signals a wrong
	type error if it fails the corresponding predicate.

	void guarantee_fixnum_arg_N ()
	void guarantee_character_arg_N ()
	void guarantee_string_arg_N ()

	This second set checks not only the type of the argument but also its
	range, signalling wrong type or bad range as appropriate.  Because
	these are implemented as procedures, they must be passed their
	argument explicitly.

	long guarantee_nonnegative_integer_arg_N (argument)
	long guarantee_index_arg_N (argument, upper_limit)
	long guarantee_ascii_character_arg_N (argument)
	long guarantee_ascii_integer_arg_N (argument)

	* A large class of bugs has been severely reduced, associated with
	sign extension when converting characters to longer integers.  This is
	what started all of this in the first place.

Fri Dec 12 9:03:00  1986  Jim Miller  (jmiller at meph)

	* utils.c
        Error in Translate_To_Point (dynamic winder) -- didn't
        work if to path was longer than from path.

Thu Dec  4 16:34:46 1986  Chris Hanson  (cph at kleph)

	* bitops.c:
	Update to reflect new bit string representation.

	* version.h:
	New version 9.10.

	* cmp68020.s:
	Changed arguments for `compiler_lookup_apply' from A0/A1 to D4/D5
	so they do not conflict with poppers.

	`compiler_assignment' was calling `Symbol_Lex_Set' instead of
	`Lex_Set', which prevented the correct assignment.

Wed Dec  3 23:40:22 1986  Guillermo J. Rozas  (jinx at geneva)

	* cmp68kgc.h:
	Fix bug: conditional had = rather than ==.  This was preventing
	compiled code from being dumped by fasdump.

	* fasdump.c:
	Fix potential bug: Compiled_BH was being "called" with 2 rather
	than false as its In_GC flag.

	* Makefile:
	Make .s rule generate the assembly language corresponding to .oo,
	rather than .fo.

	* version.h

Wed Dec  3 06:42:55 1986  Chris Hanson  (cph at kleph)

	* nbitstr.c, utabmd.scm.99, storage.c, version.h:
	Implement new primitive `bit-string-zero?' which returns true iff
	the argument has all of its bits zero.

Tue Dec  2 20:56:56 1986  Guillermo J. Rozas  (jinx at geneva)

	* cmp68020.s: 
	Changes to lexpr interface: add extra argument indicating whether
	rest argument is present or not.  Previously always assumed such,
	but since this entry is used for procedures that only have
	optional arguments this is inadequate.  Bug fix: if GC interrupt
	requested but not enabled, needed to bump return address forward
	before invoking it.

	* nbitstr.c:
	The bitwise primitives (e.g. `bit-string-move!') were not
	returning any specific value.  Now they return #F.

	* New version: 9.7 version.h.
	
	* Add core dumping option when there is a trap: unix.c.

	* Fix stacklet bug: Previous_Restore_History_Stacklet is now
	initialized by Initialize_Stack(): stack.h, boot.c.
	
	* Make storage.c and nihil.c consistent.

Mon Dec  1 18:37:28 1986  Guillermo J. Rozas  (jinx at geneva)

	* New version: 9.6 version.h, utabmd.scm.98.

	* Primitives can back out correctly when invoked from
	compiled code: interpret.h, primitive.h, interpret.c, utils.c,
	cmp68020.s.
	
	* The length of the part of the stack used by compiled code is
	pushed by reenter_compiled_code and other return codes:
	extern.h, interpret.h, storage.c.

	* History is rotated appropriately when going from compiled code
	to interpreted code and viceversa: interpret.h, history.h. 
	
	* New copyright notices: scheme.h, history.h.

Tue Nov 25 01:25:41 1986  Guillermo J. Rozas  (jinx at geneva)

	* New version: 9.5 version.h, utabmd.scm.97

	* Add &MAKE-OBJECT: prim.c, prims.h, storage.c

	* Make trapping work under emacs: unix.c

	* Make etags happy with some things: boot.c & unix.c

	* The `m4' file is generated by the `make' process: Makefile

	* Rename cmp68020gc.h to cmp68kgc.h: Makefile, cmp68kgc.h

Mon Nov 24 03:34:34 1986  Guillermo J. Rozas  (jinx at geneva)

	* Fix return_to_interpreter handling by microcode so that it can
	be dumped and restored.  Among other things, the object dumped by
	band-dump is not the combination to eval on restore, but a cons of
	this and return_to_interpreter.

	Files modified:
	Makefile, version.h, returns.h, extern.h, errors.h, fasl.h,
	object.h, translate.h, gccode.h, cmp68020gc.h, array.h.
	boot.c, compiler.c, interpret.c, cmp68020.s, storage.c, purify.c,
	dump.c, gcloop.c, purify.c, fasdump.c, fasload.c.

	* Remove double inclusion of object.h in some files through array.h.

	* Clean up some Heap_In_Low_Memory conditionalization in
	fasload.c. 

Thu Nov 20 03:32:27 1986  Guillermo J. Rozas  (jinx at geneva)

	* Change the way signals are initialized/restored in unix.c so it
	is easier to add new handlers.

	* Add handlers for other common unix signals, and in particular,
	for floating exceptions and hardware traps.

	* Reorganize some code: there are no longer any primitives in
	unix.c, and there is a new file: sysprim.c which collects random
	system primitives.  chrys.c, vms.c, and unknown.c need to be
	reorganized similarly.

	* Make all the primitive names in storage.c be correct.

	* Drop a few fossils from unix.c and nihil.c.

	* Move a few things from unix.c to ttyio.c.

	* Remove cph's jmiller trap from hooks.c, and fix the name of
	fast-cwcc.

	* Files modified:
	 Makefile, utabmd.scm.96, config.h, extern.h, version.h, errors.h.
	sysprim.c, unix.c, storage.c, ttyio.c, nihil.c, prim.c, hooks.c,
	os.c.

Wed Nov 19 00:11:36 1986  Guillermo J. Rozas  (jinx at geneva)

	* Remove the bogus &gcd from the microcode: nihil.c, storage.c,
	version.h, and utabmd.scm.94.

	* Continue some of the changes started below.  Eliminate
	Recover_Lost_Objects, speed up some things in the garbage
	collector, and change gc daemons back to taking no arguments.
	Note that bf-gc.c and bf-purify.c have not been changed
	appropriately.

	* Files modified:
	interpret.c, gcloop.c, purify.c, daemon.c, storage.c, extern.h,
	fixobj.h, version.h, copyright.c, gccode.h, utabmd.scm.93.

Sat Nov 15 03:00:13 1986  Guillermo J. Rozas  (jinx at geneva)

	* Innumerabe GC related changes: Redo Fasdump to fit the new
	model, make all the GC-like processes handle compiled code, forbid
	compiled code from going to pure space, split Fix_Weak_Chain and
	clean it up.

	* Files modified:
	Makefile, copyright.c
	gccode.h, gc.h, cmp68020gc.h, version.h, extern.h, object.h
	gctype.c, fasload.c, fasdump.c, storage.c, prim.c, Ppband.c,
	Bintopsb.c, gcloop.c, daemon.c, purify.c, xdebug.c, bf-gc.c.
	

Thu Nov  6 17:46:49 1986  Guillermo J. Rozas  (jinx at geneva)

	* Make graphics and Pascal primitives go away.
	Files modified: bgraph.c nihil.c utabmd.scm.92

	* `Get_Coord' in bob-ran.c renamed to Make_Flonum.

	* New user file: bcircle.c which has the circle primitive
	from bob-ran.c .

Mon Nov  3 03:08:53 1986  Chris Hanson  (cph at kleph)

	* stringprim.c:
	Fix fencepost errors in all `find-previous' searches.

	* version.h:
	Version 5.0.13.

	* unixprim.c, process.c:
	Move `get-environment-variable' to `unixprim.c'.  Implement new
	primitives `current-user-name' and `get-user-home-directory'.

Thu Oct 30 23:03:17 1986  Chris Hanson  (cph at kleph)

	* hooks.c:
	Fix bug in usage of `with-interrupts-reduced' by causing it to
	explicitly check for raising of interrupt level.

Wed Oct 29 20:25:30 1986  Chris Hanson  (cph at kleph)

	* unix.c:
	Change startup so that interrupt help message isn't printed if
	`Under_Emacs' is true.

	* version.h:
	New `utabmd' is version number 91.  These changes are 5.0.12.
	Needed to change name of `return-address' to
	`compiler-return-address' to prevent conflict with existing name,
	which corresponds to `tc_return_code'.

	* cmp68020.s:
	Fix bug in `setup_closure_lexpr' -- the code was pretty screwed
	up, it had several problems.

Wed Oct 15 00:44:42 1986  Chris Hanson  (cph at kleph)

	* version.h:
	Update to release 5.0.11.

	* unix.c:
	Fix terminal initialization to treat `-emacs' flag as meaning that
	stdout cannot do tty operations.

Fri Oct 10 14:23:04 1986  Chris Hanson  (cph at kleph)

	* version.h:
	Update to release 5.0.10.  Update to `utabmd.bin.90'.

	* types.h, gccode.h, gctype.c:
	Add TC_COMPLEX.

	* cmp68020.s:
	GC interrupt code was referring to top byte of `IntCode' and
	`IntEnb' rather than the bottom byte.

	* utils.c:
	Change file operations to use os-independent calls.

	* hooks.c:
	R3Rewrite `apply' to traverse argument list twice.  This seems the
	simplest solution to the problems that the more `optimized'
	version was causing.

	* winder.h, utils.c, hooks.c:
	Add `guarantee_state_point' macro to make sure that the variable
	`Current_State_Point' contains a valid state point.

	* nihil.c:
	Add `Prim_Graphics_Set_Line_Style' to list of undefined primitives
	on non-bobcats.

	* scanprim.h:
	Bad use of `&User_Vector_Ref' changed to use `Nth_Vector_Loc'.

	* character.[ch]:
	Change name of variable `bits' to `bucky_bits' since that is
	preempted under Chrysalis.  Also made `toupper' and `tolower' be
	machine-independent (provided that the character set is ASCII,
	which is already assumed by the character set model).

	* fasload.c:
	For butterfly, allows cross-machine loading.

	* chrys.c, butterfly.c:
	Many small changes.

Mon Oct  6 18:57:56 1986  Chris Hanson  (cph at kleph)

	* version.h:
	Update version number of `utabmd' to 89.  Release is now 5.0.9.
	Various other changes for compiled code in several files.

	* bob-xt.c, array.c, image.h, bob-ran.c, image.c, array.h, fft.c:
	Myriad changes to PAS' image/array stuff.

Sat Sep 27 03:37:49 1986  Chris Hanson  (cph at kleph)

	* interpret.c, extern.h, storage.c, returns.h, errors.h, lookup.c,
	cmp68020.s:
	Extend the compiled-code interface to include environment
	operations.  Attempt to fix bug in `compiler_apply' with bad
	history interaction.  For time being, just ignore history.

Thu Sep 25 12:56:12 1986  Chris Hanson  (cph at kleph)

	* version.h, nbitstr.c:
	Fix bugs in bit-string code.  Add `read-bits!' and `write-bits!'.

Wed Sep 24 17:52:14 1986  Chris Hanson  (cph at kleph)

	* unix.c:
	Change `Ask_Me' procedure so that it never prints anything out if
	`Under_Emacs' is set.

	* version.h, scanprim.h, scanprim.c:
	Merge stone's latest changes.

Tue Sep 23 19:45:50 1986  Chris Hanson  (cph at kleph)

	* version.h:
	Release 5.0.7, plus update `utabmd' number.

	* unix.c, ttyio.c, fileio.c, character.c, stringprim.c,
	scanprim.c, character.h, stringprim.h, scanprim.h, object.h,
	Psbtobin.c:
	Separate OS dependencies from console I/O code.  Reorganize
	character macros and procedures.

	* hooks.c:
	Fix bug in `apply' primitive when used with stacklets.  Problem
	was that the list argument was copied into the heap, then pushed
	on the stack.  When stacklets are used, they might cons, writing
	over the copied list argument.  Solution is to use the other heap
	for the temporary storage.

	* stack.h, gc.h, boot.c, interpret.c, errors.h:
	Install a new termination code for GC_OUT_OF_SPACE.  Redesign
	stack overflow testing to cause a stack overflow interrupt when
	possible, rather than a microcode termination.

Mon Sep 22 18:32:31 1986  Panayotis A. Skordos  (pas at zohar)

	* version.h:
	Update version number.

	* bobcat.h, bgraph.c, bmouse.c, bob-xt.c:
	Split former `bobcat.c' file into many pieces to simplify overall
	structure.

	* array.h, array.c, fft.c, image.h, image.c:
	Many changes too numerous to recall.

Mon Sep 22 14:57:41 1986  Chris Hanson  (cph at kleph)

	* interpret.c, lookup.c:
	Fixed code which strips out futures to do so recursively (to
	eliminate chains of futures determined to be other futures)

	* types.h, gctype.c, gccode.h, const.h, compiler.c, interpret.h,
	interpret.c, errors.h, returns.h, storage.c, gc.h, boot.c, extern.h,
	fasload.c, version.h, compiler.h, config.h, stack.h, hooks.c,
	prims.h, future.c:
	Extensive changes to implement compiled code interface.

	* unix.c, fileio.c:
	Separation of file primitives from OS dependent interface.

Tue Sep  9 18:02:12 1986  Chris Hanson  (cph at kleph)

	* default.h:
	Removed definition of `getcwd' which was never used and conflicted
	with existing usage in `unix.c'.

	* unix.c, vms.c, chrys.c, unknown.c, storage.c, prims.h:
	Removed definition of `delete-file' primitive since it is the same
	as `remove-file'.

	* unix.c:
	Reimplemented `working-directory-pathname' to use hand-written
	`getcwd'.  Jinx claims this will probably work faster than system
	call, without errors.  Also made numerous small changes to format
	of other primitives in preparation for total redesign of OS
	interface.

Tue Sep  2 17:19:02 1986  Chris Hanson  (cph at kleph)

	* array.c, array.h, bobcat.c:
	Deleted large quantity of graphics primitives from `bobcat.c',
	trimming the file down to those primitives needed to support the
	documented 6.003 graphics.  Required changing the `array.[ch]'
	files because they depended on a utility procedure which was
	mistakenly implemented in `bobcat.c'.

Sat Aug 30 14:55:26 1986  Chris Hanson  (cph at kleph)

	* process.c:
	Changes made by MHWu for the spectrum.

	* console.c (Prim_Tty_Beep):
	Was using `curses' to signal a beep, which caused core dump for
	some reason.  Changed it to send a ^G to the console instead.
	This will probably need to be changed later.

	* console.c (Prim_Tty_Move_Cursor, Prim_Tty_Get_Cursor):
	Stubbed these out -- they also used `curses'.

	* bobcat.c (Prim_Graphics_Print, C_Print_Graphics):
	Changed these procedures to accept the name of the file to dump
	the screen into as an argument, rather than having it built into
	the microcode.

	* unix.c (OS_tty_tyi):
	Changed the behavior for immediate input when `Under_Emacs' is
	true so that it flushes the input buffer, then does a normal
	buffered input.

	* unix.c (Prim_under_emacs_p), storage.c, prims.c:
	Added this primitive to return the value of the `Under_Emacs'
	flag.

	* unix.c (working_directory_pathname):
	Changed this to return `getenv("HOME")' because `getpwd' takes an
	arbitrary amount of time and sometimes gets errors.  This will
	have to be fixed later.

	* unix.c (Ask_Me):
	This procedure no longer writes anything to the console if the
	`Under_Emacs' flag is true.  This is so that Emacs can send the
	extra interrupt character silently.
