IronScheme
Appearance
Developer(s) | Llewellyn Pritchard[1] |
---|---|
Stable release | 1.0.180
/ September 19, 2019 |
Preview release | 1.0.239
/ December 27, 2019 |
Repository | |
Operating system | Microsoft Windows, macOS, Linux |
Platform | .NET Framework, Mono |
Type | Programming language |
License | Ms-PL[2] |
Website | github |
IronScheme is an implementation of the Scheme programming language targeting the Microsoft .NET Framework. IronScheme is a complete rewrite of IronLisp, incorporating lessons learnt while developing IronLisp.[3]
IronScheme was planning to build upon the Microsoft Dynamic Language Runtime, but decided to abandon this idea because the DLR branch the project used became out of sync with the trunk, and also because the DLR, according to the developers, could not support the majority of the Scheme's requirements.[4] IronScheme eventually made a limited use of its own version of the Microsoft's DLR, but it had to patch it to be able to implement some required Scheme features like tail call elimination.[5][6]
See also
[edit]References
[edit]- ^ A .NET Triumvirate: IronScheme, IronLisp, and Xacc
- ^ IronScheme Nears Final Release
- ^ "IronScheme will aim to be a R6RS conforming Scheme implementation based on the Microsoft DLR". Retrieved 2009-03-21.
- ^ "Is there any silverlight sample?". 2009-05-11. Retrieved 2009-07-26.
Unfortunately, my DLR branch is very out of sync with the Silverlight one. I just thought about it, perhaps I do not need the DLR perse, will investigate. The problem is that the DLR as-is, is not good enough to support the majority of the Scheme's requirements
[permanent dead link] - ^ ".NET Integration with current runtime?". 2010-01-05. Retrieved 2011-08-29.
To make IronScheme use the current DLR, I would loose [sic] quite a few language requirements and important features, namely tail calls, and runtime record generation. Both these are not (and probably will never) be supported by the DLR, due to Silverlight compatibility requirements. Currently, IronScheme only lacks reifiable continuations to be 100% RnRS conforming. One could make IronScheme use the current DLR, but then it would not be Scheme anymore, as tail calls are extremely important (and required).
[permanent dead link] - ^ "Plan to update to current version of DLR?". 2008-05-14. Archived from the original on 2011-10-08. Retrieved 2011-08-29.
At the moment I only utilize about 15% of the DLR, and I would love to get rid of it eventually. The path they have chosen to do Python dynamically is too slow, and it lacks features that used to be present in the DLR (the new 'dynamic' features makes compilation to an assembly impossible). There are other features too that I had to build in, like tail calls and direct methods calls, that is also impossible in the latest DLR.