
On Wed, Jun 18, 2008 at 04:22:24PM -0700, Frederik Eaton wrote:
In what way is 'createProcess' more low-level than the previous interfaces? In any case, it still makes sense to me to keep the previous interfaces around indefinitely - even if they have to be redefined in terms of 'createProcess'. But 'createProcess' seems quite a bit more high-level than the others. It seems to combine a lot of different POSIX functions like 'exec' and 'system' and 'pipe' which could all be exposed individually through a simpler API.
I think another issue here is where the OS abstraction happens. Opaquely in libraries, or on top of OS primitives themselves in haskell. Personally, I would like to see the OS abstraction happen in exposed haskell libraries. as in, POSIX, Win32, SunOS, etc.. libraries in haskell built on exposed haskell primitives, and things like 'createProcess' on top of them. Of course, the implementation of createProcess will have to conform to whatever is available on the current system (which is in not as simple as posix vs windows, autoconf-esque feature checks will be needed) but I'd rather have that done in haskell than C or opaquely in a library. This is more an opinion on implementation than standardization. I think it is fully fine to provide standard high level interfaces before the low level ones get worked out, as long as the low level ones arn't excluded in favor of just the high level interface. John -- John Meacham - ⑆repetae.net⑆john⑈