Skip to content
Snippets Groups Projects
  1. Mar 23, 2005
  2. Feb 18, 2005
    • simonmar's avatar
      [project @ 2005-02-18 15:06:45 by simonmar] · f85bffef
      simonmar authored
      Rename fields in InstalledPackageInfo for consistency with
      PackageDescription & buildInfo:
      
       extra-libs (extraLibraries) --> extra-libraries (extraLibraries)
       extra-cc-opts (extraCcOpts) --> cc-options (ccOptions)
       extra-ld-opts (extraLdOpts) --> ld-options (ldOptions)
       extra-hugs-opts (extraHugsOpts) --> hugs-options (hugsOptions)
       extra-frameworks (extraFrameworks) --> frameworks (frameworks)
  3. Feb 11, 2005
    • ross's avatar
      [project @ 2005-02-11 01:55:57 by ross] · 6c89ed60
      ross authored
      track syntax changes:
      
      * add License-File and Synopsis fields
      
      * rename Hidden-Fields as Other-Fields
      
      These files are used only by Hugs, but are also useful as examples.
      6c89ed60
  4. Jan 25, 2005
  5. Jan 20, 2005
    • simonmar's avatar
      [project @ 2005-01-20 14:22:27 by simonmar] · 613a9f8a
      simonmar authored
      Fill in the haddock-interfaces and haddock-html fields in the
      package.conf files.
      
      To do this I had to make some changes:
      
        - haddock-interfaces requires the value of $(datadir).  We can't
          just plug this in, because $(datadir) might change at install-time
          (eg. a Windows installer can be placed anywhere, as can a Unix
          binary .tar.gz distribution).  The current trick is for the
          compiler to splice in the value of $libdir in package.conf at
          runtime.  So we could extend this mechanism and tell the compiler
          the value of $datadir via a command-line option, but that seems
          ugly.
      
          On Windows, $datadir==$libdir, so we don't need any changes:
          package.conf still uses $libdir, and a Windows installation is
          independent of its absolute location.  Even 'make install' on
          Windows should have this property.
      
          On Unix:
      	- for 'make install' and in-place execution, we just use
                absolute paths in package.conf
      
      	- for a binary dist, we generate a package.conf that refers
      	  to $libdir and $datadir, and splice in the values at
      	  install-time (distrib/Makefile-bin.in).
      
        - Also, I renamed $libdir to $topdir to more closely reflect its
          actual meaning.  This is somewhat malicious in that it will flush
          out all those clients using $libdir when they really shouldn't
          be :-)
      613a9f8a
  6. Jan 11, 2005
  7. Nov 26, 2004
    • simonmar's avatar
      [project @ 2004-11-26 16:22:11 by simonmar] · a146c40e
      simonmar authored
      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.
  8. Sep 08, 2004
  9. Aug 13, 2004
  10. Jul 30, 2004
  11. Jul 29, 2004
  12. Nov 15, 2003
    • panne's avatar
      [project @ 2003-11-15 22:31:17 by panne] · f6578baf
      panne authored
      Decouple packages a bit more again: The prologue of the combined index is now
      generated via shell magic from the package prologues. As a nice side effect,
      some autoconf magic is gone, so configure.ac is effectively empty now (but not
      for long... :-)
      f6578baf
  13. Nov 11, 2003
    • simonmar's avatar
      [project @ 2003-11-11 11:50:53 by simonmar] · 83aabdb7
      simonmar authored
      Convert to use Haddock 0.6's combined contents/index functionality for
      the hierarchical library docs.
      
      HEADS UP: you need Haddock 0.6 in order to run 'make html' in
      fptools/libraries now.
      83aabdb7
  14. Nov 10, 2003
  15. May 17, 2003
    • ross's avatar
      [project @ 2003-05-17 00:11:29 by ross] · d53d757a
      ross authored
      Rename per-package configuration files from $(PACKAGE).conf.* to
      package.conf.*, making them easier to find (since each package is
      in a separate directory anyway).
      d53d757a
  16. May 16, 2003
    • simonmar's avatar
      [project @ 2003-05-16 10:14:23 by simonmar] · 400b4225
      simonmar authored
      Now that we have auto packages, it makes sense to keep all the
      interfaces for hierarchical libraries in the same directory tree.  So
      now, instead of putting interfaces for package P in $libdir/imports/P,
      we put them all in $libdir/imports.
      
      Interfaces for old non-auto non-hierarchical packages now go in
      $libdir/hslibs-imports/P for package P.
      400b4225
  17. Dec 18, 2002
    • simonmar's avatar
      [project @ 2002-12-18 16:29:25 by simonmar] · b3c41695
      simonmar authored
      "Auto" packages.
      
      The big change here is that it is no longer necessary to explicitly
      say '-package X' on the command line if X is a package containing
      hierarchical Haskell modules.  All packages marked "auto" contribute
      to the import path, so their modules are always available.  At link
      time, the compiler knows which packages are actually used by the
      program, and it links in only those libraries needed.
      
      There's one exception: one-shot linking.  If you link a program using
      
          ghc -o prog A.o B.o ...
      
      then you need to explicitly add -package flags for each package
      required (except base & haskell98) because the compiler has no
      information about the package dependencies in this case.
      
      Package configs have a new field: auto, which is either True or False.
      Non-auto packages must be mentioned on the command-line as usual.
      Non-auto packages are still required for:
      
        - non-hierarchical libraries (to avoid polluting the module namespace)
      
        - packages with no Haskell content
      
        - if you want more than one version of a package, or packages
          providing overlapping functionality where the user must decide
          which one to use.
      
      Doc changes to follow...
      3 tags
      b3c41695
  18. Dec 12, 2002
    • ross's avatar
      [project @ 2002-12-12 13:42:47 by ross] · beaa1d45
      ross authored
      Changes to the exception interface, as discussed on the libraries list.
      
      1) Move bracket and bracket_ from GHC.Exception (and hence System.IO)
         to haskell98/IO.hs.  These two should now never be used (except in
         all-H98 programs), and this will save users of the new libraries from
         having to hide them.  Use the ones in Control.Exception instead.
      
      2) Define
      
              type IOError = IOException      -- was Exception
      
         leaving the type of Prelude.ioError as IOError -> IO a,
         but adding to Control.Exception
      
              throwIO :: Exception -> IO a
      
      The result is a type distinction between the variants of catch and try:
      
      	Prelude.catch           :: IO a -> (IOError -> IO a) -> IO a
      	Control.Exception.catch :: IO a -> (Exception -> IO a) -> IO a
      	System.IO.Error.try     :: IO a -> IO (Either IOError a)
      	Control.Exception.try   :: IO a -> IO (Either Exception a)
      
      These are breaking changes: the first one affects only import lists,
      but the second will bite in the following situations:
      
      - using ioError on general Exceptions: use throwIO instead.
      
      - using throw on IOErrors: if in the IO monad, use ioError instead.
        Otherwise, use throw (IOException e), but why are you throwing
        IO exceptions outside of the IO monad?
      
      Minor changes:
      - System.IO.Error now exports catch and try
      - moved try from GHC.Exception to System.IO.Error, because it's
        portable and can be shared by Hugs.
      beaa1d45
  19. Dec 05, 2002
  20. Dec 04, 2002
  21. Sep 29, 2002
  22. Sep 16, 2002
  23. Aug 28, 2002
    • simonmar's avatar
      [project @ 2002-08-28 14:06:31 by simonmar] · 49368c54
      simonmar authored
      The standard FFI libraries now live in the haskell98 package, as they
      are defined by a Haskell98 addendum.  The lang package is no longer
      required to get at these.
      49368c54
  24. Aug 12, 2002
  25. Jul 16, 2002
  26. Jul 02, 2002
  27. Jun 24, 2002
  28. Apr 02, 2002
  29. Feb 17, 2002
  30. Feb 12, 2002
  31. Feb 07, 2002
    • simonmar's avatar
      [project @ 2002-02-07 11:13:30 by simonmar] · 6249a5c6
      simonmar authored
      Various updates after rearranging the directory structure in the
      repository (there wasn't any history worth keeping, and it's better to
      do this now before we go 'live').
      
      Packages under 'compat' are backwards-compatibility packages which
      should provide an interface equivalent to the current hslibs setup.
      There are a few packages still missing.
  32. Jan 02, 2002
  33. Aug 02, 2001
Loading