This message announces the availability of Scheme Library release slib2a3. New in release slib2a3 is: From: johnm@vlibs.com (John Gerard Malecki) * priorque.scm (heap:heapify): internal defines incorrectly dependent on order-of-eval replaced with let*. From: mhc@edsdrd.eds.com (Michael H Coffin) * primes.scm (primes probably-prime?): added. prime.scm renamed to factor.scm. From: Matthew McDonald * struct.scm (define-record): added field-setters. From: johnm@vlibs.com (John Gerard Malecki) * sort.scm (sort:sort!): long standing bug in sort! with vector argument fixed. From: jaffer@ai.mit.edu (Aubrey Jaffer) * synclo.scm (internal-syntactic-environment top-level-syntactic-environment): replaced call to alist-copy. * require.scm (*catalog*): 'schelog, 'primes, and 'batch added. 'prime renamed to 'factor. * batch.scm: added * Makefile (schelogfiles): SLIB schelog distribution created. * comlist.scm (coerce type-of): added. * debug.scm (debug:qp): with *qp-width* of 0 just `write's. * paramlst.scm (getopt->parameter-list): Now accepts long-named options. Now COERCEs according to types. * require.scm (require:feature->path): Returns #f instead of string if feature not in *catalog* or *modules*. * getopt.scm (getopt-- argc argv optstring): added wrapper for getopt which parses long-named-options. * paramlst.scm (parameter-list-expand expanders parms): added. * report.scm (dbutil:print-report): added. * comparse.scm (read-command): added. Reads from a port and returns a list of strings: the arguments (and options). * repl.scm (repl:repl): Added loop, conditional on CHAR-READY? being PROVIDED?, which reads through trailing white-space. * paramlst.scm ((make-parameter-list parameter-names)): ((fill-empty-parameters defaults parameter-list)): ((check-parameters checks parameter-list)): ((parameter-list->arglist positions arities parameter-list)): ((parameter-list-ref parameter-list i)): ((adjoin-parameters! parameter-list parameters)): Procedures for making, merging, defaulting, checking and converting `parameter lists' (named parameters). ((getopt->parameter-list argc argv optnames arities aliases)): ((getopt->arglist argc argv optnames positions arities defaults checks aliases)): Procedures for converting options and arguments processed by getopt to parameter-list or arglist form. * dbutil.scm ((make-command-server rdb command-table)): added procedure which calls commands and processes parameters. * rdms.scm ((make-relational-system base)): add-domain and delete-domain commands moved to "dbutil.scm" (create-database). * debug.scm (debug:tracef debug:untracef): removed (duplicates of code in "trace.scm"). (trace-all): utility to trace all defines in a file added. * logical.scm (logbit? logtest): added. * dbutil.scm (dbutil:create-database)): Added parameter description tables for "commands". * require.scm (software-type): standardize msdos -> ms-dos. * comlist.scm (comlist:atom?): renamed from comlist:atom. * scheme48.init (char->integer integer->char): Now use integers in the range 0 to 255. Fixed several other problems. (modulo): Worked around negative modulo bug. * Makefile (slib48): `make slib48' loads "scheme48.init", `,dump's a scheme48 image file, and creates an `slib48' shell script to invoke it. * hash.scm (hash:hash-number): no longer does inexact->exact to exacts, etc. * trnscrpt.scm (read): no longer transcripts eof-objects. * dbutil.scm (open-database! open-database create-database): This enhancement wraps a utility layer on `relational-database' which provides: * Automatic loading of the appropriate base-table package when opening a database. * Automatic execution of initialization commands stored in database. * Transparent execution of database commands stored in `*commands*' table in database. * rdms.scm (make-relational-system base): Now more careful about protecting read-only databases. * dbutil.scm (dbutil:define-tables): added utility which provides: Data definition from Scheme lists for any SLIB relational-database. * alistab.scm rdms.scm (make-getter row-eval): evaluation of `expression' fields no longer done when retrieved from base tables (which made copying of many tables impossible). * alistab.scm (write-base): rewrote to not use pretty-print. * sc3.scm: removed (only contained last-pair, t, and nil). * Template.scm scheme48.init vscm.init (last-pair t nil): added. * mularg.scm pp.scm ratize.scm: copyright line removed from files (still lacking terms) less than 12 lines. * *.scm: Most missing copyright notices supplied. * rdms.scm (make-relational-system base): now checks field types when table is opened. Domains table now has foreign-table field. (for-each-row): ordered for-each function added. * alistab.scm (ordered-for-each-key supported-key-type?): added. * priorque.scm: Renamed everything to conform to coding standards and updated docs. Changed names: heap-extract-max to heap-extract-max!, heap-insert to heap-insert! and heap-size to heap-length. * Template.scm *.init (identity): Now required; moved from "comlist.scm". * alistab.scm (alist-table): Converted to representing rows as lists. Non-row operations removed. * rdms.scm (make-relational-system base): Most individual column operations removed. Only get and get* remain. Row operations renamed. Row inserts and updates distinguished. SLIB is a portable scheme library meant to provide compatibiliy and utility functions for all standard scheme implementations. SLIB includes initialization files for Chez, ELK 2.1, GAMBIT, MacScheme, MITScheme, scheme->C, Scheme48, T3.1, and VSCM. SCM also supports SLIB. Documentation includes a manifest, installation instructions, and coding standards for the library. Documentation on each library package is supplied. SLIB is a portable Scheme library: ftp-swiss.ai.mit.edu:pub/scm/slib2a3.tar.gz prep.ai.mit.edu:pub/gnu/jacal/slib2a3.tar.gz ftp.maths.tcd.ie:pub/bosullvn/jacal/slib2a3.tar.gz ftp.cs.indiana.edu:/pub/scheme-repository/imp/slib2a3.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 Programs for printing and viewing TexInfo documentation (which SLIB has) come with GNU Emacs or can be obtained via ftp from: prep.ai.mit.edu:pub/gnu/texinfo-3.1.tar.gz Files in these directories 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 ftp ftp-swiss.ai.mit.edu (anonymous) bin cd pub/scm get slib2a3.tar.gz or ftp prep.ai.mit.edu (anonymous) cd pub/gnu/jacal bin get slib2a3.tar.gz `slib2a3.tar.gz' is a compressed tar file of a Scheme Library. Remember to use binary mode when transferring the *.tar.gz files.