From 86c1b5f399bd0a6c1f66c2ee20e51ea5c5bf691b Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 12 Feb 2002 15:17:34 +0000 Subject: [PATCH] [project @ 2002-02-12 15:17:34 by simonmar] 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 :-( --- Makefile | 9 +++++++-- doc/libraries.sgml | 19 +++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 921a945..6d91aa4 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# $Id: Makefile,v 1.14 2002/02/12 10:52:47 simonmar Exp $ +# $Id: Makefile,v 1.15 2002/02/12 15:17:34 simonmar Exp $ TOP=.. include $(TOP)/mk/boilerplate.mk @@ -42,8 +42,13 @@ PACKAGE = base SRC_HC_OPTS += -fglasgow-exts -cpp -Iinclude SRC_HSC2HS_OPTS += -Iinclude +# ----------------------------------------------------------------------------- +# Per-module flags + # ESSENTIAL, for getting reasonable performance from the I/O library: -GHC/IOBase_HC_OPTS = -funbox-strict-fields +GHC/IOBase_HC_OPTS = -funbox-strict-fields + +Data/Array/Storable_HC_OPTS = -funbox-strict-fields # ----------------------------------------------------------------------------- # PrimOpWrappers diff --git a/doc/libraries.sgml b/doc/libraries.sgml index 7f4b230..399a93b 100644 --- a/doc/libraries.sgml +++ b/doc/libraries.sgml @@ -1017,7 +1017,7 @@ import Text.HTML.Internals -- The non-abstract library -- Stability : experimental | provisional | stable -- Portability : portable | non-portable (reason(s)) -- --- $Id: libraries.sgml,v 1.6 2001/12/21 15:07:26 simonmar Exp $ +-- $Id: libraries.sgml,v 1.7 2002/02/12 15:17:34 simonmar Exp $ -- -- Description ----------------------------------------------------------------------------- @@ -1027,7 +1027,7 @@ import Text.HTML.Internals -- The non-abstract library - $Id: libraries.sgml,v 1.6 2001/12/21 15:07:26 simonmar Exp $ + $Id: libraries.sgml,v 1.7 2002/02/12 15:17:34 simonmar Exp $ is optional, but usually included if the module is under CVS or RCS control. @@ -1414,18 +1414,16 @@ e.g. fromInteger. IO -> System.IO added - hPutBuf :: Handle -> Ptr a -> Int -> IO () - hGetBuf :: Handle -> Ptr a -> Int -> IO Int - fixIO :: (a -> IO a) -> IO a + hPutBuf :: Handle -> Ptr a -> Int -> IO () + hGetBuf :: Handle -> Ptr a -> Int -> IO Int + fixIO :: (a -> IO a) -> IO a + hSetEcho :: Handle -> Bool -> IO () + hGetEcho :: Handle -> IO Bool + hIsTerminalDevice :: Handle -> IO Bool List -> Data.List exports [](..) - Numeric -> Numeric - added showHex, showOct, showBin & showIntAtBase from NumExts, - (not exported yet - these aren't H98) - but left out floatToDouble & doubleToFloat (realToFrac is more general). - System -> System.Exit, System.Environment, System.Cmd split into three modules @@ -1438,6 +1436,7 @@ e.g. fromInteger. Locale -> System.Locale Maybe -> Data.Maybe Monad -> Data.Monad + Numeric -> Numeric Random -> System.Random Ratio -> Data.Ratio Time -> System.Time -- 1.7.10.4