From ae2b295c7deaf2d7c18ad1ed9b6050970e56bae7 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:31 -0800 Subject: Import Upstream version 5e2 --- ANNOUNCE | 306 ++++++++++++++++++++++++++------------------------------------- 1 file changed, 126 insertions(+), 180 deletions(-) (limited to 'ANNOUNCE') diff --git a/ANNOUNCE b/ANNOUNCE index 1effd27..2146f92 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,190 +1,136 @@ -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. +This message announces the availability of Scheme release scm5e2. - * eval.c (macroexp1): Catch more syntax errors: ('f . f) - * eval.c (m_case) (definedp): Avoid segfault in cases of syntax - error. +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. -From Wim Lewis: +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). - * Makefile (scmflags): Use "cmp -s" instead of "diff". - (x.h): Use -x $CPROTO to test for cproto's existence. +Documentation and distributions in several formats are linked from +SCM's home page: - -=-=- + http://swissnet.ai.mit.edu/~jaffer/SCM.html -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. +Links to distributions of SCM and related softwares are at the end of +this message. -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: + -=-=- +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 . + + * 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 ]. + * 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. - 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 + 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-5e1-1.i386.rpm - swissnet.ai.mit.edu:/pub/scm/scm-5e1-1.i386.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/slib3a2.zip - swissnet.ai.mit.edu:/pub/scm/slib3a2.zip + 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-3a2-1.noarch.rpm - swissnet.ai.mit.edu:/pub/scm/slib-3a2-1.noarch.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/jacal1b5.zip - swissnet.ai.mit.edu:/pub/scm/jacal1b5.zip + 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 @@ -212,13 +158,13 @@ SCM (similar to XSCM). 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 + 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-1c1-1.i386.rpm - swissnet.ai.mit.edu:/pub/scm/wb-1c1-1.i386.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 @@ -230,8 +176,8 @@ files on VAX (Ultrix), Sun 3 (SunOS 3.4 and 4.0), SPARCstation 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. +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 -- cgit v1.2.3