This message announces the availability of Scheme release scm5e1. New in scm5e1: * r4rstest.scm: Removed tests for 0^0 in anticipation of SRFI-70. * r4rstest.scm (test-numeric-predicates): Raised exponent so intransitive 128-bit-float implementations are caught. * r4rstest.scm (SECTION 6 5 5): Removed tests for (EXPT 0 -255) so Common-Lisp compatible EXPT won't bomb. Test EXPT inexactness contagion of zero cases. * r4rstest.scm (SECTION 6 5 5): Added exact tests for EXPT. Inexact EXPT corner cases should return inexacts. * r4rstest.scm: Added URLs. * Transcen.scm (limit): Check and report input errors. * Transcen.scm (limit): Added srfi-70 procedure. * Transcen.scm (expt, quotient, remainder, modulo): SRFI-70 extensions. * Transcen.scm (expt): Changed so (expt 0 -5) signals error. EXPT of zero returns zero or one matching input exactness. * Link.scm (link:link): Converted to use with-load-pathname. * Init5d9.scm (numerator, denominator): Check rational. * Init5d9.scm (numerator, denominator): Added. * Init5d9.scm (with-load-pathname): Moved from slib/require.scm. * Init5d9.scm (any-bits-set?, first-set-bit, bitwise-merge): Added remaining SRFI-33 aliases. * Init5d9.scm (read-array-type): Handle A:char. * Init5d9.scm (list->array, vector->array, array->vector): Added. * Init5d9.scm: Updated per SRFI-60. * Init5d9.scm (arithmetic-shift): Aliases ASH. * Init5d9.scm (read:array, read:sharp): Accept whole boatload of SRFI-58 sytnaxes. * Init5d9.scm (inexact->exact, exact->inexact): Identity when exacts-only. * Init5d9.scm (slib:eval-load): Converted to use (SLIB) with-load-pathname. * Init5d9.scm (slib:eval-load): Define moved to "slib/require.scm" * Init5d9.scm (read:array): Ignore third argument; line-numbers were hosing array reading. * build.scm (dlll gnu-win32): Changed flag to "-DSCM_WIN_DLL". (dlll microsoft-c-nt): Changed flag to "-DSCM_WIN_DLL". * build.scm (wb): Added for source in ../wb/. (build:command): Assume c-files are relative to cd; don't prefix c-files with scm-srcdir. (compile-dll-c-files): Many were missing include-spec "-I" call. * build.scm (compile-dll-c-files): For those platforms supporting shared object files, generate just one combining all FILES. * build.scm (compile-dll-c-files): Fixed -I for netbsd, openbsd. (compile-dll-c-files): Added -I for svr4-gcc-sun-ld. (file-categories): Renamed CORE from REQUIRED. * mkimpcat.scm: Support WB compiled in implementation-vicinity. * mkimpcat.scm: Added 'DIFF. * xgen.scm, build.bat, inc2scm: Replaced %0 ... %9 with %~f0 %* * scmhob.scm: Moved LOGICAL: aliases from logical.scm. * Makefile (install): Added db.so. (uninstall): Beefed up. * Makfile (scm5): Added target for undumpable architectures (FC3). * Makefile (SETARCH): Workaround for unexec on Fedora Linux i386. * Makefile (mydlls): Call BUILD separately for each dll. * Makefile (srcdir.mk): Include after target. Separated shell assignments and exports. * Makefile: (SHOBJS): Abstracted *.sl and *.so. * Makefile (db.so, rwb-isam.scm, wbtab.scm): Added. * Makefile (differ.so): Added target. * scm.spec (differ.so, Idiffer.scm): Added to %files. * scm.texi (MS-DOS Compatible Scripts): Replaced %0 ... %9 with %~f0 %* * scm.texi (SCMDB): Added section with link. (Hobbit): Moved notinfo stuff after Xlib so it appears same place in all products. * scm.texi (Sequence Comparison): Added. * scm.texi (SIOD copyright): Put in subsection. (The SCM License): Parallel Guile License text. * scm.texi (Automatic C Preprocessor Definitions): Added "sun". * scm.h (infi): Nonreal infinity added to sys_protects. * scm.h (SCM_WIN_DLL): renamed from SCM_DLL and DLLSCM. * scmfig.h (IS_INF): Removed. * scl.c (scm_complex_p): 0/0 is not complex. * scl.c (inf2str): Renamed from NaN2str(). (makdbl): Returns `infi' for unreal infinities. (scm_rationalp): Added (infinities not). * scl.c (scm_intexpt): EXPT of zero behaves like Common-Lisp. * scl.c (scm_intexpt): Bombed given (integer-expt 0 25). * subr.c (scm_copybitfield): Changed argument order (SRFI-60). * unif.c (scm_prot2type): Was not defaulting correctly. * unif.c (raprin1): Don't elide 1 from #1A. * unif.c, sys.c: Sun cc doesn't like fwrite declaration. * byte.c (scm_write_byte): Was hosed for even number of bytes. * byte.c (scm_substring_read): Fixed off-by-one reading backwards. * ramap.c (array:copy!): Renamed from array-copy!. (array_copy): Arguments reversed. * ramap.c (init_ramap): Its tc7_subr_2 not tc7_subr2! * ramap.c (rafe): Removed unused variables inc and base. * repl.c (err_head): Fixed "loaded from" messages and formatting. * repl.c (iprin1): Slashify uppercase chars in symbols. * repl.c (read_token, iprin1, lreadr): Handle slashified symbols. * repl.c (handle_it): Added comments. Call scm_fill_freelist() if interrupt lacks handler. * repl.c (scm_top_level): Default value of toplvl_fun just once. * differ.c, Idiffer.scm: Linear-space O(PN) sequence comparison. * eval.c (definedp): Added third (dummy) argument. From Radey Shouman: * Init5d9.scm (read:array): Make default rank one, not zero. (as before). * Init5d9.scm (read:array): (read:sharp): (load:sharp): Use read argument passed to READ:SHARP only for eval, otherwise unexpected line numbers cause trouble. eg #+(or) in load file. * script.c (find_impl_file): Find executable path accurately on MS windows. * scm.texi (Debugging Continuations): Added documenting frame-trace, frame->environment, scope-trace, frame-eval. * eval.c (toplevel_define) (scm_arity_check) (ceval_1) (scm_cvapply) (apply): Pass multiple arguments to captured continuations, eg: (call-with-values (lambda () (call/cc (lambda (k) 1 2))) list) Better error checking for multiple-value returns in repl. * sys.c (scm_dynthrow): Allow passing multiple arguments to a continuation captured in the producer argument of call-with-values. * subr.c (scm_logbitp): Fixed bug in range check for fixnum case. Eg (logbit? 10 #xffff) now correctly returns #t. * eval.c (macroexp1): Catch more syntax errors: ('f . f) * eval.c (m_case) (definedp): Avoid segfault in cases of syntax error. From Wim Lewis: * Makefile (scmflags): Use "cmp -s" instead of "diff". (x.h): Use -x $CPROTO to test for cproto's existence. -=-=- 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. 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 source is available from: http://swissnet.ai.mit.edu/ftpdir/scm/scm5e1.zip swissnet.ai.mit.edu:/pub/scm/scm5e1.zip http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e1-1.src.rpm swissnet.ai.mit.edu:/pub/scm/scm-5e1-1.src.rpm Also available as i386 binary RPM: http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e1-1.i386.rpm swissnet.ai.mit.edu:/pub/scm/scm-5e1-1.i386.rpm SLIB is a portable Scheme library which SCM uses: http://swissnet.ai.mit.edu/ftpdir/scm/slib3a2.zip swissnet.ai.mit.edu:/pub/scm/slib3a2.zip Also available as RPM: http://swissnet.ai.mit.edu/ftpdir/scm/slib-3a2-1.noarch.rpm swissnet.ai.mit.edu:/pub/scm/slib-3a2-1.noarch.rpm JACAL is a symbolic math system written in Scheme: http://swissnet.ai.mit.edu/ftpdir/scm/jacal1b5.zip swissnet.ai.mit.edu:/pub/scm/jacal1b5.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/wb1c1.zip swissnet.ai.mit.edu:/pub/scm/wb1c1.zip http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c1-1.src.rpm swissnet.ai.mit.edu:/pub/scm/wb-1c1-1.src.rpm Also available as i386 binary RPM: http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c1-1.i386.rpm swissnet.ai.mit.edu:/pub/scm/wb-1c1-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 (282k) is a SCM executable for DOS and MS-Windows. Note: SCM.EXE still requires slib3a2 and scm5e1 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