1. 27 Jan, 2005 1 commit
    • simonpj's avatar
      [project @ 2005-01-27 10:45:47 by simonpj] · e27d450b
      simonpj authored
      --------------------------------------------
                Replace hi-boot files with hs-boot files
        	--------------------------------------------
      
      This major commit completely re-organises the way that recursive modules
      are dealt with.
      
        * It should have NO EFFECT if you do not use recursive modules
      
        * It is a BREAKING CHANGE if you do
      
      ====== Warning: .hi-file format has changed, so if you are
      ======		updating into an existing HEAD build, you'll
      ======		need to make clean and re-make
      
      
      The details:  [documentation still to be done]
      
      * Recursive loops are now broken with Foo.hs-boot (or Foo.lhs-boot),
        not Foo.hi-boot
      
      * An hs-boot files is a proper source file.  It is compiled just like
        a regular Haskell source file:
      	ghc Foo.hs		generates Foo.hi, Foo.o
      	ghc Foo.hs-boot		generates Foo.hi-boot, Foo.o-boot
      
      * hs-boot files are precisely a subset of Haskell. In particular:
      	- they have the same import, export, and scoping rules
      	- errors (such as kind errors) in hs-boot files are checked
        You do *not* need to mention the "original" name of something in
        an hs-boot file, any more than you do in any other Haskell module.
      
      * The Foo.hi-boot file generated by compiling Foo.hs-boot is a machine-
        generated interface file, in precisely the same format as Foo.hi
      
      * When compiling Foo.hs, its exports are checked for compatibility with
        Foo.hi-boot (previously generated by compiling Foo.hs-boot)
      
      * The dependency analyser (ghc -M) knows about Foo.hs-boot files, and
        generates appropriate dependencies.  For regular source files it
        generates
      	Foo.o : Foo.hs
      	Foo.o : Baz.hi		-- Foo.hs imports Baz
      	Foo.o : Bog.hi-boot	-- Foo.hs source-imports Bog
      
        For a hs-boot file it generates similar dependencies
      	Bog.o-boot : Bog.hs-boot
      	Bog.o-boot : Nib.hi	-- Bog.hs-boto imports Nib
      
      * ghc -M is also enhanced to use the compilation manager dependency
        chasing, so that
      	ghc -M Main
        will usually do the job.  No need to enumerate all the source files.
      
      * The -c flag is no longer a "compiler mode". It simply means "omit the
        link step", and synonymous with -no-link.
      e27d450b
  2. 11 Jan, 2005 1 commit
  3. 25 Jun, 2004 1 commit
  4. 23 Sep, 2003 1 commit
  5. 08 Mar, 2003 1 commit
  6. 12 Dec, 2002 1 commit
  7. 14 Oct, 2002 1 commit
  8. 11 Oct, 2002 1 commit
  9. 31 May, 2002 1 commit
  10. 09 May, 2002 2 commits
  11. 26 Apr, 2002 1 commit
  12. 24 Apr, 2002 1 commit
  13. 20 Mar, 2002 1 commit
  14. 14 Mar, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-03-14 12:09:49 by simonmar] · 9cd0f821
      simonmar authored
      Eliminate some orphan-instance modules to speed up compilation.
      
      I decided to just bite the bullet and give Data.Dynamic an .hi-boot
      file, so I could remove GHC.Dynamic altogether, move its data types
      into Data.Dynamic and hence prevent Data.Dynamic from being an orphan
      module.  Furthermore, GHC.Dynamic wasn't GHC specific - its only
      purpose in life was to prevent module loops, so having it at all was
      artificial.
      9cd0f821
  15. 27 Feb, 2002 1 commit
  16. 11 Feb, 2002 1 commit
  17. 03 Jul, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-07-03 11:37:49 by simonmar] · b4358ba0
      simonmar authored
      Latest round of changes, incorporating:
      
        - some changes to the portability/stability requested by Malcolm
        - Control.Monad.Fix is portable, IO/ST instances moved to System.IO,
          Control.Monad.ST respectively.
        - GHC.Tup moved to Data.Tuple, the code in here is mostly portable
          (and the interface better be).
      b4358ba0
  18. 28 Jun, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-06-28 14:15:04 by simonmar] · 4fb94ae5
      simonmar authored
      First cut of the Haskell Core Libraries
      =======================================
      
      NOTE: it's not meant to be a working snapshot.  The code is just here
      to look at and so the NHC/Hugs guys can start playing around with it.
      
      There is no build system.  For GHC, the libraries tree is intended to
      be grafted onto an existing fptools/ tree, and the Makefile in
      libraries/core is a quick hack for that setup.  This won't work at the
      moment without the other changes needed in fptools/ghc, which I
      haven't committed because they'll cause breakage.  However, with the
      changes required these sources build a working Prelude and libraries.
      
      The layout mostly follows the one we agreed on, with one or two minor
      changes; in particular the Data/Array layout probably isn't final
      (there are several choices here).
      
      The document is in libraries/core/doc as promised.
      
      The cbits stuff is just a copy of ghc/lib/std/cbits and has
      GHC-specific stuff in it.  We should really separate the
      compiler-specific C support from any compiler-independent C support
      there might be.
      
      Don't pay too much attention to the portability or stability status
      indicated in the header of each source file at the moment - I haven't
      gone through to make sure they're all consistent and make sense.
      
      I'm using non-literate source outside of GHC/.  Hope that's ok with
      everyone.
      
      We need to discuss how the build system is going to work...
      4fb94ae5