summaryrefslogtreecommitdiffstats
path: root/ANNOUNCE
diff options
context:
space:
mode:
Diffstat (limited to 'ANNOUNCE')
-rw-r--r--ANNOUNCE357
1 files changed, 171 insertions, 186 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 102b42c..176bf90 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,145 +1,144 @@
-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.
+This message announces the availability of Scheme release scm5d2.
+
+New in scm5d2:
+
+ * Makefile (install): Make sure $(libscmdir)require.scm exists.
+ (libscmdir): Use instead of IMPLPATH.
+ * repl.c (scm_top_level): Corrected error test on exit in case 0
+ is not success.
+ (repl): Return MAKINUM(EXIT_SUCCESS) when exiting an interactive
+ session on EOF, this should not be an error.
+ * build.scm (define-compile-commands): Added.
+ (defcommand): Added.
+ (platform): formatted; simplified names.
+ * Makefile (features.txi): Added.
+ * scm.texi (Build Options): take feature documentation from
+ "features.txi".
+ * build (make-features-txi): Creates documentation of build
+ features from 'features table.
+ * build.scm (build:define-feature): Added. Feature definitions
+ moved to top level.
+ * Init5d1.scm (comment): Added.
+ (read:sharp): Added `#;' comment syntax, *feature* SHARP:SEMI.
+ * sys.c (scm_env_v2lst): Made tolerant to argc of zero,
+ since ecache_evalx may call it thus for DO loops binding
+ no values.
+ * eval.c (debug_env_save): Function for use in ENV_SAVE when the
+ CAREFUL_INTS paranoid debugging flag is #defined.
+ (ecache_eval_args): Now calls ecache_evalx(), which
+ evaluates a list of expressions and returns a list allocated on
+ the ecache in scm_env_tmp.
+ (m_do): (m_letrec1): (ceval_1): LET, LETREC, and DO now call
+ ecache_evalx instead of using inline loops, this seems to improve
+ speed by 5% - 10% for jacal and for simsynch simulation. C stack
+ usage will increase somewhat for large env frames.
+ (lookupcar): Added support for constant bindings, to be created by
+ LET, LETREC, LET*.
+ * scl.c (dbl_prec): Use dbl_mant_dig in preference of potentially
+ undefined DBL_MANT_DIG.
+ * gmalloc.c: include "getpagesize.h" conditionalized on __svr4__.
+ * build.scm (batch:chop-to-fit-system): Removed. Use new
+ batch:try-chopped-command instead.
+ (mysql): Added to features.
+ (build:build): Added comments describing stages and errors.
+ * Makefile: Added platform.txi dependency where dependent on
+ scm.texi.
+ * Makefile (scm.info require.scm): "cp -p" more portable than "cp -a"?
+ * sys.c (mode_bits): Fix for null output string case.
+ * unif.c (make_sh_array): Reduced consing by using scm_cvapply
+ instead of apply.
+ *sys.c (mode_bits): Now takes an optional buffer which, on exit,
+ will hold a mode string suitable to pass to fopen(), without any
+ SCM extension characters.
+ * r4rstest.scm (float-print-test): stop after first error.
+ * sys.c (try_open_file): Insure that only 'r', 'w', 'b', or '+'
+ may be included in mode strings passed to fopen.
+ * repl.c (scm_freshline): Added FRESHLINE.
+ * sys.c (init_storage): Make def_outp tracked, so freshline will
+ work with it.
+ * ramap.c (cind): Now takes C vector of indices, which may be
+ allocated on the C stack, rather than a uve.
+ (ramapc): (ramap): (ramap_cxr): (array_imap): (array_for_each): (rafe):
+ Use scm_cvapply instead of apply, allocate index and argument vectors
+ on the C stack for array ranks < 5.
+ * record.c (makrectyp): (recprin1): Use scm_cvapply instead of
+ apply.
+ (rec_prinset): Checks arity of argument procedure.
+ * sys.c (sfputc): (sfwrite): (sfgetc): Use scm_cvapply instead of
+ apply.
+ (mksfpt): Checks arities of soft port procedures when the port is made.
+ * eval.c (scm_cvapply): (scm_arity_check): Exported.
+ (makacro): (makmacro): (makmmacro): Call scm_cvapply rather than
+ consing up argument lists. Check arity of macro transformers
+ once, when syntax is defined.
+ * subr.c (make_vector): Fixed broken length argument test.
+ * sys.c (scm_env_v2lst): Now takes list tail in scm_env_tmp, so
+ tail can be allocated on ecache.
+ * repl.c (scm_top_level): Print out supplied program arguments for
+ failure exits to simplify debugging scripts.
+ * eval.c (varcheck): Fixed for RECKLESS case.
+ * eval.c (scm_arity_check): (macroexp1): Argument number checking
+ in macroexp1 abstracted as scm_arity_check, for use in map,
+ for-each ...
+ (scm_cvapply): Apply a function to a C vector of arguments, used by
+ map and for-each.
+ (scm_v2lst): Added for use in scm_cvapply.
+ (map): (for_each): Speed considerably improved: No longer allocate
+ Scheme vector temporaries for up to 5 list arguments. No longer
+ allocate unnecessary argument lists, allocate on ecache if
+ possible.
+ * repl.c (iprin1): Print out first elt of cclo environment --
+ makes record procedures more identifiable.
+ * sys.c (scm_env_v2lst): Now takes last cdr of list as argument.
+ * sys.c (scm_port_entry): Make 16-bit safe.
+ * Tscript.scm: File added to implement transcript-on,
+ transcript-off without burdening normal i/o.
+ * Init5d1.scm (transcript-on): (transcript-off): Now autoloads
+ from SCM/Tscript.scm
+ (_TRACKED): Added.
+ * socket.c (l_socket): (l_connect): (l_listen): Modified to use
+ port table.
+ (l_shutdown): (l_getpeername): (l_getsockname): Test for OPFPORTP, not
+ just OPPORTP.
+ * posix.c (l_pipe): Modified to use port table.
+ (prinpipe): Removed.
+ * ioext.c (reopen_file): (l_dup): (l_dup2): Modified to use port
+ table.
+ * crs.c (prinwindow): Removed.
+ (mkwindow): Uses scm_port_entry.
+ * repl.c (iprin1): Uses "name" field for printing ports.
+ (input_waiting): (wait_for_input):
+ (trans_on): (trans_off): Removed in favor of soft-port implementation.
+ (lputc): (lgetc): (lputs): (lfwrite): (lungetc): Removed check for
+ transcript, added line and column number support. Unread char now
+ kept in port table rather than CAR.
+ (lreadpr): (line_num): Removed line counting for load port, now done
+ using general line and column counting.
+ (scm_port_line): (scm_port_column): (scm_port_filename): Added.
+ (err_head): Now prints out multiple filenames for nested loads.
+ Tries to recover from recursive errors if current-error-port is a
+ soft-port.
+ * unif.c (uve_read): Removed ungetc call, if there is an unread
+ character, just call lgetc repeatedly for the first elt.
+ * sys.c (must_malloc): (must_realloc): Now check whether the heap
+ is initialized or not, so may be called earlier.
+ (scm_init_gra): (scm_grow_gra): Use above feature.
+ (scm_port_entry): Added, allocates entry in a port table used to store
+ unread characters, file names, line & column numbers, &c.
+ (mark_port_table): (sweep_port_table): Gc support for port table.
+ ptobfuns now has a "name" element, used for printing.
+ (prinfport): (prinstpt): (prinsfpt): Removed.
+
+ From David Yeh:
+ * scl.c (makdbl): Mods to compile using MSVC.
+ * scmfig.h: Don't #define SINGLES for MSC.
-=-=-
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.
+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
@@ -147,89 +146,75 @@ include SCM in other programs. Documentation is online at:
http://swissnet.ai.mit.edu/~jaffer/SCM.html
-SCM can be obtained via FTP (detailed instructions follow) from:
- swissnet.ai.mit.edu:pub/scm/scm5c3.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/scm5c3.tar.gz
+SCM source is available from:
+ http://swissnet.ai.mit.edu/ftpdir/scm/scm5d2.zip
+ ftp.gnu.org:pub/gnu/jacal/scm5d2.zip (FTP instructions follow)
SLIB is a portable Scheme library which SCM uses:
- swissnet.ai.mit.edu:pub/scm/slib2c3.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/slib2c3.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/slib2c7.zip
+ ftp.gnu.org:pub/gnu/jacal/slib2c7.zip
JACAL is a symbolic math system written in Scheme:
- swissnet.ai.mit.edu:pub/scm/jacal1a7.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/jacal1a7.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/jacal1b0.zip
+ ftp.gnu.org:pub/gnu/jacal/jacal1b0.zip
HOBBIT is a compiler for SCM code:
- swissnet.ai.mit.edu:pub/scm/hobbit4d.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/hobbit5x.tar.gz
+ ftp.gnu.org:pub/gnu/jacal/hobbit5x.tar.gz
SLIB-PSD is a portable debugger for Scheme (requires emacs editor):
- swissnet.ai.mit.edu:pub/scm/slib-psd1-3.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/slib-psd1-3.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/slib-psd1-3.tar.gz
+ ftp.gnu.org:pub/gnu/jacal/slib-psd1-3.tar.gz
SMG-SCM is an SMG interface package which works with SCM on VMS.
- swissnet.ai.mit.edu:pub/scm/smg-scm2a1.zip
- prep.ai.mit.edu:pub/gnu/jacal/smg-scm2a1.zip
+ http://swissnet.ai.mit.edu/ftpdir/scm/smg-scm2a1.zip
+ ftp.gnu.org:pub/gnu/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:
- swissnet.ai.mit.edu:pub/scm/turtlegr.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/turtlegr.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/turtlegr.tar.gz
+ ftp.gnu.org:pub/gnu/jacal/turtlegr.tar.gz
XSCM is a X windows interface package which works with SCM:
- swissnet.ai.mit.edu:pub/scm/xscm-2.01.tar.gz
- prep.ai.mit.edu:pub/gnu/jacal/xscm-2.01.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/scm/xscm-2.01.tar.gz
+ ftp.gnu.org:pub/gnu/jacal/xscm-2.01.tar.gz
MacSCM is a Macintosh applications building package which works with
SCM (similar to XSCM).
- swissnet.ai.mit.edu:pub/scm/macscm.tar.Z
+ http://swissnet.ai.mit.edu/ftpdir/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.
- swissnet.ai.mit.edu:pub/scm/wb1a2.tar.gz
+ http://swissnet.ai.mit.edu/ftpdir/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
+ http://swissnet.ai.mit.edu/ftpdir/scm/synch1b0.zip
+ ftp.gnu.org:pub/gnu/jacal/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.
- prep.ai.mit.edu:pub/gnu/dld-3.3.tar.gz
+ ftp.gnu.org:pub/gnu/dld/dld-3.3.tar.gz
+
+SCM.EXE (265k) is a SCM executable for DOS and MS-Windows.
+Note: SCM.EXE still requires slib2c7 and scm5d2 above.
+ http://swissnet.ai.mit.edu/ftpdir/scm/scm.exe
#! implements "#!" (POSIX) shell-scripts for MS-DOS batch files.
- swissnet.ai.mit.edu:pub/scm/#!.zip
+ http://swissnet.ai.mit.edu/ftpdir/scm/sharpbang.zip
+ http://swissnet.ai.mit.edu/ftpdir/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
-=-=-
- ftp swissnet.ai.mit.edu (anonymous)
- bin
- cd pub/scm
- get scm5c3.tar.gz
- get slib2c3.tar.gz
-or
- ftp prep.ai.mit.edu (anonymous)
+ ftp ftp.gnu.org (anonymous)
bin
cd pub/gnu/jacal
- get scm5c3.tar.gz
- get slib2c3.tar.gz
-
- `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
-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 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 @ rice-chex.ai.mit.edu.
+ get slib2c7.zip
+ get scm5d2.zip