[project @ 2000-04-13 11:56:35 by simonpj]
authorsimonpj <unknown>
Thu, 13 Apr 2000 11:56:37 +0000 (11:56 +0000)
committersimonpj <unknown>
Thu, 13 Apr 2000 11:56:37 +0000 (11:56 +0000)
commit9579283cadf4ac68a6f4252244041b5127e16811
treefc68affe2303ee4137214fb677729edcc3878fd4
parent41c2bcabc10b344f01ba7467292192447695c28f
[project @ 2000-04-13 11:56:35 by simonpj]
Add support for 'packages'.

* A package is a group of modules.

* A package has a name (e.g. std)

* A package is built into a single library (Unix; e.g. libHSstd.a)
                       or a single DLL     (Windows; e.g. HSstd.dll)

* The '-package-name foo' flag tells GHC that the module being compiled
  is destined for package foo.

* The '-package foo' flag tells GHC to make available modules
  from package 'foo'.  It replaces '-syslib foo' which is now deprecated.

* Cross-package references cost an extra indirection in Windows,
  but not Unix

* GHC does not maintain detailed cross-package dependency information.
  It does remember which modules in other packages the current module
  depends on, but not which things within those imported things.

All of this tidies up the Prelude enormously.  The Prelude and
Standard Libraries are built into a singl package called 'std'.  (This
is a change; the library is now called libHSstd.a instead of libHS.a)
21 files changed:
ghc/compiler/absCSyn/CLabel.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/basicTypes/DataCon.lhs
ghc/compiler/basicTypes/Module.lhs
ghc/compiler/basicTypes/Name.lhs
ghc/compiler/codeGen/CgCon.lhs
ghc/compiler/hsSyn/HsExpr.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/Rename.lhs
ghc/compiler/rename/RnEnv.lhs
ghc/compiler/rename/RnIfaces.lhs
ghc/compiler/rename/RnMonad.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stgSyn/StgSyn.lhs
ghc/driver/ghc-iface.lprl
ghc/driver/ghc.lprl
ghc/lib/std/Makefile
ghc/lib/std/PrelBase.lhs
ghc/lib/std/PrelGHC.hi-boot