> > These things are always tricky to understand, which is why
> I recommend
> > not using lazy I/O. File reading is not a pure operation:
> running out
> > of file descriptors is a good counter-example.
>
> Without saying wether I agree with lazy I/O or not, I suggest that
> this particular problem may also be due to the runtime implementation:
> If one tries to open a new file but the file descriptors are
> exhausted,
> the runtime system should first trigger a full GC because that might
> free up some descriptors -- but maybe GHC is already doing this?
GHC could do this, but it doesn't. Nevertheless, it wouldn't help in
Ketil's example: no amount of GC is going to free up the file
descriptors which are being held on to because the program hasn't
completely evaluated the file contents yet.
Cheers,
Simon
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell