simonmar    2004/11/26 08:32:44 PST

  Added files:
    ghc/compiler/main    PackageConfig.hs 
  Log:
  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.
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to