This message announces the availability of Scheme release scm4e6. New in scm4e6 are: * bench.scm (benchmark): added. computes and display statistics on "pi.scm" benchmark. * Makefile (benchlit bench): targets added. Append stats to file "BenchLog". * scm.texi (Socket): added examples of chat servers and clients. (Internet Addresses and Socket Names): enlarged from "Internet Addresses". * socket.c (l_connect): BUF0 was missing from mode bits set in returned port. * build.scm (build-params): Added compiler-options and linker-options; added --batch-dialect and --script-name as aliases for -h and -w. * scmfig.h (HAVE_SELECT): Now defined for linux. * sys.c (igc): fixed off-by-1 error for sizeof save_regs_gc_mark. (gc_mark): fixed off-by-1 error for sizeof(CONTINUATION). These seem to fix a very obscure GC bug. * Init.scm (exec-self): Added. * repl.c (init_repl): DUMP sets RESTART to EXEC-SELF. * repl.c (tryload): Made tail-recursive so that dump, quit, exit, etc. will work as the last expression in a loading file. (scm_execpath): Split out from scm_unexec. * unexec.c: All Updated from emacs-19.34 -- no changes necessary. * gmalloc.c: * pre-crt0.c: * ecrt0.c: * unexelf.c: fixes Linux (ELF) dump bug. * build.scm (platform): linux renamed linux-aout. linux-elf fixed and renamed linux. (C-libraries): X11R6 moved library files on RedHat Linux. Linux graphics library now has entry (doesn't default). (compile-dll-c-files linux): (make-dll-archive linux): Now converts from ".o" objects to ELF ".so" form and "links" the usual libraries. * Link.scm (usr:lib x:lib): dynamic linking fixed for (linux ELF) dlopen. Libraries other than ".so" object not needed; eliminated by usr:lib and x:lib returning #f. * dynl.c (l_dyn_unlink): prints result of dlerror() on errors. * eval.c (nconc2last): If CAUTIOUS is defined, checks that APPLY's arglist and last element of arglist are LIST?s. * sys.c (igc): symhash GC can now be disabled with #define NO_SYM_GC. * Init.scm (boot-tail): Added FSF --help and --version options. Added --no-init-file as a synonym for -no-init-file. * scm.texi (File-System Habitat): improved wording and added examples. * scm.texi (Top): Renamed sections. * sys.c (mark_syms mark_sym_values): Split up mark_symhash() to immunize against accidental pointers. * repl.c (gc_ports_collected): added to instrument symbol GC. * scm.texi (Debugging Scheme Code): Added section. * eval.c (definedp): Changed from a memoizing macro to a `syntax'. From maximum entropy : * ioext.c, scmfig.h: support for SGI (tested with SGI IRIX 5.2/gcc) * ioext.c (file_set_position): If a port is bidirectional (e.g. a socket) it may be necessary on some systems to perform a file positioning operation when switching between reading and writing. This is required by ANSI C (ISO/IEC 9899:1990 7.9.5.3). Therefore, a file-set-position on a bidirectional port should not signal an error if fseek generates an ESPIPE -- the fseek operation actually "succeeded" in that it reset the I/O direction flag for the FILE. * repl.c (input_waiting): R4RS requires that "char-ready?" return "#t" at end-of-file. The semantics for "ioctl(..., FIONREAD, ...)" are such that it gives 0 on a socket that is closed (on the other side of the connection). If the system has select(), use that instead to get the correct behavior. * socket.c (l_listen): Treat sockets that have been "listened" as input-ports. This allows polling for new connections (e.g. with "char-ready?") instead of blocking in "socket:accept". * socket.c (l_accept): Fix type checking to agree with previous patch. From Radey Shouman * eval.c (unmemocar): The code in unmemocar to deal with ILOCs was never being executed. * sys.c (intern): fixed (new) symhash GC bug. * sys.c (igc): Added calls to mark_symhash() and sweep_symhash(). These GC unused symbols with a top-level value of UNDEFINED. (mark_symhash): added. (sweep_symhash): added. From Eric Hanchrow * scm.c (l_sleep): Ported to Windows NT (_WIN32) * ioext.c: Ported to Windows NT (_WIN32) -=-=- Scm conforms to Revised^4 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://ftp-swiss.ai.mit.edu/~jaffer/SCM.html SCM can be obtained via FTP (detailed instructions follow) from: ftp-swiss.ai.mit.edu:pub/scm/scm4e6.tar.gz prep.ai.mit.edu:pub/gnu/jacal/scm4e6.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/scm4e6.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/imp/scm4e6.tar.gz SLIB is a portable Scheme library which SCM uses: ftp-swiss.ai.mit.edu:pub/scm/slib2a6.tar.gz prep.ai.mit.edu:pub/gnu/jacal/slib2a6.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/slib2a6.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/code/lib/slib2a6.tar.gz JACAL is a symbolic math system written in Scheme: ftp-swiss.ai.mit.edu:pub/scm/jacal1a5.tar.gz prep.ai.mit.edu:pub/gnu/jacal/jacal1a5.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/jacal1a5.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/code/num/jacal1a5.tar.gz HOBBIT is a compiler for SCM code: ftp-swiss.ai.mit.edu:pub/scm/hobbit4d.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/hobbit4d.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/imp/hobbit4d.tar.gz SCMCONFIG contains additional files for the SCM distribution to build SCM on Unix machines using GNU autoconf. ftp-swiss.ai.mit.edu:pub/scm/scmconfig4e3.tar.gz prep.ai.mit.edu:pub/gnu/jacal/scmconfig4e3.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/scmconfig4e3.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/scmconfig4e3.tar.gz SLIB-PSD is a portable debugger for Scheme (requires emacs editor): ftp-swiss.ai.mit.edu:pub/scm/slib-psd1-3.tar.gz prep.ai.mit.edu:pub/gnu/jacal/slib-psd1-3.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/slib-psd1-3.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/utl/slib-psd1-3.tar.gz SLIB-SCHELOG is an embedding of Prolog in Scheme: ftp-swiss.ai.mit.edu:pub/scm/slib-schelog.tar.gz prep.ai.mit.edu:pub/gnu/jacal/slib-schelog.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/slib-schelog.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/utl/slib-schelog.tar.gz SMG-SCM is an SMG interface package which works with SCM on VMS. ftp-swiss.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 ftp.maths.tcd.ie:pub/bosullvn/jacal/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: ftp-swiss.ai.mit.edu:pub/scm/turtlegr.tar.gz prep.ai.mit.edu:pub/gnu/jacal/turtlegr.tar.gz ftp.maths.tcd.ie:pub/bosullvn/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: ftp-swiss.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). ftp-swiss.ai.mit.edu:pub/scm/macscm.tar.Z ftp.maths.tcd.ie:pub/bosullvn/jacal/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. ftp-swiss.ai.mit.edu:pub/scm/wb1a2.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/wb1a2.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/wb1a2.tar.gz DLD is a C library package allowing SCM to dynamically load object files on Linux, VAX (Ultrix), Sun 3 (SunOS 3.4 and 4.0), SPARCstation (SunOS 4.0), Sequent Symmetry (Dynix), and Atari ST. prep.ai.mit.edu:pub/gnu/dld-3.3.tar.gz -=-=- ftp ftp-swiss.ai.mit.edu (anonymous) bin cd pub/scm get scm4e6.tar.gz get slib2a6.tar.gz or ftp prep.ai.mit.edu (anonymous) bin cd pub/gnu/jacal get scm4e6.tar.gz get slib2a6.tar.gz `scm4e6.tar.gz' is a gzipped tar file of the C code distribution. `slib2a6.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 scm4e6.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@ai.mit.edu.