On 2008 Aug 31, at 10:34, Ganesh Sittampalam wrote:
On Sun, 31 Aug 2008, Brandon S. Allbery KF8NH wrote:
On 2008 Aug 31, at 10:29, Ganesh Sittampalam wrote:
On Sun, 31 Aug 2008, Brandon S. Allbery KF8NH wrote:
On 2008 Aug 31, at 10:20, Ganesh Sittampalam wrote:
I'm not sure of precisely what you mean here, but stdin, stdout
and stderr are things provided by the OS to a process. That's
what defines them as having process scope, not something the
Haskell language or RTS does.
But their representations in Haskell must have the same scope and
are therefore de facto global variables.
Yep, but this is not Haskell providing a way to make global
variables, it is just providing an interface to ones that already
exist. The point is that the RTS can't provide (process-scope)
But that is done the same way as providing general global
variables, so you can't get away from it.
I don't follow what you mean. stdin, stdout and stderr are just file
descriptors 0, 1 and 2, aren't they? You can create them as many
times as you want with using that information without causing any
confusion or conflict. Whereas the <- proposal has a "once-only"
requirement.
The convention is to provide buffered versions to improve the
performance of file I/O. These buffered filehandles must be created
once per runtime instance (and ideally once per process so multiple
runtimes don't find themselves overwriting each others' output).
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon university KF8NH
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe