Re: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Glynn Clements
John Goerzen wrote: Oh also, I would very much appreciate Haskell interfaces to realpath() and readlink(). I don't know about realpath() (which is a BSD-ism, and included in GNU libc, but I'm not sure about other Unices), but readlink() exists as System.Posix.readSymbolicLink. -- Glynn

RE: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Simon Marlow
On 27 October 2004 10:13, Glynn Clements wrote: John Goerzen wrote: Oh also, I would very much appreciate Haskell interfaces to realpath() and readlink(). I don't know about realpath() (which is a BSD-ism, and included in GNU libc, but I'm not sure about other Unices), but readlink()

RE: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Simon Marlow
On 27 October 2004 02:03, John Goerzen wrote: On 2004-10-26, Peter Simons [EMAIL PROTECTED] wrote: By the way: It's good to know I'm not the only one wrestling with Haskell's concurrency code. :-) Yes. Its POSIX interface is, uhm, weird. I can't quite put my finger on it, but things like

RE: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Glynn Clements
Simon Marlow wrote: Yes. Its POSIX interface is, uhm, weird. I can't quite put my finger on it, but things like setting up a pipe to a child process's stdin just seem brittle and fragile with all sorts of weird errors. I can do this in my sleep in C, Perl, or Python but in Haskell I

[Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread John Goerzen
On 2004-10-27, Glynn Clements [EMAIL PROTECTED] wrote: One major issue is the way in which fork() has global consequences. E.g. if a library has file descriptors for internal use, fork() will duplicate them. If the library subsequently closes its copy of the descriptor, but the inherited copy

Re: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Andrew Pimlott
On Wed, Oct 27, 2004 at 11:30:12AM +0100, Simon Marlow wrote: The System.Posix library is severely lacking in documentation. Ideally for each function it would list the POSIX equivalent, and a table with the mapping in the other direction would be useful too. One idea on this topic: Many

Re: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-27 Thread Glynn Clements
John Goerzen wrote: I wonder what the behavior of fwrite() in this situation is. I don't know if it ever performs buffering such that write() is never called during a call to fwrite(). fwrite() is no different to other stdio functions in this regard. If the stream is buffered, a call to

[Haskell-cafe] Re: exitFailure under forkProcess

2004-10-26 Thread Peter Simons
John Goerzen writes: (progname): forkProcess: uncaught exception Quoting from the documentation: forkProcess :: IO () - IO ProcessID [...] On success, forkProcess returns the child's ProcessID to the parent process; in case of an error, an exception is thrown. What I assume is

[Haskell-cafe] Re: exitFailure under forkProcess

2004-10-26 Thread John Goerzen
On 2004-10-26, Peter Simons [EMAIL PROTECTED] wrote: John Goerzen writes: (progname): forkProcess: uncaught exception Quoting from the documentation: forkProcess :: IO () - IO ProcessID [...] On success, forkProcess returns the child's ProcessID to the parent process; in case of

Re: [Haskell-cafe] Re: exitFailure under forkProcess

2004-10-26 Thread Andrew Pimlott
On Wed, Oct 27, 2004 at 12:56:12AM +, John Goerzen wrote: If you follow this a little bit, you'll find that forkProcess is *NOT* throwing the exception that is being reported here. The message is being printed by the RTS of the child process. No exception is thrown in the parent.