Current limitations
-
Compiler error messages, especially those resulting from type errors, are far from satisfactory.
-
Recursive typeclass instances are naively generated, sometimes resulting in extensive work
duplication.
-
Garbage collection of objects with a state including arrays is sensitive to an (unlikely)
race condition that may cause state updates to be forgotten.
-
The abort primitive will sometimes fail to abort a message that has been scheduled
to start but yet not been received.
-
Deadlock detection is currently not implemented.
-
The Prelude module is very preliminary. As for the library, this release
offers only a small selection of modules to support examples and indicate possible structure.
Plans for the next release (Q1 2009)
-
Fix the abort and deadlock detection deficiencies.
-
Add multidimensional flat arrays to the compiler back-end language, which will
improve the efficiency of array operations in general (and also solve the garbage collection
problem mentioned above).
-
Merge the Timber
supercompiler
into the main branch of the implementation, thereby adressing
the generated code quality of recursive terms overall, including recursively defined instances.
-
Make a substantial overhaul of the error reporting infrastructure of the compiler.
-
Add a GUI interface to the POSIX run-time environment.
-
Provide a proof-of-concept run-time environment for a bare-metal target platform: the ARM7.
Longer term plans
-
Add exception handling to the language.
-
Extend the type system with support for functional dependencies.
-
Turn subtyping coercions into simple casts along the left branch of every subtype hierarchy.
-
Extend the syntax to allow explicit self parameters, explicit state types and explicit
overloading witnesses.
-
Implement a generic OpenGL interface.
-
Add support for more bare-metal target platforms.