This message announces the availability of Scheme release scm5e2.

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, Windows,
Unix, and similar systems.

SCM is free software.  It is released under the GNU Public License
(GPL) with an exception allowing it to be linked with non-GPL
programs (see http://swiss.csail.mit.edu/~jaffer/SCM_LICENSE).

Documentation and distributions in several formats are linked from
SCM's home page:

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

Links to distributions of SCM and related softwares are at the end of
this message.

				-=-=-
scm5e2 news:

Hinting GCC branch-predictions nets 10% speed improvement for SCM
running the JACAL symbolic mathematics system.

  * scmfig.h (SCM_EXPECT_TRUE, SCM_EXPECT_FALSE): Added.
  (POSFIXABLE, NEGFIXABLE, UNEGFIXABLE): SCM_EXPECT_TRUE.
  * scmfig.h (__builtin_expect): Added stub for non-gcc compilers.

  * scm.h: SCM_EXPECT_TRUE and SCM_EXPECT_FALSE replace
  __builtin_expect().
  (ASRTER, ASRTGO): SCM_EXPECT_FALSE.
  * scm.h (INUMP, IMP, SINGP): Added __builtin_expect() netting more
  than 9% speed improvement in JACAL.

  * Makefile (scm5.opt, udscm4.opt): Commented out
  -fno-guess-branch-probability flag.
  * Makefile (udscm4.opt, scm5.opt): Condition
  -fno-guess-branch-probability on `type gcc'.
  * Makefile (scm5.opt, udscm4.opt): -fno-guess-branch-probability
  improves benchmark speed 10% on i686.
  (hfiles): Moved to top of file so that dependencies work.

  * byte.c, continue.c, crs.c, dynl.c, eval.c, gsubr.c, ioext.c,
  posix.c, ramap.c, record.c, repl.c, rope.c, sc2.c, scl.c, scm.c,
  scm.h, socket.c, subr.c, sys.c, time.c, unif.c, unix.c, x.c:
  Regularized `if' syntax.

  * scm.c (l_pause): __CYGWIN__ now has pause().
  * scmfig.h (LACK_FTIME): __CYGWIN__ now has ftime().
  * socket.c (l_lna, l_hostinfo, l_netinfo, l_setnet): Made
  conditional on __CYGWIN__.
  * ioext.c: __CYGWIN__ has <unistd.h>.

  * scl.c (lasinh, lacosh, latanh): Replaced by libc functions.
  * scl.c (sum, difference, divide): Added BIGDIG* cast to &z.
  * scl.c (numident): Don't bomb given bignums.
  * scl.c (makdbl): (+ -1/0 +5i) ==> -1/0; not 0/0.
  * scl.c (apx_log10): Removed unused variable.
  * scl.c (scm_magnitude): Renamed from magnitude().
  (scm_abs): Added, real-only.
  * scl.c (safe_add_1): Replaces add1.
  (scm_truncate): Renamed from ltrunc.
  * scm.h (scm_truncate): Renamed from ltrunc.
  (scm_floor, scm_ceiling): Added.
  * subr.c (absval): Moved to scl.c.
  * rope.c (num2dbl): Handle 0/0.
  * scl.c (inf2str): Changed to "+inf.0" and "-inf.0".
  (istr2flo): Parse "+inf.0", "-inf.0", and
  COMPACT_INFINITY_NOTATION.
  (istr2flo, inf2str): COMPACT_INFINITY_NOTATION flag enables +/0
  and -/0 infinity notations.

  * Transcen.scm (quo, rem, mod): New names for inexact quotient,
  remainder, and modulo.
  * Init5e1.scm (abs): Is no longer synonym for magnitude.
  * Transcen.scm (exact-round, exact-floor, exact-ceiling)
  (exact-truncate): Added SRFI-70 convenience functions.
  (limit): Removed.
  * Transcen.scm (sequence->limit): Removed use of 1/0 literal.
  * Transcen.scm (expt): 0^0 ==> 1.
  * scl.c (scm_intexpt): 0^0 ==> 1.
  * Transcen.scm, Init5e1.scm (infinite?, finite?): Added.
  * scl.c (makdbl, init_scl): Don't bother with scm_narn for MSC.
  (scm_finitep): Removed to Transcen.scm and Init5e1.scm.
  * scm.h (scm_narn): Renamed from infi.

  * r4rstest.scm (SECTION 6 5 5): Restored 0^0 test.

  * hobbit.scm (*c-keywords*): absval --> scm_abs; magnitude -->
  scm_magnitude.

  * rope.c, scm.c, scm.texi, scmmain.c, script.c, socket.c: Added
  const to argv.
  * scmmain.c, scm.h, scm.c, rope.c, repl.c: Added const decls.

  * build.scm (build:command): Comment to script: [-p <platform>].
  * Makefile (turfiles): Added turtle-graphics files.
  * Makefile (DOSCM): Abstracted DOS zip creation.

  * unexelf.c: Imported from emacs-22.0.50 to fix FC4 build.

  * differ.c (diff_mid_split): Unused `m' argument removed.

  * scm.spec (slibpath, dumparch): Added.

From: Steve VanDevender
  * scmfig.h (SHORT_INT, CDR_DOUBLES): For __x86_64 (AMD Opteron).

From: Thomas Bushnell
  * scm.doc, scm.1: Corrected spelling errors.

				-=-=-

SCM source is available from:
 http://swissnet.ai.mit.edu/ftpdir/scm/scm5e2.zip
 swissnet.ai.mit.edu:/pub/scm/scm5e2.zip
 http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e2-1.src.rpm
 swissnet.ai.mit.edu:/pub/scm/scm-5e2-1.src.rpm
Also available as i386 binary RPM:
 http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e2-1.i386.rpm
 swissnet.ai.mit.edu:/pub/scm/scm-5e2-1.i386.rpm

SLIB is a portable Scheme library which SCM uses:
 http://swissnet.ai.mit.edu/ftpdir/scm/slib3a3.zip
 swissnet.ai.mit.edu:/pub/scm/slib3a3.zip
Also available as RPM:
 http://swissnet.ai.mit.edu/ftpdir/scm/slib-3a3-1.noarch.rpm
 swissnet.ai.mit.edu:/pub/scm/slib-3a3-1.noarch.rpm

JACAL is a symbolic math system written in Scheme:
 http://swissnet.ai.mit.edu/ftpdir/scm/jacal1b6.zip
 swissnet.ai.mit.edu:/pub/scm/jacal1b6.zip

SLIB-PSD is a portable debugger for Scheme (requires emacs editor):
 http://swissnet.ai.mit.edu/ftpdir/scm/slib-psd1-3.tar.gz
 swissnet.ai.mit.edu:/pub/scm/slib-psd1-3.tar.gz

SMG-SCM is an SMG interface package which works with SCM on VMS.
 http://swissnet.ai.mit.edu/ftpdir/scm/smg-scm2a1.zip
 swissnet.ai.mit.edu:/pub/scm/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:
 http://swissnet.ai.mit.edu/ftpdir/scm/turtlegr.tar.gz
 swissnet.ai.mit.edu:/pub/scm/turtlegr.tar.gz

XSCM is a X windows interface package which works with SCM:
 http://swissnet.ai.mit.edu/ftpdir/scm/xscm-2.01.tar.gz
 swissnet.ai.mit.edu:/pub/scm/xscm-2.01.tar.gz

MacSCM is a Macintosh applications building package which works with
SCM (similar to XSCM).
 http://swissnet.ai.mit.edu/ftpdir/scm/macscm.tar.Z
 swissnet.ai.mit.edu:/pub/scm/macscm.tar.Z

WB is a disk based, sorted associative array (B-tree) library for SCM.
Using WB, large databases can be created and managed from SCM.
 http://swissnet.ai.mit.edu/ftpdir/scm/wb1c2.zip
 swissnet.ai.mit.edu:/pub/scm/wb1c2.zip
 http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c2-1.src.rpm
 swissnet.ai.mit.edu:/pub/scm/wb-1c2-1.src.rpm
Also available as i386 binary RPM:
 http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c2-1.i386.rpm
 swissnet.ai.mit.edu:/pub/scm/wb-1c2-1.i386.rpm

SIMSYNCH is a digital logic simulation system written in SCM.
 http://swissnet.ai.mit.edu/ftpdir/scm/synch1b0.zip
 swissnet.ai.mit.edu:/pub/scm/synch1b0.zip

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.
 ftp.gnu.org:pub/gnu/dld/dld-3.3.tar.gz

SCM.EXE (314k) is a SCM executable for DOS and MS-Windows.
Note: SCM.EXE still requires slib3a3 and scm5e2 above.
 http://swissnet.ai.mit.edu/ftpdir/scm/scm.exe
 swissnet.ai.mit.edu:/pub/scm/scm.exe

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

Programs for printing and viewing TexInfo documentation (which SCM
has) come with GNU Emacs or can be obtained via ftp from:
 ftp.gnu.org:pub/gnu/texinfo/texinfo-4.0.tar.gz
