Release notes for IronScheme 1.0 Beta 3a (bug-fix update)
What is IronScheme?
IronScheme will aim to be a conforming R6RS Scheme implementation on the Microsoft DLR.
IronScheme provides 2 run modes: either via direct invocation on the commandline or via a REPL interactive environment.
IronScheme can also used an embedded scripting library in your .NET programs.
With 1.0 beta 3, IronScheme implements the entire R6RS Scheme standard, and only fail 6 of 8871 tests in the PLT R6RS test suite.
IronScheme runs on MS .NET and Mono. Unfortunately, it does not seem to work under 64bit on Mono.
Notably lacking for R6RS
- call/cc only supports escape continuations, trying to re-invoke a continuation will result in an error
- during development of beta 2, I made a CPS version, but is too slow to be useful currently, this will be addressed in IronScheme 2.0
- all raise's are continuable in the sense they can be caught (this is also addressed with the CPS version)
- a generic load procedure for toplevel R6RS files
- many extras procedures and macros in (ironscheme) library, mostly provided by psyntax
- syntactic CLR integration, automatic conversion of closures into delegates
- Abdulaziz Ghuloum and Kent Dybvig for psyntax (and friends) (and equal?)
- Marc Feeley for pretty-print
- anyone else I missed
Planned to-do's (before final release)
- testing of anything else
- any additional CLR integration required
- Converted a substantial part of code still written in C# into Scheme
- Some minor compiler optimizations
- Improvements with exactness of numbers
- Added -I switch for extra library search paths
- Added -emacs switch to let the REPL behave better as a subprocess (as well as auto-detection of this)
- Added extensions library for easy calling from .NET
- Added remoting library (connects with REPL)
- See 'Source Code' page for more details
Updated for 3a
- Fixed printing of conditions (particularly at read time)
- Made make-parameter thread safe (thanks amirul)
The zip is just a snapshot of the installation directory, it can be put anywhere.