SCM5d1 Released 
Author Message
 SCM5d1 Released

This message announces the availability of Scheme release scm5d1.

New in scm5d1:

SCM has the rudiments of an X11 interface.

        * x.c (init_x): Load "xevent.scm".
        * xtest.scm: Test key-press event.
        * xevent.h: Generated by "xgen.scm"
        * xevent.scm: Generated by "xgen.scm"
        * requires.scm: Sample "require.scm".
        * Xlibscm.texi (Event): Documented x:event-ref.
        * sys.c (scm_egc): More robust test for sufficient cells in
        * eval.c (wrapenv): Will no longer wrap an already wrapped
        * repl.c (def_err_response): Now prints "expand-time environment"
        message only when relevant.
        * xgen.scm (event-map): Added.
        * x.c: Absorbed event_names into "xevent.h".
        * repl.c (def_err_response): Error message for expand-time only
        * eval.c (lookupcar): (id_denote): Now handle environment objects
        in scm_env, lookupcar will complain if this happens in a run-time
        (rather than expand-time) context.
        (eval_syntax):  Added, to be used in Macroexpand.scm for LET-SYNTAX,
        (ceval_1): Fixed bug in eval.
        * scm.h (ENVP): exported macro from eval.c.
        * eval.c (apply): Removed some unreached statements, merged
        duplicate code in tc7_specfun case.
        * eval.c: (ceval_1): Made EVAL tail recursive.
        Cleaned up some stack tracing cases, renamed POP_TRACE
        to TOP_TRACE, since POP_TRACE sounds as though it should be the
        inverse of PUSH_TRACE.
        (ceval_1): Now modifies stack trace only after an estk
        frame may be pushed, that is, when some invocation of eval may
        modify the environment.  The bottom of the stack trace (the form
        being evaluated during a call to a subr) is kept in a global
        `scm_trace'.  Nested expressions involving primitives now give
        more accurate stack traces, without a speed penalty.
        (map): (for_each):  Always push an estk frame for the sake of stack
        * repl.c (scm_stack_trace): Now may print out the value of the
        global `scm_trace' as the top of the stack trace.
        * repl.c: Include <sys/types.h> for Cygwin, needed for select
        support macros.
        * scmfig.h: Define HAVE_SELECT for the Cygwin environment.
        * repl.c (scm_stack_trace): Put semi colons after frame numbers in
        stack trace, rather than colons so emacs will not try to balance
        * build: Require build.scm in program-vicinity, since build.scm
        may not be installed in implementation-vicinity.
        * repl.c (def_err_response): Changed setjump to setjmp when
        setting up safeport.
        * Makefile (incdir): Added to abstract include directory location.
        * xgen.scm: Rewritten.  generates xevent.h and xevent.scm from
        * inc2scm (scm<-usr/includes): System include path can be passed
        as argument.
        * unif.c (arrayp): Fixed problem with immediate arguments.
        (scm_prot2type): Added, abstracts prototype ->
        internal-array-type mapping. Accepts positive bignums as uvect
        prototypes if they are small enough to be elements of a uvect,
        similarly for negative bignums and ivects.
        (make_uve): (arrayp): Now use scm_prot2type.
        SINGLES no longer need to be #DEFINEd in order to allow fvects.
        * ramap.c:  Modifications for fvects if SINGLES not #DEFINEd.
        * r4rstest.scm: Added named LET test for scope of init forms.
        * eval.c (m_let): Changed scope of init forms in named LET, to
        conform to R5RS, in response to posting of Allegro Petrofsky

        * crs.c (lwinsch): Renamed from lwinsert.  Why were idlok and
        nodelay commented out?
        * Xlibscm.texi: Pulled out of "scm.texi".
        * scl.c (llog2 lpow10): renamed from log2 and lpow10, which
        conflicted with djgpp include file /d/djgpp/include/math.h.
        * eval.c (lookupcar): Combined some error checking cases.
        (scm_env_ref): Low level support for hygienic macro expansion.
        * Macroexpand.scm (macro:expand): Added for hygienic macro expansion.
        * Macro.scm (renaming-transformer): Now passes a memoizing RENAME
        procedure, so that renaming the same identifier results in renamed
        identifiers that are EQV?  per "Hygienic Macros Through Explicit
        * Init5d0.scm (defconst): Now allows redefinitions without effect
        in the sense of EQUAL?  rather than EQV? to allow reloading code
        defining constant list structure.
        * r4rstest.scm (test-eq?-eqv?-agreement): Added tests for eqv?
        vs. eq? agreement discussed in section "Equivalence predicates".
        * scl.c (inex_divbigbig): Was broken (did not return valid SCM)
        for some cases.
        * r4rstest.scm (test-inexact-printing): Added to check that
        (EQV? X (STRING->NUMBER (NUMBER->STRING X))) holds for inexact X.
        * scl.c (iflo2str): Revamped so that (EQV? X (STRING->NUMBER
        (NUMBER->STRING X))) holds for floating point X.  Somewhat as in:
        Burger & Dybvig
        "Printing Floating-Point Numbers Quickly and Accurately"
        < http://www.*-*-*.com/ ;
        But floating point rather than bignum arithmetic is used -- due to
        this state of sin one slop factor was introduced.  It would be
        good to check this on non-IEEE-754 architectures.
        (istr2flo): Now reads floating point numbers with exponents somewhat
        below -MAXEXP, since this such numbers can be represented with
        gradually underflowing denormals.
        * Makefile (require.scm): Added constructor.
        * sys.c (scm_maksubr): Added, returns a subr not (yet) bound to an
        interned symbol, abstracts the addition of the subr_table entry.
        (make_subr): Now uses scm_maksubr.
        * gsubr.c (make_gsubr): Now uses scm_maksubr (was buggily using
        old subr name encoding.)
        * eval.c (make_synt): Now uses scm_maksubr.
        * scm.h: Added prototypes for make_gsubr, scm_maksubr.
        * Init5d0.scm (identity): Now a subr: CR.
        * eval.c
        * gsubr.c
        * repl.c
        * scm.h
        * subr.c
        * sys.c (SNAME): Pointers to subr names now kept in a mallocated
        data structure, the top 16 bits of the CAR of a subr is an index
        into this table.  Eventually this should help support eg generic
        * sys.c (scm_grow_gra): Fixed error in mallocated accounting, made
        increment grow with allocated size.
        * Init5d0.scm (exec-self): Undo *script* meta-argument processing.
        * Init5d0.scm (read:sharp): Simplified somewhat; again accepts
        '#2((a b c) (1 2 3)) as array read syntax, with warning.
        * unif.c (raprin1): New write syntax for uniform vectors and arrays.
        (array2list): (list2ura): Fixed for zero-rank arrays.
        * Init5d0.scm (read:sharp): New read syntax for uniform vectors
        and arrays.
        * x.c (scm2int_pair): Generalized to accept uniform vectors and
        * eval.c
        * ramap.c
        * repl.c
        * rope.c
        * scl.c
        * scm.h
        * sys.c
        * unif.c
        Added uniform vector type for signed short integers, tc7_svect.
        The prototype is the symbol 'short, the print representation is
        not currently readable.  (Both items subject to change.)
        * x.c (x:close): Merged from x:close-display and x:destroy-window.
        Flushes after closing window.
        * x.c: Use OPN and other bits in type-word.  Fixed GC of closed
        windows and displays.
        * x.c: Added copyright notice.
        * mkimpcat.scm (edit-line): editline -> readline.
        * Makefile (mydlls): build edit-line separately to link in
        libraries correctly.
        * build.scm, mkimpcat.scm, x.c, x.h, x11.scm, xgen.scm, xscm.doc,
        xtest.scm: Xlib interface from xscm-2.01
        * repl.c (scm_warn): renamed from warn().
        * setjump.h
        * repl.c (scm_stack_trace):
        * sys.c (safewrite):
         Made all safeport operations consistently use the standard C
         setjmp, longjmp, and jmp_buf.
        * build.scm (build): -Dfreebsd no longer necessary for freebsd
        * findexec.c: freebsd -> __FreeBSD__.
        * ioext.c: freebsd -> __FreeBSD__.
        * time.c: freebsd -> __FreeBSD__.
        * build.scm (obj->): Added (was called but not defined).
        * build.scm (read-version): 5d0 READ as a number; Assemble
        characters till whitespace.

        * rgx.c: __FreeBSD__ include should be "gnuregex.h".
        * Transcen.scm (expt): R5RS: 0^z is 1 if z = 0 and 0 otherwise.
        * r4rstest.scm (test-inexact): Added tests for EXPT of zero.

        * Makefile (udscm5): Added '-s $(IMPLPATH)' for executable builds.
        * scm.h (ptobfuns): added const to puts() and fwrite() prototypes.
        * gmalloc.c: fixed compilation on hpux.

        * build.scm, findexec.c, scm.c, scm.texi, scmfig.h, time.c:
        amiga-gcc port.

        * sys.c (add_final): Fixed call to scm_grow_gra.
        * subr.c (promisep): Added PROMISE?


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://www.*-*-*.com/ ~jaffer/SCM.html

SCM can be obtained via FTP (detailed instructions follow) from:

SLIB is a portable Scheme library which SCM uses:

JACAL is a symbolic math system written in Scheme:

HOBBIT is a compiler for SCM code:

SLIB-PSD is a portable de{*filter*} for Scheme (requires emacs editor):

SMG-SCM is an SMG interface package which works with SCM on VMS.
A VMS version of Unzip is available by anonymous FTP from[ANONYMOUS.MACRO32]UNZIP.EXE.

TURTLSCM is a turtle graphics package which works with SCM on MS-DOS
or X11 machines:

XSCM is a X windows interface package which works with SCM:

MacSCM is a Macintosh applications building package which works with
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.

SIMSYNCH is a digital logic simulation system written in SCM.

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

SCM.EXE (265k) is a SCM executable for DOS and MS-Windows.
Note: SCM.EXE still requires slib2c6 and scm5d1 above.

#! implements "#!" (POSIX) shell-scripts for MS-DOS batch files.!.zip


  ftp (anonymous)
  cd pub/scm
  ftp (anonymous)
  cd pub/gnu/jacal

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

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

Fri, 01 Mar 2002 03:00:00 GMT  
 [ 1 post ] 

 Relevant Pages 

1. How do I release the SoundManager (was Release SoundManager)

2. 4tH version 3.3d, release 2 released!

3. VO Tools Release 2.050 Released to Production

4. GHC 4.08.1 released (bug-fix release)

5. New release of Linz Oberon V4 Release 2.2

6. NEW RELEASE: Linz Oberon V4, Release 2.1

7. NEW RELEASE: Oberon System 3, Release 2.2

8. NEW RELEASE: Oberon System 3, Release 2.2

9. RELEASED - StandaloneZODB 1.0 release candidate 1

10. Sybase module 0.30 (Graham Ashton release) released

11. csv-0.4 (John Machin release) released

12. Sybase module 0.24 (Timothy Docker release) released


Powered by phpBB® Forum Software