Esa Ilari Vuokko
eivuokko at gmail.com
Sat Jun 30 13:01:09 EDT 2007
On 6/30/07, Duncan Coutts <duncan.coutts at worc.ox.ac.uk> wrote:
> > operations would be a big win, particularly if it were distributed as a
> > standard library. This is the approach that Python's standard libraries
> > take, and it works well.
> Yes, we know that both POSIX and Win32 have operations to 'stat' a file
> and get back some common attributes about it. Of course the intersection
> of those attributes is not huge, but it at least contains the file size!
I can't help but to think this is exactly the way I don't want to see portable
file IO api. I am fairly tired of Windows applications that misuse Windows
file rights, and wierd software that got ported from unixy-type systems that
interacts very badly because of misuse of file locking. I don't think
in APIs is trivial. File locking and access rights work very diffrently.
> > If I had a vote on how Ian might spend his time, it would be on
> > something like this, which would have direct value to programmers by
> > addressing a significant deficit of the current standard libraries.
> > Splitting up the unix package seems more like an inconsequential
> > janitorial task. Given finite resources, I'd prefer to tackle the task
> > with greater benefits.
> Though it's also probably more work :-)
> It seems to me, one of our main problems is that the current base
> package cannot depend on the posix/unix or Win32 packages and so we
> cannot easily implement the portable Haskell APIs on top of the existing
> posix/win32 api bindings. All the portable stuff is currently
> implemented on top of C wrappers which interally use cppery to call
> posix or win32 functions. So fewer people feel able to contribute
> because most of the code is not Haskell.
Indeed. Also, as Win32 maintainer, I am unsure how far we are supporting
old Windowses. When I tentavily asked some people about it, they thought
we should continue to support old Windows versions. Unfortunately file
rights (in practice all of Security-API) is not available under Win 9x and Me.
(But I might have broken somethin anyway, I recall ghc installer having some
changes to Win32 to support old Windows versions.)
> Perhaps with splitting the base package up we have the opportunity to
> have the directory & IO stuff live in a package that can depend on
> either the posix/unix or win32 packages, and implement the portable IO
> stuff on top of those (probably still using cpp).
I hope portable IO means something that still allows access to important
details, and promotes good style.
Esa Ilari Vuokko
More information about the Libraries