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