I personally would like to see both work. I have done some work with dynamically loaded modules implemented in haskell and being able to do the iterated initializations seems important. there was talk that this would be difficult given the current state of GHC's RTS, I am not sure what the conclusion was. my vote was to put it in the spec that it should work and have GHC document that it is nonconforming in that manner until its implementation catches up. John On Tue, Jan 28, 2003 at 03:54:10PM -0000, Simon Marlow wrote:
I'm implementing the latest hs_init()/hs_exit() interface in GHC, and came across an ambiguity or omission in the spec. We're clear that this sequence should be allowed:
hs_init(..) hs_init(..) hs_exit() hs_exit()
but what about
hs_init(..) hs_exit() hs_init(..) hs_exit()
That is, should the Haskell system be able to start itself up again after shutting down? It looks like this is desirable from a modularity viewpoint: eg. a C program initialises library A which uses Haskell internally, then de-initialises library A, then initialises library B which also uses Haskell internally.
Unfortunately, this is going to require quite a bit of extra work in GHC to get right, and it looks like I'm going to have to examine a lot of code to make sure it is "double-init-safe". Thoughts?
Cheers, Simon
_______________________________________________ FFI mailing list FFI@haskell.org http://www.haskell.org/mailman/listinfo/ffi
-- --------------------------------------------------------------------------- John Meacham - California Institute of Technology, Alum. - john@foo.net ---------------------------------------------------------------------------