SISC project is an extensible Java based interpreter of the algorithmic language Scheme. SISC uses modern interpretation techniques, and handily outperforms all existing JVM 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 hygenic 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.
SISC also provides useful real-world extensions, such as networking, elegant exception handling, a scope-friendly module system, support for SLIB, numerous SRFIs, and a Java foreign-function interface.
Finally, native functionality can be added through the use of Modules, extensions that may add new types, values, and functions to the language. These extensions can be packaged into scopable modules at the Scheme level as well.
SISC is released simultaneously under the terms of the Mozilla Public License (MPL) v1.1 and the GNU General Public License (GPL) v2. Users/Developers may choose which ever license suits their goals.
What's New in This Release:
· Fixed a bug in error handling triggered by the recycling of escaping continuations. Bug #1585900.
· Fixed a bug in eval which evaluated code in the wrong environment when a custom environment was used, breaking |load|. Bug #1650514.
· Fixed return value of |read-string|, which should be the eof object, not -1. Bug #1653382.
· Fixed a bug in LCM and GCD's recursions. Bug #1640371.