| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Fix validate bug
|
|
|
|
|
|
|
|
| |
Extended the commentary with a section about the STG-related parts of GHC
(generation of STG from Core, STG passes, and generation of Cmm).
[BTW, it's a pity that nobody bothered to write up the new code generation
structure when it was implemented not long ago.]
|
|
|
|
| |
Add note about defaulting
|
|
|
|
| |
Clarification re overlapping instances; merge to stable
|
|
|
|
|
| |
Work around bugs in DocBook XSL stylesheets: don't put
cross-references in section headers.
|
|
|
|
| |
-no-link is renamed to -c
|
|
|
|
| |
improve docs for scoped type vars
|
|
|
|
| |
Turn a Q/A section into a <variablelist> to avoid fop barfage.
|
|
|
|
| |
Add a pointer to the Cabal docs
|
|
|
|
| |
Add a clarifying para about Win32 GUI-only programs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
---------------------------------------------
Make type synonyms uniform with data types
so far as infix operators are concerned
---------------------------------------------
Merge to STABLE
This allows
type (a :+: b) c d = ...
which was prevented before by accident.
I've also documented the fact that classes can be infix;
and arranged that class constraints in types can be in infix form.
f :: (a :=: b) => ....
|
|
|
|
|
|
|
|
|
|
|
| |
-------------------------------------------------------
Change -include-prelude to -include-pkg-deps for ghc -M
-------------------------------------------------------
Merge to STABLE
This commit just renames the flag for ghc -M to something more
sensible.
|
|
|
|
| |
Commentary stuff
|
|
|
|
| |
Mention GHC's relaxation of the layout rule
|
|
|
|
| |
Update documentation of ghc-pkg command
|
|
|
|
| |
Fix documentation for ghc-pkg list.
|
|
|
|
| |
xrefs to Cabal docs
|
|
|
|
| |
Better documentation for unboxed types; merge to STABLE
|
|
|
|
| |
Document dependency printing
|
|
|
|
| |
Add an entry for "duplicate definition for __module_registered"
|
|
|
|
| |
Finish docs for hs-boot files; please review!
|
|
|
|
| |
First cut at hs-boot documentation
|
|
|
|
| |
x-ref INCLUDE pragmas
|
|
|
|
| |
Document {-# INCLUDE #-}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rationalise the BUILD,HOST,TARGET defines.
Recall that:
- build is the platform we're building on
- host is the platform we're running on
- target is the platform we're generating code for
The change is that now we take these definitions as applying from the
point of view of the particular source code being built, rather than
the point of view of the whole build tree.
For example, in RTS and library code, we were previously testing the
TARGET platform. But under the new rule, the platform on which this
code is going to run is the HOST platform. TARGET only makes sense in
the compiler sources.
In practical terms, this means that the values of BUILD, HOST & TARGET
may vary depending on which part of the build tree we are in.
Actual changes:
- new file: includes/ghcplatform.h contains platform defines for
the RTS and library code.
- new file: includes/ghcautoconf.h contains the autoconf settings
only (HAVE_BLAH). This is so that we can get hold of these
settings independently of the platform defines when necessary
(eg. in GHC).
- ghcconfig.h now #includes both ghcplatform.h and ghcautoconf.h.
- MachRegs.h, which is included into both the compiler and the RTS,
now has to cope with the fact that it might need to test either
_TARGET_ or _HOST_ depending on the context.
- the compiler's Makefile now generates
stage{1,2,3}/ghc_boot_platform.h
which contains platform defines for the compiler. These differ
depending on the stage, of course: in stage2, the HOST is the
TARGET of stage1. This was wrong before.
- The compiler doesn't get platform info from Config.hs any more.
Previously it did (sometimes), but unless we want to generate
a new Config.hs for each stage we can't do this.
- GHC now helpfully defines *_{BUILD,HOST}_{OS,ARCH} automatically
in CPP'd Haskell source.
- ghcplatform.h defines *_TARGET_* for backwards compatibility
(ghcplatform.h is included by ghcconfig.h, which is included by
config.h, so code which still #includes config.h will get the TARGET
settings as before).
- The Users's Guide is updated to mention *_HOST_* rather than
*_TARGET_*.
- coding-style.html in the commentary now contains a section on
platform defines. There are further doc updates to come.
Thanks to Wolfgang Thaller for pointing me in the right direction.
|
|
|
|
| |
Make -no-recomp a dynamic flag
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--------------------------------------------
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.
|
|
|
|
| |
Update packages documentation (phew)
|
|
|
|
| |
Mention -fffi in this chapter.
|
|
|
|
| |
Rename OPTIONS to OPTIONS_GHC.
|
|
|
|
| |
Document some missing flags.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
----------------------------------------
Add more scoped type variables
----------------------------------------
Now the top-level forall'd variables of a type signature scope
over the right hand side of that function.
f :: a -> a
f x = ....
The type variable 'a' is in scope in the RHS, and in f's patterns.
It's implied by -fglasgow-exts, but can also be switched off independently
using -fscoped-type-variables (and the -fno variant)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--------------------------
Add -fwarn-orphans flag
--------------------------
This gives a decent report for modules that contain 'orphan' instance and
rule declarations. These are to be avoided, because GHC has to proactively
read the interface file every single time, just in case the instance/rule is
needed.
The flag just gives a convenient way of identifying the culprits.
|
|
|
|
|
| |
The documentation breakage continues... >:-( Fixed DocBook. Again: "make html"
(or the faster "make validate" in the case of DocBook XML) is your friend! >:-(
|
|
|
|
| |
Add entry about Ctrl-C on Windows
|
|
|
|
| |
Update TH import
|
|
|
|
| |
Docmunent -fmonomorphism-restriction and -fimplicit-prelude
|
|
|
|
| |
Document overlapping instances
|
|
|
|
| |
More about hi-boot files
|
|
|
|
| |
Add readline/GHCi/Windows entry
|
|
|
|
|
| |
Fixed DocBook XML once again. Perhaps I should add a "make validate"
CVS hook, hmmm... >:-)
|
|
|
|
| |
Add Haskell 98 isAlpha divergence
|
|
|
|
| |
Implement -fwarn-incomplete-record-updates
|
|
|
|
| |
Fixed some links
|
|
|
|
| |
Use XML mode, not SGML
|
|
|
|
| |
Document -ferror-spans
|
|
|
|
| |
spelling
|
|
|
|
| |
First-cut documentation for GADTs
|
|
|
|
| |
A bit more about hi-boot
|
|
|
|
| |
Stylistic changes
|