Custom Runtimes
The ability to build custom runtimes would be useful in many development situations. Like Objective Caml's -custom, one would be able to create a interactive-invokable (GHCi) with a custom main () initialization and finalizer. For things such as SDL applications, Cocoa applications, there is a need for custom run loops as well. This would be an immensely great integration feature for GHC. In these situations it is not possible to work in GHCi on most/all platforms without much work done in a specialized hs-plugins REPL environment.
Ideas of Requirements:
-
specifiable initializer (from main)
-
specifiable finalizer
-
specifiable run loop / event handler (light thread) as such:
* REPL
* thread 0 - read, eval (send to thread 1), print, loop
* thread 1 - processing events run loop, check for eval + send result to print stage
[the author is developing a Cocoa+GL native application in 100% Haskell sans HOC sans HOpenGL]