cvs commit: fptools/ghc/compiler Makefile fptools/ghc/compiler/basicTypes DataCon.lhs-boot IdInfo.lhs-boot MkId.lhs-boot Module.lhs-boot Name.lhs-boot OccName.lhs-boot DataCon.hi-boot IdInfo.hi-boot MkId.hi-boot Module.lhs Name.hi-boot fptools/ghc/compiler/codeGen ...

Simon Peyton Jones simonpj at haskell.org
Thu Jan 27 05:45:49 EST 2005


simonpj     2005/01/27 02:45:49 PST

  Modified files:
    ghc/compiler         Makefile 
    ghc/compiler/basicTypes DataCon.hi-boot IdInfo.hi-boot 
                            MkId.hi-boot Module.lhs Name.hi-boot 
    ghc/compiler/codeGen CgBindery.hi-boot CgExpr.hi-boot 
    ghc/compiler/compMan CompManager.lhs 
    ghc/compiler/deSugar Desugar.lhs DsExpr.hi-boot DsMonad.lhs 
                         DsUtils.lhs Match.hi-boot Match.hi-boot-6 
    ghc/compiler/ghci    Linker.lhs 
    ghc/compiler/hsSyn   HsBinds.lhs HsExpr.hi-boot 
    ghc/compiler/iface   BinIface.hs IfaceType.lhs LoadIface.lhs 
                         MkIface.lhs 
    ghc/compiler/main    CmdLineOpts.lhs CodeOutput.lhs 
                         DriverFlags.hs DriverMkDepend.hs 
                         DriverPhases.hs DriverPipeline.hs 
                         DriverState.hs Finder.lhs GetImports.hs 
                         HscMain.lhs HscTypes.lhs Main.hs 
    ghc/compiler/parser  Parser.y.pp RdrHsSyn.lhs 
    ghc/compiler/rename  RnBinds.lhs RnExpr.lhs RnNames.lhs 
                         RnSource.lhs 
    ghc/compiler/typecheck TcBinds.lhs TcClassDcl.lhs TcDeriv.lhs 
                           TcExpr.hi-boot TcExpr.hi-boot-6 
                           TcForeign.lhs TcHsType.lhs 
                           TcMatches.hi-boot TcMatches.hi-boot-6 
                           TcRnDriver.lhs TcRnMonad.lhs 
                           TcRnTypes.lhs TcSplice.hi-boot-6 
                           TcTyClsDecls.lhs TcType.hi-boot 
                           TcType.lhs TcUnify.hi-boot TcUnify.lhs 
    ghc/compiler/types   TyCon.hi-boot TypeRep.hi-boot 
    ghc/docs/comm/genesis modules.html 
    ghc/utils/ghc-pkg    Main.hs 
    libraries/base/Foreign Ptr.hs 
    libraries/base/GHC   Num.lhs 
  Added files:
    ghc/compiler/basicTypes DataCon.lhs-boot IdInfo.lhs-boot 
                            MkId.lhs-boot Module.lhs-boot 
                            Name.lhs-boot OccName.lhs-boot 
    ghc/compiler/codeGen CgBindery.lhs-boot CgExpr.lhs-boot 
                         ClosureInfo.lhs-boot 
    ghc/compiler/deSugar DsExpr.lhs-boot Match.lhs-boot 
    ghc/compiler/hsSyn   HsExpr.lhs-boot HsPat.lhs-boot 
    ghc/compiler/iface   TcIface.lhs-boot 
    ghc/compiler/main    Packages.lhs-boot 
    ghc/compiler/rename  RnSource.lhs-boot 
    ghc/compiler/typecheck TcExpr.lhs-boot TcMatches.lhs-boot 
                           TcSplice.lhs-boot TcType.lhs-boot 
                           TcUnify.lhs-boot 
    ghc/compiler/types   TyCon.lhs-boot TypeRep.lhs-boot 
    libraries/base/Data  Dynamic.hs-boot 
    libraries/base/GHC   Err.lhs-boot Unicode.hs-boot 
  Removed files:
    libraries/base/Data  Dynamic.hi-boot 
    libraries/base/GHC   Err.hi-boot Unicode.hi-boot 
  Log:
    	--------------------------------------------
            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.
  
  Revision  Changes    Path
  1.281     +7 -3      fptools/ghc/compiler/Makefile
  1.7       +9 -7      fptools/ghc/compiler/basicTypes/DataCon.hi-boot
  1.6       +7 -9      fptools/ghc/compiler/basicTypes/IdInfo.hi-boot
  1.8       +11 -5     fptools/ghc/compiler/basicTypes/MkId.hi-boot
  1.59      +22 -23    fptools/ghc/compiler/basicTypes/Module.lhs
  1.4       +3 -6      fptools/ghc/compiler/basicTypes/Name.hi-boot
  1.8       +10 -9     fptools/ghc/compiler/codeGen/CgBindery.hi-boot
  1.4       +13 -5     fptools/ghc/compiler/codeGen/CgExpr.hi-boot
  1.158     +258 -202  fptools/ghc/compiler/compMan/CompManager.lhs
  1.84      +3 -0      fptools/ghc/compiler/deSugar/Desugar.lhs
  1.4       +17 -7     fptools/ghc/compiler/deSugar/DsExpr.hi-boot
  1.57      +57 -15    fptools/ghc/compiler/deSugar/DsMonad.lhs
  1.79      +0 -25     fptools/ghc/compiler/deSugar/DsUtils.lhs
  1.6       +18 -9     fptools/ghc/compiler/deSugar/Match.hi-boot
  1.6       +4 -4      fptools/ghc/compiler/deSugar/Match.hi-boot-6
  1.49      +0 -1      fptools/ghc/compiler/ghci/Linker.lhs
  1.77      +12 -8     fptools/ghc/compiler/hsSyn/HsBinds.lhs
  1.12      +10 -11    fptools/ghc/compiler/hsSyn/HsExpr.hi-boot
  1.10      +4 -2      fptools/ghc/compiler/iface/BinIface.hs
  1.12      +6 -1      fptools/ghc/compiler/iface/IfaceType.lhs
  1.24      +25 -68    fptools/ghc/compiler/iface/LoadIface.lhs
  1.25      +20 -14    fptools/ghc/compiler/iface/MkIface.lhs
  1.196     +10 -25    fptools/ghc/compiler/main/CmdLineOpts.lhs
  1.56      +1 -1      fptools/ghc/compiler/main/CodeOutput.lhs
  1.146     +18 -18    fptools/ghc/compiler/main/DriverFlags.hs
  1.37      +236 -179  fptools/ghc/compiler/main/DriverMkDepend.hs
  1.32      +127 -55   fptools/ghc/compiler/main/DriverPhases.hs
  1.177     +276 -222  fptools/ghc/compiler/main/DriverPipeline.hs
  1.112     +21 -3     fptools/ghc/compiler/main/DriverState.hs
  1.76      +183 -162  fptools/ghc/compiler/main/Finder.lhs
  1.13      +3 -1      fptools/ghc/compiler/main/GetImports.hs
  1.203     +139 -107  fptools/ghc/compiler/main/HscMain.lhs
  1.122     +75 -2     fptools/ghc/compiler/main/HscTypes.lhs
  1.143     +20 -44    fptools/ghc/compiler/main/Main.hs
  1.23      +1 -48     fptools/ghc/compiler/parser/Parser.y.pp
  1.81      +0 -208    fptools/ghc/compiler/parser/RdrHsSyn.lhs
  1.95      +25 -8     fptools/ghc/compiler/rename/RnBinds.lhs
  1.133     +2 -2      fptools/ghc/compiler/rename/RnExpr.lhs
  1.182     +15 -6     fptools/ghc/compiler/rename/RnNames.lhs
  1.171     +2 -13     fptools/ghc/compiler/rename/RnSource.lhs
  1.133     +19 -6     fptools/ghc/compiler/typecheck/TcBinds.lhs
  1.146     +1 -1      fptools/ghc/compiler/typecheck/TcClassDcl.lhs
  1.139     +11 -2     fptools/ghc/compiler/typecheck/TcDeriv.lhs
  1.8       +20 -14    fptools/ghc/compiler/typecheck/TcExpr.hi-boot
  1.8       +1 -1      fptools/ghc/compiler/typecheck/TcExpr.hi-boot-6
  1.71      +4 -4      fptools/ghc/compiler/typecheck/TcForeign.lhs
  1.21      +1 -0      fptools/ghc/compiler/typecheck/TcHsType.lhs
  1.9       +19 -14    fptools/ghc/compiler/typecheck/TcMatches.hi-boot
  1.9       +2 -2      fptools/ghc/compiler/typecheck/TcMatches.hi-boot-6
  1.93      +133 -50   fptools/ghc/compiler/typecheck/TcRnDriver.lhs
  1.44      +10 -5     fptools/ghc/compiler/typecheck/TcRnMonad.lhs
  1.50      +4 -1      fptools/ghc/compiler/typecheck/TcRnTypes.lhs
  1.9       +2 -2      fptools/ghc/compiler/typecheck/TcSplice.hi-boot-6
  1.120     +26 -7     fptools/ghc/compiler/typecheck/TcTyClsDecls.lhs
  1.5       +5 -5      fptools/ghc/compiler/typecheck/TcType.hi-boot
  1.117     +5 -1      fptools/ghc/compiler/typecheck/TcType.lhs
  1.3       +19 -7     fptools/ghc/compiler/typecheck/TcUnify.hi-boot
  1.60      +1 -4      fptools/ghc/compiler/typecheck/TcUnify.lhs
  1.5       +5 -11     fptools/ghc/compiler/types/TyCon.hi-boot
  1.5       +5 -9      fptools/ghc/compiler/types/TypeRep.hi-boot
  1.4       +12 -3     fptools/ghc/docs/comm/genesis/modules.html
  1.63      +9 -5      fptools/ghc/utils/ghc-pkg/Main.hs
  1.19      +0 -1      fptools/libraries/base/Foreign/Ptr.hs
  1.10      +0 -1      fptools/libraries/base/GHC/Num.lhs


More information about the Cvs-libraries mailing list