diff options
author | simonmar <unknown> | 2004-11-26 16:22:12 +0000 |
---|---|---|
committer | simonmar <unknown> | 2004-11-26 16:22:12 +0000 |
commit | e4652ef706d45af933f54c53f7e1f6580945c6f8 (patch) | |
tree | b503d0ae5e9808e212ae610632892dfd2c1f608c | |
parent | 2ad3605f3dcf05df13170faafbb172cd458d670a (diff) |
[project @ 2004-11-26 16:22:12 by simonmar]
Further integration with the new package story. GHC now supports
pretty much everything in the package proposal.
- GHC now works in terms of PackageIds (<pkg>-<version>) rather than
just package names. You can still specify package names without
versions on the command line, as long as the name is unambiguous.
- GHC understands hidden/exposed modules in a package, and will refuse
to import a hidden module. Also, the hidden/eposed status of packages
is taken into account.
- I had to remove the old package syntax from ghc-pkg, backwards
compatibility isn't really practical.
- All the package.conf.in files have been rewritten in the new syntax,
and contain a complete list of modules in the package. I've set all
the versions to 1.0 for now - please check your package(s) and fix the
version number & other info appropriately.
- New options:
-hide-package P sets the expose flag on package P to False
-ignore-package P unregisters P for this compilation
For comparison, -package P sets the expose flag on package P
to True, and also causes P to be linked in eagerly.
-package-name is no longer officially supported. Unofficially, it's
a synonym for -ignore-package, which has more or less the same effect
as -package-name used to.
Note that a package may be hidden and yet still be linked into
the program, by virtue of being a dependency of some other package.
To completely remove a package from the compiler's internal database,
use -ignore-package.
The compiler will complain if any two packages in the
transitive closure of exposed packages contain the same
module.
You *must* use -ignore-package P when compiling modules for
package P, if package P (or an older version of P) is already
registered. The compiler will helpfully complain if you don't.
The fptools build system does this.
- Note: the Cabal library won't work yet. It still thinks GHC uses
the old package config syntax.
Internal changes/cleanups:
- The ModuleName type has gone away. Modules are now just (a
newtype of) FastStrings, and don't contain any package information.
All the package-related knowledge is in DynFlags, which is passed
down to where it is needed.
- DynFlags manipulation has been cleaned up somewhat: there are no
global variables holding DynFlags any more, instead the DynFlags
are passed around properly.
- There are a few less global variables in GHC. Lots more are
scheduled for removal.
- -i is now a dynamic flag, as are all the package-related flags (but
using them in {-# OPTIONS #-} is Officially Not Recommended).
- make -j now appears to work under fptools/libraries/. Probably
wouldn't take much to get it working for a whole build.
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | package.conf.in | 77 |
2 files changed, 52 insertions, 26 deletions
@@ -5,6 +5,7 @@ SUBDIRS = cbits include ALL_DIRS = System System/Posix System/Posix/DynamicLinker System/Posix/Signals PACKAGE = unix +VERSION = 1.0 PACKAGE_DEPS = base SRC_HADDOCK_OPTS += -t "Haskell Hierarchical Libraries ($(PACKAGE) package)" diff --git a/package.conf.in b/package.conf.in index 17e7473..f27932f 100644 --- a/package.conf.in +++ b/package.conf.in @@ -1,37 +1,62 @@ #include "ghcconfig.h" -Package { - name = "unix", - auto = True, +name: PACKAGE +version: VERSION +license: BSD3 +maintainer: libraries@haskell.org +exposed: True + +exposed-modules: + System.Posix, + System.Posix.DynamicLinker.Module, + System.Posix.DynamicLinker.Prim, + System.Posix.Directory, + System.Posix.DynamicLinker, + System.Posix.Env, + System.Posix.Error, + System.Posix.Files, + System.Posix.IO, + System.Posix.Process, + System.Posix.Resource, + System.Posix.Temp, + System.Posix.Terminal, + System.Posix.Time, + System.Posix.Unistd, + System.Posix.User, + System.Posix.Signals.Exts + +hidden-modules: + +import-dirs: IMPORT_DIR + #ifdef INSTALLING - import_dirs = [ "$libdir/imports" ], +library-dirs: "$libdir" #else - import_dirs = [ "$libdir/libraries/unix" ], +library-dirs: "$libdir/libraries/unix", + "$libdir/libraries/unix/cbits" #endif - source_dirs = [], -#ifdef INSTALLING - library_dirs = [ "$libdir" ], + +hs-libraries: "HSunix" + +#if !(defined HAVE_FRAMEWORK_HASKELLSUPPORT) && defined(HAVE_LIBDL) +extra-libs: "HSunix_cbits", "dl" #else - library_dirs = [ "$libdir/libraries/unix", - "$libdir/libraries/unix/cbits" ], -#endif - hs_libraries = [ "HSunix" ], - extra_libraries = [ "HSunix_cbits" -#ifndef HAVE_FRAMEWORK_HASKELLSUPPORT -#ifdef HAVE_LIBDL - , "dl" -#endif +extra-libs: "HSunix_cbits" #endif - ], #ifdef INSTALLING - include_dirs = [], +include-dirs: #else - include_dirs = [ "$libdir/libraries/unix/include" ], +include-dirs: "$libdir/libraries/unix/include" #endif - c_includes = [ "HsUnix.h" ], - package_deps = [ "base" ], - extra_ghc_opts = [], - extra_cc_opts = [], - extra_ld_opts = [] -} + +includes: HsUnix.h +depends: base +extra-hugs-opts: +extra-cc-opts: +extra-ld-opts: +framework-dirs: +extra-frameworks: +haddock-interfaces: +haddock-html: + |