summaryrefslogtreecommitdiff
path: root/ghc/lib/std/PrelIO.hs
Commit message (Collapse)AuthorAgeFilesLines
* [project @ 2002-02-12 15:17:13 by simonmar]simonmar2002-02-121-676/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch over to the new hierarchical libraries --------------------------------------------- This commit reorganises our libraries to use the new hierarchical module namespace extension. The basic story is this: - fptools/libraries contains the new hierarchical libraries. Everything in here is "clean", i.e. most deprecated stuff has been removed. - fptools/libraries/base is the new base package (replacing "std") and contains roughly what was previously in std, lang, and concurrent, minus deprecated stuff. Things that are *not allowed* in libraries/base include: Addr, ForeignObj, ByteArray, MutableByteArray, _casm_, _ccall_, ``'', PrimIO For ByteArrays and MutableByteArrays we use UArray and STUArray/IOUArray respectively now. Modules previously called PrelFoo are now under fptools/libraries/GHC. eg. PrelBase is now GHC.Base. - fptools/libraries/haskell98 provides the Haskell 98 std. libraries (Char, IO, Numeric etc.) as a package. This package is enabled by default. - fptools/libraries/network is a rearranged version of the existing net package (the old package net is still available; see below). - Other packages will migrate to fptools/libraries in due course. NB. you need to checkout fptools/libraries as well as fptools/hslibs now. The nightly build scripts will need to be tweaked. - fptools/hslibs still contains (almost) the same stuff as before. Where libraries have moved into the new hierarchy, the hslibs version contains a "stub" that just re-exports the new version. The idea is that code will gradually migrate from fptools/hslibs into fptools/libraries as it gets cleaned up, and in a version or two we can remove the old packages altogether. - I've taken the opportunity to make some changes to the build system, ripping out the old hslibs Makefile stuff from mk/target.mk; the new package building Makefile code is in mk/package.mk (auto-included from mk/target.mk). The main improvement is that packages now register themselves at make boot time using ghc-pkg, and the monolithic package.conf in ghc/driver is gone. I've updated the standard packages but haven't tested win32, graphics, xlib, object-io, or OpenGL yet. The Makefiles in these packages may need some further tweaks, and they'll need pkg.conf.in files added. - Unfortunately all this rearrangement meant I had to bump the interface-file version and create a bunch of .hi-boot-6 files :-(
* [project @ 2001-12-27 11:26:03 by sof]sof2001-12-271-3/+18
| | | | | Added & exported low-level memcpy() wrappers - possible to offset both src and dest.
* [project @ 2001-12-27 09:28:10 by sof]sof2001-12-271-4/+4
| | | | | | | | | | | | | | - removed PrelPosix.c_read, PrelPosix.c_write - added Ptr and RawBuffer versions of PrelHandle.write_off, and PrelHandle.read_off and exported them, i.e., PrelHandle now exports: read_off_ba :: FD -> Bool -> RawBuffer -> Int -> CInt -> IO CInt read_off :: FD -> Bool -> Ptr CChar -> Int -> CInt -> IO CInt write_off_ba :: CInt -> Bool -> RawBuffer -> Int -> CInt -> IO CInt write_off :: CInt -> Bool -> Ptr CChar -> Int -> CInt -> IO CInt - make hPutChar (win)socket friendly.
* [project @ 2001-12-03 20:59:08 by sof]sof2001-12-031-3/+3
| | | | Support IO.hWaitForInput on Win32 platforms (on file and socket handles).
* [project @ 2001-11-26 20:04:00 by sof]sof2001-11-261-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the IO implementation work with WinSock once again. When creating sockets with WinSock, you don't get back a file descriptor, but a SOCKET (which just so happens to map to the same type as a 'normal' file descriptor). This SOCKET value cannot be used with the CRT ops read(), write(), close(), but you have to use the socket-specific operations (recv(), send(), and closesocket(), respectively) instead. To keep track of this distinction between file and socket file descriptors, the following changes were made: * a Handle__ has got a new field, haIsStream, which is True for sockets / streams. (this field is essentially unused in non-Win32 settings, but I decided not to conditionalise its presence). * PrelHandle.openFd now takes an extra (Maybe FDType) argument, which lets you force what type of FD we're converting into a Handle (this is crucial for WinSock SOCKETs, since we don't want to attempt fstat()ing them). Fixes breakage that was introduced with May 2001 (or earlier) rewrite of the IO layer. This commit build upon recent IO changes to HEAD, so merging it to STABLE will require importing those changes too (I'll let others be the judge whether this should be done or not).
* [project @ 2001-11-14 11:35:23 by simonmar]simonmar2001-11-141-2/+1
| | | | remove an unnecessary duplicate binding
* [project @ 2001-11-08 17:02:41 by simonmar]simonmar2001-11-081-2/+2
| | | | inputReady can be an unsafe foreign import.
* [project @ 2001-11-07 18:25:35 by sof]sof2001-11-071-0/+662
Move towards having the IO implementation be plat-independent at the Haskell source code level.