Skip to content
  • Simon Marlow's avatar
    [project @ 2002-09-06 14:34:13 by simonmar] · 77186ef4
    Simon Marlow authored
    Partial rewrite of the POSIX library.
    
    The main purpose of this sweep is to remove the last dependencies of
    the compiler on hslibs.  When I've committed the associated compiler
    changes, only the 'base' package will be required to bootstrap the
    compiler.  Additionally to build GHCi, the 'readline' and 'unix'
    packages will be required.
    
    The new POSIX library lives mostly in libraries/unix, with a few bits
    required for compiler bootstrapping in libraries/base.  The 'base'
    package is mostly free of hsc2hs code to make bootstrapping from HC
    files easier, but the 'unix' package will use hsc2hs liberally.
    
    The old POSIX library continues to provide more-or-less the same
    interface as before, although some of the types are more correct now
    (previously lots of POSIX types were just mapped to Int).  The new
    interface is largely the same as the old, except that some new
    functionality from the latest POSIX spec has been added (eg. symbolic
    links).
    
    So far, the new POSIX library has signal support, directory/file
    operations and lots of stuff from unistd.h.  The module names are:
    
      System.Posix
    	The main dude, exports everything
    
      System.Posix.Types
    	All the POSIX types, using the same naming scheme as
            Foreign.C.Types, Eg. CUid, COff, etc.  Many of these types
            were previously exported by GHC.Posix.
    
            Additionally exports the "nicer" names used by the old POSIX
    	library for compatibility (eg. ProcessID == CPid, FileMode ==
    	CMode, etc.)
    
    	All reasonable instances are derived for these types.
    
      System.Posix.Signals
    	Signal support, contains most of which was in PosixProcPrim before.
    	The RTS interface to the signal handling support has been
    	rationalised slightly.
    
      System.Posix.Directory
     	Directory support, most were in PosixFiles before.
    
      System.Posix.Files
    	File operations, most were in PosixFiles before.
    
      System.Posix.Unistd
    	(for want of a better name) Miscellaneous bits that mostly come
    	from the unistd.h header file.  PosixProcEnv before.
    
    The rest of the library should pan out like so:
    
      System.Posix.IO
      System.Posix.Error   (maybe)
      System.Posix.Process
      System.Posix.Terminal
    
    (I've no doubt broken Win32 support, but I'm checking the build at the moment).
    77186ef4