New in this Release|
r1.4.0 adds several major enhancements. SISC now supports generic
procedures, on top of which is built the Scheme to Java (S2J) bridge
module. This allows seamless access to Java libraries and the
ability to call into Scheme from Java.
Multithreading capabilities have stabilized, allowing thread-safe
execution of distinct Scheme code as well as concurrent execution of
code protected by the threading libraries concurrency primitives.
Networking code (which has been present since 1.3.x) is now
documented. SISC provides access to a full IP networking stack,
accessed via ordinary Scheme ports. The API provides access to TCP,
UDP, and Multicast-UDP protocols.
Source annotations is new as well, which (when enabled) tracks
source-file position information through the expansion and compile
stages, allowing for call-traces of code in the event of an error
with line and column numbers. This is the most visible addition to
the debugging interface, which supports active (source-code
modification required) and passive (automatic) debugging.
SLIB support and many SRFIs are also included. SISC supports SRFIs
0, 1, 2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 23, and 24.
Finally, SISC accepts URLs in any I/O function that previously
accepted files as arguments.
"SISC for Seasoned Schemers", the official SISC user manual has
emerged from draft status and is now available on the SISC website.
Initially browseable in HTML format, PDF and Postscript versions will
appear in the future. The 70 page manual covers all SISC specific
libraries and constructs.
SISC is an extensible heap-based interpreter of Scheme running on
the Java VM, with an aggressively optimized, lightweight (<100k)
Scheme engine. SISC handily outperforms all existing Java
interpreters (often by more than an order of magnitude).
In addition, SISC is a complete implementation of the language. The
entire R5RS Scheme standard is supported, no exceptions. This
includes a full number tower including complex number support,
arbitrary precision integers and floating point numbers, as well as
hygienic R5RS macros, proper tail recursion, and first-class
continuations (not just the escaping continuations as in many limited
Scheme systems). SISC also attempts to implement the standard as
correctly as possible, while still providing exceptional performance.
Finally, SISC provides useful real-world extensions, such as
networking, elegant exception handling, a scope-friendly module
system, and a Java foreign-function interface.
Downloads and More Information
Source code and binaries, a comparison of Java Scheme systems, and
SISC documentation can be found on the web at:
SISC is Free Software. It is released simultaneously under the GNU
General Public License (for free-software projects), and the Mozilla
Public License (for commercial entities). The documentation is
available under the GNU Free Documentation License.