From db04688faa20f3576257c0fe41752ec435beab9a Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:25 -0800 Subject: Import Upstream version 5c3 --- ANNOUNCE | 240 +++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 166 insertions(+), 74 deletions(-) (limited to 'ANNOUNCE') diff --git a/ANNOUNCE b/ANNOUNCE index 770a9cc..102b42c 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,45 +1,142 @@ -This message announces the availability of Scheme release scm5b3. - -New in scm5b3 are: - - * mkimpcat.scm: 'hobbit, 'scmhob, and 'build added. - * Link.scm (compile-file link-named-scm): Fixed. Require of - strings removed. Tested with Hobbit 5x. - (scm:object-suffix): changed to ".o"; only used by link-named-scm. - * patchlvl.h (SCMVERSION): Bumped from 5b2 to 5b3. - * mkimpcat.scm: modified for new SLIB catalog arrangement. - * sys.c (gc_sweep): added `contin_bad' argument. When set, - gc_sweep will warn of any uncollected continuations of non-zero - length. This should make unexec problems less mysterious. - * Init.scm (home-vicinity): added. Used to find "ScmInit.scm". - * unexsunos4.c: added from emacs. - * unexhp9k800.c: added from emacs. Broken -- doesn't change the - segment sizes. - * unexalpha.c: added from emacs. - * build.scm (build C-libraries): changed horrible `supress-files' - field to `lib-support'. - (rebuild-catalog): added. Called by dll and dlls methods. - * scm.texi (Compiling and Linking Custom Files): Added to describe - how to use "build.scm" with custom files. - * Makefile (myscm4 myscm5): now delete slibcat and implcat to keep - them from getting stale. - * gmalloc.c: HP-UX B.10.10 A doesn't have getpagesize.h. - * sys.c (mark_syms): No longer mark the value cell because value - cells get returned by calls to intern(). This caused a rare GC - leak which showed up in large programs. - * scm.h (const): defined to comment for hpux native cc. - -Fri Oct 10 00:18:40 1997 Peter E. Davis - - * unexhp9k800.c: added HP-UX unexec support. - -Sun Sep 28 14:48:10 1997 Radey Shouman - - * ramap.c (array_imap): Fixed for zero-rank arrays arguments. +This message announces the availability of Scheme release scm5c3. + +New in scm5c3: + + * patchlvl.h (SCMVERSION): Bumped from 5c2 to 5c3. + * gmalloc.c: Imported gmalloc.c from emacs 20.2.1. + (check_block): (check_frag_blocks): Debugging functions added. + * sys.c (scm_protect_temp): Added, is currently, and probably will + remain, a noop to force allocation of a SCM temporary on the + stack. + * scl.c (big2str): Added call to scm_protect_temp. + * eval.c (map): (for_each): Added calls to scm_protect_temp. + * rgx.c (lregcomp): Added call to scm_protect_temp. + * scl.c (big2str): Take address of SCM temporary as gc protection. + * dynl.c (l_dyn_link): + conditionalized message on verbose. Cleaned up message. + * Link.scm (link:link): + prepend ./ to non-absolute sun-dl library paths. + * scm.texi, scm.doc, scm.1, r4rstest.scm, README, Init5c2.scm, ANNOUNCE: + ...-swiss => swissnet + * scm.h (verbose): read only macro for scm_verbose. + * repl.c (scm_verbose): renamed from verbose. + * scmfig.h (VERIFY_INTS): Added macro to print warnings if + interrupts are improperly allowed and CAREFUL_INTS is #defined. + (VOLATILE): Expands to `volatile' keyword if __STDC__ is #defined. + * sys.c (sys_errp): Interrupt safe system output port added. + (scm_estk_reset): (must_malloc): (must_realloc): (scm_make_cont): + Now should be run with ints deferred, no longer ever allow ints. + scm-estk_reset builds a new stack if scm_estk is BOOL_F. + * scm.c (process_signals): Modified to print deferred output to + sys_errp. + * eval.c (SCM_ENV_SAVE): (SCM_ENV_RESTORE): now ENV_SAVE, + ENV_RESTORE, local to eval.c + (apply): (ceval_1): Ints deferred before call to scm_make_cont, + which no longer allows ints. + (closure): Now takes the number of required closure arguments as a + second argument. + (m_lambda): Computes and memoizes the number of required arguments. + * repl.c (iprlist): Uses GCCDR so that fatal error messages during + gc may print better. + (handle_it): Call to scm_egc made conditional on NO_ENV_CACHE. + (growth_mon): (gc_start): (gc_end): (heap_report): Now use + sys_errp. + (ints_warn): Added for interrupt warnings using VERIFY_INTS. + (scm_stack_trace): Now completely prints stacks up to 20 deep, + rather than 10. + (def_err_response): Prints errobj if error is fatal. + (lroom): Made subr_1o for easier calling from C. + * Init5c2.scm (array-shape): No longer signals an error when + passed a non-array -- now returns whatever ARRAY-DIMENSIONS + returned (currently #f). + * scm.c (scm_proftimer): Also conditional on SIGALRM. + * sys.c (init_storage): Fixed initialization of tmp_errp so that + it is always correctly aligned. + * scm.c (process_signals): Fixed braino in code to search for + deferred signals. + (scmable_signal): Added POSIX signal unblocking call, conditional + on SIG_UNBLOCK, so Scheme signal handlers may be interrupted + before they exit. + * scm.c (scmable_signal): (err_signal): (init_signals): + (ignore_signals): + (unignore_signals): (restore_signals): Abstracted signal handling. + (fpe_signal): (bus_signal): (segv_signal): (alrm_signal): + (prof_signal): Removed. + * repl.c (process_signals): Moved to scm.c + * sys.c (must_realloc_cell): Now returns void. + * scm.c (prof_signal): (scm_proftimer): (ignore_signals): + (unignore_signals): Added handler for SIGPROF, raised via call to + setitimer (Scheme function PROFILE-TIMER). + * repl.c (handle_it): No longer saves scm_env, scm_env_tmp to + estk, they are protected by doing ecache gc. + (process_signals): Handles SIGPROF. + * sys.c (scm_fill_freelist): No longer always does gc. + (gc_mark): No longer bashes cdr of `free' cells, handle_it now + bashes more selectively. + (scm_egc): DEFER/ALLOW_INTS moved to minimize debugging ints_viol + messages -- some will still occur. + (scm_egc): No longer saves scm_env and scm_env_ptr to estk, they + are protected separately. To improve interrupt safety. + * unif.c (resizuve): eliminated unused variable `ptr'. + * sys.c (freeprint): Now prints cdr of new cell. + * repl.c (input_waiting): Now checks return value of select and + restarts if interrupted. This was causing CHAR-READY? to return + #T when no input was actually readable. + * sys.c (scm_egc): (scm_egc_copy_roots): Eliminated extra root + argument, made safe because EGC_ROOT is always called with ints + deferred. + (gc_mark): Check for ecache broken heart during mark -- fatal error. + (gc_sweep): Now uses HUGE_LENGTH instead of LENGTH for string + termination check. + (must_malloc_cell): (must_realloc_cell): Added. + (gc_for_alloc): Static function abstracts gc calls for malloc/realloc. + * unif.c (make_uve): Removed call to makestr in order to support + huge strings. + (resizuve): Now uses must_realloc_cell. + * subr.c (make_vector): (mkbig): (adjbig): Now use + must_malloc_cell, must_realloc_cell. + * socket.c (maksknm): Now uses must_malloc_cell. + * scm.h (ISYMNUM): Use only 8 bits for number, freeing some bits + for other uses. + * scl.c (makdbl): Now uses must_malloc_cell. + * rgx.c (lrgecomp): Now uses must_malloc_cell. + * repl.c (handle_it): Keep pointers to discarded new cells. + * record.c (rec_constr1): (init_record): Now use must_malloc_cell. + * posix.c (scm_getgroups): Now uses must_malloc_cell. + * dynl.c (l_dyn_link): (l_dyn_call): Moved NEWCELL out of deferred + ints sections. For dlopen versions, print more error messages. + * eval.c (macroexp1): now prints name of unbound variable. + (s_unbnd s_wtap): abstracted error message strings. + * eval.c (ceval_1): No longer make extra environment frame for + LETREC, since internal DEFINE is now rewritten. + * sys.c (scm_fill_freelist): added. Assures that at least + MIN_GC_YIELD cells are in freelis. This is used before returning + from interrupts. + * repl.c (handle_it): Discard 2 cells (because of CDR in NEWCELL). + Call scm_fill_freelist(); + * Init5c2.scm: removed DEFINED? conditionals for old SCMs. + * sys.c (scm_estk_grow): Now pushes estk ptr, with ints deferred. + * eval.c (ENV_PUSH): (ENV_POP): Now done with DEFER_INTS_EGC to + prevent problems with interrupt handlers that run Scheme code. + * sys.c (scm_estk_grow): Protected critical section with + DEFER/ALLOW_INTS + (must_malloc): (must_realloc): Protected igc call with + DEFER/ALLOW_INTS. + (scm_egc): Added DEFER/ALLOW_INTS around call to igc -- prevents + interrupts violation message in debug mode. + (igc): Now SCM_ENV_SAVE before any gc marking to fix gc bug + tickled by running Scheme code from interrupts. + (scm_egc): (scm_egc_copy_roots): Now take a single argument, a gc + root. Simplifies handling of the case where scm_egc calls igc, + and possibly itself. + * repl.c (growth_mon): Now prints "shrank" instead of "grew" if + the relevant limit decreased. + (handle_it): Do env cache gc before applying interrupt + handler, to protect data on the estk, which might move. -=-=- -Scm conforms to Revised^4 Report on the Algorithmic Language Scheme +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. @@ -48,84 +145,79 @@ 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://www-swiss.ai.mit.edu/~jaffer/SCM.html + http://swissnet.ai.mit.edu/~jaffer/SCM.html SCM can be obtained via FTP (detailed instructions follow) from: - ftp-swiss.ai.mit.edu:pub/scm/scm5b3.tar.gz - prep.ai.mit.edu:pub/gnu/jacal/scm5b3.tar.gz - ftp.cs.indiana.edu:/pub/scheme-repository/imp/scm5b3.tar.gz + swissnet.ai.mit.edu:pub/scm/scm5c3.tar.gz + prep.ai.mit.edu:pub/gnu/jacal/scm5c3.tar.gz SLIB is a portable Scheme library which SCM uses: - ftp-swiss.ai.mit.edu:pub/scm/slib2c0.tar.gz - prep.ai.mit.edu:pub/gnu/jacal/slib2c0.tar.gz - ftp.cs.indiana.edu:/pub/scheme-repository/code/lib/slib2c0.tar.gz + swissnet.ai.mit.edu:pub/scm/slib2c3.tar.gz + prep.ai.mit.edu:pub/gnu/jacal/slib2c3.tar.gz JACAL is a symbolic math system written in Scheme: - ftp-swiss.ai.mit.edu:pub/scm/jacal1a7.tar.gz + swissnet.ai.mit.edu:pub/scm/jacal1a7.tar.gz prep.ai.mit.edu:pub/gnu/jacal/jacal1a7.tar.gz - ftp.cs.indiana.edu:/pub/scheme-repository/code/num/jacal1a7.tar.gz HOBBIT is a compiler for SCM code: - ftp-swiss.ai.mit.edu:pub/scm/hobbit4d.tar.gz - ftp.cs.indiana.edu:/pub/scheme-repository/imp/hobbit4d.tar.gz + swissnet.ai.mit.edu:pub/scm/hobbit4d.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 + 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. - ftp-swiss.ai.mit.edu:pub/scm/smg-scm2a1.zip + 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: - ftp-swiss.ai.mit.edu:pub/scm/turtlegr.tar.gz + 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: - ftp-swiss.ai.mit.edu:pub/scm/xscm-2.01.tar.gz + 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). - ftp-swiss.ai.mit.edu:pub/scm/macscm.tar.Z - ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/macscm.tar.gz + 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. - ftp-swiss.ai.mit.edu:pub/scm/wb1a2.tar.gz - ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/wb1a2.tar.gz + swissnet.ai.mit.edu:pub/scm/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 Linux, VAX (Ultrix), Sun 3 (SunOS 3.4 and 4.0), SPARCstation -(SunOS 4.0), Sequent Symmetry (Dynix), and Atari ST. +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 #! implements "#!" (POSIX) shell-scripts for MS-DOS batch files. - ftp-swiss.ai.mit.edu:pub/scm/#!.zip + swissnet.ai.mit.edu:pub/scm/#!.zip -=-=- - ftp ftp-swiss.ai.mit.edu (anonymous) + ftp swissnet.ai.mit.edu (anonymous) bin cd pub/scm - get scm5b3.tar.gz - get slib2c0.tar.gz + get scm5c3.tar.gz + get slib2c3.tar.gz or ftp prep.ai.mit.edu (anonymous) bin cd pub/gnu/jacal - get scm5b3.tar.gz - get slib2c0.tar.gz + get scm5c3.tar.gz + get slib2c3.tar.gz - `scm5b3.tar.gz' is a gzipped tar file of the C code distribution. - `slib2c0.tar.gz' is a gzipped tar file of a Scheme Library. + `scm5c3.tar.gz' is a gzipped tar file of the C code distribution. + `slib2c3.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 @@ -136,8 +228,8 @@ is available from 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 scm5b3.tar.gz. +It is included in scm5c3.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. +e-mail to jaffer @ rice-chex.ai.mit.edu. -- cgit v1.2.3