This message announces the availability of Scheme release scm5c4.

New in scm5c4:

	* build.scm (compile-c-files linux): gcc -O2 produces unreliable
	objects for Cyrix 6x86 processor; -O2 option removed.
	* sys.c, scm.c, record.c, ramap.c: Changed some intern -> sysintern.
	* scm.h (ESTK_PARENT): (ESTK_PARENT_WRITABLEP):
	(ESTK_PARENT_INDEX): SCM_ prepended, definition moved to scm.h,
	now used in repl.c.
	* repl.c (handle_it): Fixed so stack traces extend before
	interrupt handler calls.
	(scm_stack_trace): Fixed for segmented environment stack.
	* repl.c (def_err_response): print out errobj if short string; if
	long string, print out first 57 characters and "...".  This makes
	messages about not finding Init???.scm more informative.
	* patchlvl.h (SCMVERSION): Bumped from 5c3 to 5c4.
	* ioext.c (directory-for-each): Added.
	* record.c rgx.c scm.texi socket.c subr.c sys.c unif.c: Callers to
	must_malloc and friends now check that length will fit in field.
	* scmfig.h sys.c (SHORT_SIZET): Added to detect whether sizet
	width or LENGTH field more restrictive.
	* rope.c (must_free_argv): changed to use must_free.
	* scm.h (LENGTH_MAX): Changed from fixed constant to cpp computed.
	(NUMDIGS_MAX): Added.
	* sys.c (gc_sweep): Continuation storage was not being counted
	when freed.
	* time.c (your_time): fixed scaling so numbers returned use full
	INUM range.
	* eval.c (m_and): (m_or): Special case for one argument.
	* setjump.h
	* sys.c (scm_make_cont): (scm_dynthrow): (egc_copy_roots):
	No longer copy scm_estk if CHEAP_CONTINUATIONS is #defined.
	* eval.c (ceval_1): Fix up environment stack accounting for
	CHEAP_CONTINUATIONS.
	* scm.c (scm_init_extensions): Added call to init_user_scm
	for RTL case.
	Moved #ifndef RTL to insure DIRSEP and GENERIC_NAME are #defined
	for RTL case.
	* build.scm Now builds archive called libscm.a rather than scm.a
	* Init5c3.scm (with-XXX-to-port): Oops. fixed earlier change.
	* scm.texi (Build Options): Build platform table in Makefile and
	@include.
	* dynl.c (l_dyn_call): (l_dyn_main_call): Now use new P_SHL macro,
	prevents compiler warning under hpux.
	* sys.c (scm_free_gra): Now sets elts pointer to zero.
	(free_storage): scm_free_gra now sets smobs and ptobs to zero.
	(egc_sweep): Give dead cells immediate values, prevents obscure
	gc bug seen in hpux.
	* sys.c (scm_estk_grow): (scm_estk_shrink): Deleted incorrect
	DEFER/ALLOW_INTS.
	(init_storage): SHORT_INT fixconfig message now suggests changing
	scmfig.h rather than setjump.h
	* scmfig.h (SHORT_INT): __alpha is.
	* eval.c (apply): Deleted redundant DEFER_INTS_EGC, added
	ALLOW_INTS_EGC to closure apply case.
	* sys.c (egc_copy_stack): Provide strict bound on live locations.
	* eval.c (apply): Added default case for tc7_specfun type,
	replaces special handling for (apply apply ...) and (apply
	call-with-current-continuation ...)
	* scm.h (ISYMSETVAL): renamed to MAKISYMVAL.
	* sys.c (scm_estk_reset): Now takes an argument giving the size of
	the environment stack to create, 0 gives a default size.
	(scm_estk_grow): (scm_estk_shrink): Rewritten to use segmented
	stack, so all of the stack need not be copied when the stack grows
	or when a continuation is captured.
	(scm_env_cons): (scm_env_cons2): (scm_env_cons_tmp):
	(scm_extend_env): Rewritten using local temporary for indexing
	into ecache.
	* scm.c: SIGPROF #undefined if LACK_SETITIMER is #defined, needed
	to build profiling version of SCM.
	* build.scm (read-version): Will use implementation-vicinity if
	scm-srcdir does not contain "patchlvl.h".
	* scm.c (run_scm): Fixed finals call loop
	* unif.c, sys.c, subr.c, socket.c, scm.h, scl.c, rgx.c, posix.c:
	Fixed argument types in calls to must_malloc_cell().
	* Link.scm (link-named-scm): simplified; prepping for hobbit5.
	* scm.c Added SIGVTALRM callback.
	* Init5c3.scm (profile-alarm-timer): Renamed from profile-timer,
	(virtual-alarm-timer): added.
	* sys.c (must_malloc_cell): Takes an argument specifying the CAR
	of the cell to be returned.
	* scm.h (MAKE_LENGTH): (MAKE_NUMDIGS): Preprocessor macros added.
	* build (build-from-argv): slib:warns if not successful.
	(bi): Exits with error indication when build not successful.
	* build.scm (build): Sense was wrong; heap-can-shrink renamed
	no-heap-shrink
	(batch:rebuild-catalog): always return #t.
	* sys.c (scm_init_gra): (scm_grow_gra): (scm_free_gra): GRowable
	Array type.
	(newsmob): (newptob): (add_final): Implemented using scm_gra type.
	* Init5c3.scm (profile-timer): (milli-alarm): Defined in terms of
	SETITIMER.
	* sys.c (sysintern): No longer changes the CDR of an existing
	symhash value cell if second argument is UNDEFINED.  For use with
	scm_setitimer, which uses symbols as keys, but not as identifiers.
	* scm.c (scm_proftimer): Removed.
	(scm_setitimer): Added, interface to setitimer/getitimer allowing
	use of ITIMER_REAL, ITIMER_VIRTUAL, ITIMER_PROF.
	* posix.c (scm_getgroups): added scm_protect_temp(&grps);
	* Init5c3.scm (with-input-from-port): (with-output-to-port):
	(with-error-to-port): Replicated procedure rather than using
	SWAPPORTS twice.  This in combo with repl.c change fixes Radey's
	strange multi-process bug!
	* repl.c (set_inp set_outp set_errp): Made variable swap atomic.
	Also changed so port argument can be closed.
	* sys.c (init_storage): Fixed estk initialization to work when
	restarted.
	* Init5c3.scm (read:sharp-char): Added, parses emacs style meta
	and control char syntax.
	* repl.c (lreadpr): Added callout to READ:SHARP-CHAR for otherwise
	undefined #\ read sequences, memoized references to READ:SHARP.
	* unif.c (resizuve): Fixed accounting of mallocated storage for
	strings and bitvectors.
	* sys.c (igc_for_alloc): (must_malloc): (must_realloc):
	(must_malloc_cell):
	(must_realloc_cell): Fixed accounting of mallocated storage.
	(igc):  Added malloc consistency check for patched gmalloc, conditional
	on #define DEBUG_GMALLOC.
	(gc_sweep): Fixed accounting of bignum storage for DIGSTOOBIG case.
	(intern): Avoid possible race condition by deferring ints during
	search.
	* scm.c (process_signals): Process from low numbers to higher, ala
	Unix signals.  More fatal errors should come earlier in the list.

1998-10-01  Bob Schumaker  <cobblers@netcom.com>
	* scm.h, repl.c, dynl.c, continue.h:
	CodeWarrior-Pro-3 port from Bob Schumaker <cobblers@netcom.com>
	* dynl.c: must_free_argv() was called with extra argument!
	* continue.h (SHORT_ALIGN): Port for `CodeWarrior Pro 3'.
	* repl.c, scm.h: declarations added for `CodeWarrior Pro 3'.

1998-10-16  Basile STARYNKEVITCH  <Basile.Starynkevitch@wanadoo.fr>
	* repl.c (lreadr): linum now incremented for LINE_INCREMENTORS
	within strings.

				-=-=-

Scm conforms to Revised^5 Report on the Algorithmic Language Scheme
and the IEEE P1178 specification.  Scm is written in C and runs under
Amiga, Atari-ST, MacOS, MS-DOS, OS/2, NOS/VE, Unicos, VMS, Unix and
similar systems.  ASCII and EBCDIC are supported.

Documentation is included explaining the many Scheme Language
extensions in scm, the internal representations, and how to extend or
include SCM in other programs.  Documentation is online at:

	     http://swissnet.ai.mit.edu/~jaffer/SCM.html

SCM can be obtained via FTP (detailed instructions follow) from:
 swissnet.ai.mit.edu:pub/scm/scm5c4.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/scm5c4.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/scm5c4.tar.gz

SLIB is a portable Scheme library which SCM uses:
 swissnet.ai.mit.edu:pub/scm/slib2c4.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/slib2c4.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/code/lib/slib2c4.tar.gz

JACAL is a symbolic math system written in Scheme:
 swissnet.ai.mit.edu:pub/scm/jacal1a8.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/jacal1a8.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/code/num/jacal1a8.tar.gz

HOBBIT is a compiler for SCM code:
 swissnet.ai.mit.edu:pub/scm/hobbit4d.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/hobbit4d.tar.gz

SLIB-PSD is a portable debugger for Scheme (requires emacs editor):
 swissnet.ai.mit.edu:pub/scm/slib-psd1-3.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/slib-psd1-3.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/utl/slib-psd1-3.tar.gz

SMG-SCM is an SMG interface package which works with SCM on VMS.
 swissnet.ai.mit.edu:pub/scm/smg-scm2a1.zip
 prep.ai.mit.edu:pub/gnu/jacal/smg-scm2a1.zip
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/smg-scm2a1.zip
A VMS version of Unzip is available by anonymous FTP from
 ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.

TURTLSCM is a turtle graphics package which works with SCM on MS-DOS
or X11 machines:
 swissnet.ai.mit.edu:pub/scm/turtlegr.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/turtlegr.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/turtlegr.tar.gz

XSCM is a X windows interface package which works with SCM:
 swissnet.ai.mit.edu:pub/scm/xscm-2.01.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/xscm-2.01.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/xscm-2.01.tar.gz

MacSCM is a Macintosh applications building package which works with
SCM (similar to XSCM).
 swissnet.ai.mit.edu:pub/scm/macscm.tar.Z
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/macscm.tar.gz

WB is a disk based, sorted associative array (B-tree) library for SCM.
Using WB, large databases can be created and managed from SCM.
 swissnet.ai.mit.edu:pub/scm/wb1a2.tar.gz
 ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/wb1a2.tar.gz

SIMSYNCH is a digital logic simulation system written in SCM.
 swissnet.ai.mit.edu:pub/scm/synch1a2.tar.gz
 prep.ai.mit.edu:pub/gnu/jacal/synch1a3.tar.gz

DLD is a C library package allowing SCM to dynamically load object
files on VAX (Ultrix), Sun 3 (SunOS 3.4 and 4.0), SPARCstation
(SunOS 4.0), Sequent Symmetry (Dynix), Atari ST, and a.out Linux
systems.
 prep.ai.mit.edu:pub/gnu/dld-3.3.tar.gz

SCMLIT.EXE (150k) is a no-frills compilation of SCM for DOS and MS-Windows.
Note: SCMLIT still requires slib2c4 and scm5c4 above.

#! implements "#!" (POSIX) shell-scripts for MS-DOS batch files.
 swissnet.ai.mit.edu:pub/scm/#!.zip

				-=-=-

  ftp swissnet.ai.mit.edu (anonymous)
  bin
  cd pub/scm
  get scm5c4.tar.gz
  get slib2c4.tar.gz
or
  ftp prep.ai.mit.edu (anonymous)
  bin
  cd pub/gnu/jacal
  get scm5c4.tar.gz
  get slib2c4.tar.gz

  `scm5c4.tar.gz' is a gzipped tar file of the C code distribution.
  `slib2c4.tar.gz' is a gzipped tar file of a Scheme Library.

Files in these directories with the ".gz" suffix are compressed with
patent-free gzip (no relation to zip).  The program to uncompress them
is available from
 prep.ai.mit.edu:pub/gnu/gzip-1.2.4.tar
 prep.ai.mit.edu:pub/gnu/gzip-1.2.4.shar
 prep.ai.mit.edu:pub/gnu/gzip-1.2.4.msdos.exe

Remember to use binary mode when transferring the files.
Be sure to get and read the GNU General Public License (COPYING).
It is included in scm5c4.tar.gz.

I sell IBM PC floppy disk sets with the source files, documentation,
and MS-DOS and i386 MS-DOS executables for $99.00.  To order, send
e-mail to jaffer @ rice-chex.ai.mit.edu.
