Release notes for IronScheme 1.0 Beta 2
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.
With 1.0 beta 2, IronScheme implements the entire R6RS Scheme standard, and only fail 8 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. MS 64 bit has not been tested either.
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)
- Derick Eddington for making SRFI-1 R6RS compatible
- Philip L. Bewig for SRFI-41
- 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
- Added a new LINQ library (ironscheme linq2) which implements all methods found under System.Linq.Enumerable. The new version also uses deferred execution
- Added a few more libraries
- Added (ironscheme unsafe) library
- Many bug fixes
- Added P/Invoke functionality, and a small FFI layer
- Many compiler optimizations added (TCE, lambda body hoisting, assignment elimination), more coming for beta 3!
- Rewrote fixnums and flonums in Scheme. Uses unsafe features.
- Memory optimizations (previous versions had many objects that could not be GC'd), much less GC's needed now
- See 'Source Code' page for more details
The zip is just a snapshot of the installation directory, it can be put anywhere.