Revision as of 08:30, 13 June 2008
Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and some other useful things.
1 Disciple vs Haskell
- Strict EvaluationOrder is the default, laziness is introduced explicitly.
- Type directed FieldProjections complement type classing.
- All data objects support DestructiveUpdate.
- The EffectSystem tracks what computational effects are being used in a program, without the need for state monads.
- The ClassSystem ensures that effects and destructive update play nicely with laziness.
- ClosureTyping is used to track data sharing, and to preserve soundness in the presence of PolymorphicUpdate.
- Some FurtherReading.
2 The Disciplined Disciple Compiler
- Uses a typed core language which includes effect, closure, region and mutability information.
- This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
- Compiles via standard C99, so is highly portable.
- Compiles cleanly on linux-x86 and darwin-x86 (tested on Mac OS X 10.5.2)
- Is in a usable alpha state.
3 Get the Source
Get the latest stable release with darcs:
For thrill-seekers, the development branch (which usually builds ok) is:
Alternatively, download the source tar-ball from Google code