        Changes for the 28sep90jfb and the 09apr90 versions of Scheme->C

		                    28sep90

Features:	Added a garbage collector callback, after-collect, that
		reports garbage collector status to the user.

		Strings are double word aligned on implementations that require
		double alignment.

		Symbol names may start with "."

		Macros and constants defined by DEFINE-MACRO and
		DEFINE-CONSTANT can be compiled for use in augmented
		interpreters (made by scc -i) by including them within an
		(eval-when (load ...) ...) form.

Bugs fixed:	Duplicately defined variables are not detected by the
		compiler.

		CRC-32 computation by the compiler is now correct and
		is table driven.

		Errors in top level expressions are now reported as being
		in the top level rather than in the last defined procedure.

		Corrected a problem that resulted in bound variables being
		placed in the wrong display slots.

		Corrected a problem that caused the compiler to crash when
		a procedure with no statements following internal defines
		was compiled.

		Corrected a problem that resulted in constructs such as
		(list 'x x) being incorrectly compiled when x was a top level
		variable.

		Stack base setting uses runtime rather than compile time value
		when there is a Scheme main program.

		Corrected a problem that lead to errors not always entering the
		debugger when using the Scheme interpreter.

		Corrected a problem where floating point output values had
		"."'s inserted in error on Sun's.

doc/index:		Added after-collect and changed
			define-system-file-task.

gnuemacs/s2c-gnuemacs.el:	fixed problem building argument list in
				s2c-args-to-list.

scsc/closeana.sc:	Fixed several closure analysis problems.

     expform.sc:        Duplicately defined variable detection has been 
			improved.

			CRC computation for C variable name generation is
			now correct, table driven and does not use
			floating point numbers.

     gencode.sc:	Errors in top level expressions are now reported as
     			being at the top level rather than in the last defined
			procedure.

     lambdacode.sc:     Corrected a problem that put values in the wrong
     			display slots.

     macros.sc:		Better duplicate variable detection.

     misccode.sc:	Errors in top level expressions are now reported as
     			being at the top level rather than in the last
			defined procedure.

     miscexp.sc:	Corrected a problem that caused a crash when a
			procedure with no forms following internal defines was
			compiled.

			Corrected a problem that resulted in (list 'x x) not
			always being correctly compiled when x is a top level
			variable.

scrt/makefile-tail:	Added sci.c to files to remove on clean-sc-to-c.
     			Make all now passes along sccomp flag.

     heap.c:		Strings are now double word aligned in implementations
			requiring double alignment.

			Add after-collect status return.

     objects.c:		Correct setting of sc_stackbase with Scheme main
			programs.

     screp.sc:		Correct problem that lead to errors not always ending
			up in the debugger.

     scrt5.sc:		Changed define-system-file-task.

     scrt7.sc:		Symbol names starting with a "." are now allowed.

			Floating point output no longer inserts a "." in
			error on Sun's.

test/test23.sc:		Added additional tests.

cdecl/extern.sc:	Correct code generated for strings returned by
			procedures.

      typedef.sc:	Close file ports after writing declaration files.

xlib/xws10.cdecl:	Correct declaration of XrmGetResource.

     xwss.sc:		Correct argument checking in YSETSTANDARDPROPERTIES.

			Add YRMGETRESOURCE and YRMMERGEDATABASES.

     dummy.c:		Deleted.

     makefile:		Deleted dummy.

			xlibTYPES.sc is no longer dependent on cdecl.


Changes for the 09apr90jfb version of Scheme->C.

Features:	system file tasking.  See new procedures
		DEFINE-SYSTEM-FILE-TASK and ENABLE-SYSTEM-FILE-TASKS.

		register C globals with the garbage collector using
		sc_global_TSCP.

		Keyboard interrupts now allow one to examine and resume the
		current state of the computation.

Bugs fixed:	8-bit characters in strings are now correctly handled.

		Corrected some code generation problems related to set! to
		generational objects, load and store of C doubles, and
		return values from C double procedures.

		C-Pointer values always represented as unsigned values.

		Collect-all now correctly defined so compiled calls link
		correctly.


scrt/repdef.sc:		Add declarations for STACKTRACE, DOBACKTRACE, and
		        ON-INTERRUPT.

     scdebug.sc:	Disable task system file task dispatching while
			debugging and handling keyboard interrupts.
			Keyboard interrupts now simply interrupt the current
			computation.  To return to the top-level interpreter,
			enter (top-level).

     sceval.sc:		Use the LOOPSTACKTRACE macro to access debugging
			information in the stack.

     screp.sc:		Add *READING-STDIN* flag so that a keyboard interrupt
			during a READ by the interpreter simply aborts the
			read.  Keyboard interrupts are now handled by code 
			inside scdebug.sc.

     scrt5.sc:		When there are no characters available on a port, the
			I/O system dispatches system file tasks until
			characters are available.  N.B.  system file tasks
			never interrupt an executing Scheme program.  System
			file tasking is disabled while in the debugger.  New
			procedures: DEFINE-SYSTEM-FILE-TASK and
			ENABLE-SYSTEM-FILE-TASKS.

     scrt6.sc:		External definitions are now from repdef.sc.

     cio.h:		Delete sc_procedureaddress and add sc_bufferedchars.

     heap.h:		Correct declarations for sc_collect_2dall and
			sc_collect_2dall_v.

     objects.h:		Change declarations to use procedures for stack
			tracing.
			Add sc_global_TSCP to declare C globals to the garbage
			collector.
			Define sc_tscp_pointer as unsigned.
			STRING_CHAR now treats characters as unsigned.

     callcc.c:		Made static variables stack allocated to avoid
			problems if call/cc was called during a garbage
			clean up procedure.

     cio.c:		Deleted sc_procedureaddress and added sc_bufferedchars.

     heap.c:		Added more checking code that is enabled when SCGCINFO
			is 2 and corrected the C names for collect-all.

     objects.c:		Added stack trace back procedures.
			Changed sc_tscp_pointer to return an unsigned value.
			Added sc_global_TSCP to register C globals with the
			garbage collector.

     scinit.c:		Changed version and collect-all's C names.

     signal.c:		Filled out declaration of sc_onsignal1.


scsc/callcode.sc:	Correct code for calling a C procedure that returns a
			double value.

     main.sc:		Changed version date.

     misccode.sc:	Correct code for loading a value from a C global that
			is a double.
			Correct $SET-GENC to emit SETGENTL for top-level
			variables and use a temp variable to hold the value
			of an expression when using SETGEN.


scrt/predef.sc:		Added define-system-file-task and
			enable-system-file-tasks declarations.


test/makefile-tail:	Added test54

     test.sc:		Corrected the declaration for TEST-ERRORS.

     test13.sc:		Added a test to verify that characters extracted from
			strings	are treated as unsigned values.

     test50.sc:		Added a call to collect-all.

     test54.sc:		New tests.
     test54c.c


xlib/xwss.sc:		EINTR errors inside YSELECT are now correctly handled.
