summaryrefslogtreecommitdiff
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
...
* Always qualify on hi interface mismatch.Edward Z. Yang2014-07-211-1/+1
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Rename PackageId to PackageKey, distinguishing it from Cabal's PackageId.Edward Z. Yang2014-07-2153-335/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously, both Cabal and GHC defined the type PackageId, and we expected them to be roughly equivalent (but represented differently). This refactoring separates these two notions. A package ID is a user-visible identifier; it's the thing you write in a Cabal file, e.g. containers-0.9. The components of this ID are semantically meaningful, and decompose into a package name and a package vrsion. A package key is an opaque identifier used by GHC to generate linking symbols. Presently, it just consists of a package name and a package version, but pursuant to #9265 we are planning to extend it to record other information. Within a single executable, it uniquely identifies a package. It is *not* an InstalledPackageId, as the choice of a package key affects the ABI of a package (whereas an InstalledPackageId is computed after compilation.) Cabal computes a package key for the package and passes it to GHC using -package-name (now *extremely* misnamed). As an added bonus, we don't have to worry about shadowing anymore. As a follow on, we should introduce -current-package-key having the same role as -package-name, and deprecate the old flag. This commit is just renaming. The haddock submodule needed to be updated. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, simonmar, hvr, austin Subscribers: simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D79 Conflicts: compiler/main/HscTypes.lhs compiler/main/Packages.lhs utils/haddock
* Make 'ghc' a wired in package.Edward Z. Yang2014-07-213-1/+9
| | | | | | | | | | | | | | | | | | | | Summary: Previously, the GHC API was "semi" wired-in: it was installed with a version number, but that version number was hard-coded into the compiler and it wasn't really possible to install other copies of the GHC API. This patch makes the GHC API more similar to existing wired-in packages such as ghc-prim, and will be helpful when we start extending the amount of information passed to -package-name. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonmar, simonpj, hvr, austin Subscribers: simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D78
* Typos in noteGabor Greif2014-07-211-3/+3
|
* driver: use absolute paths in ld scripts (#7452)Austin Seipp2014-07-201-1/+3
| | | | | | Patch contributed by slowmo. Signed-off-by: Austin Seipp <austin@well-typed.com>
* fix inconsistency in exported functions from TcSplice.lhs/lhs-boot files ↵Karel Gardas2014-07-201-4/+4
| | | | | | | | | | | | | | | | | | | | when GHCI is not defined Summary: This patch fixes inconsistency in exported functions from TcSplice.lhs and TcSplice.lhs-boot files. It looks like only GHC HEAD is sensitive to it and complains about it while bootstraping another HEAD. At least this is what happening on Solaris/AMD64 builder machine where GHC 7.9.20140620 is used as a boostrap compiler. The failure does not happen on another builders. Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D74
* Adding more parser exports and some documentation.Andrew Gibiansky2014-07-201-3/+28
| | | | | | | | | | | | | | Summary: Add a few exports to be generated by the Happy parser module. Add documentation showing how to use the Happy parser. Test Plan: Validate Reviewers: carter, austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D71
* types: detabify/dewhitespace KindAustin Seipp2014-07-201-28/+21
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* utils: detabify/dewhitespace DigraphAustin Seipp2014-07-201-43/+36
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/BaseAustin Seipp2014-07-201-53/+41
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/Gen32Austin Seipp2014-07-201-373/+361
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/SanityAustin Seipp2014-07-201-53/+42
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/ExpandAustin Seipp2014-07-201-106/+91
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/AmodeAustin Seipp2014-07-201-23/+15
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CodeGen/CondCodeAustin Seipp2014-07-201-29/+21
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/CondAustin Seipp2014-07-201-29/+21
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/RegsAustin Seipp2014-07-201-145/+137
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/InstrAustin Seipp2014-07-201-311/+302
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/ShortcutJumpAustin Seipp2014-07-201-21/+10
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/ImmAustin Seipp2014-07-201-42/+32
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SPARC/StackAustin Seipp2014-07-201-29/+20
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace TargetRegAustin Seipp2014-07-201-22/+12
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace RegClassAustin Seipp2014-07-201-28/+20
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace PPC/RegInfoAustin Seipp2014-07-201-16/+7
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace PPC/CondAustin Seipp2014-07-201-25/+17
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace X86/RegInfoAustin Seipp2014-07-201-19/+11
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace RegAustin Seipp2014-07-201-127/+116
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* nativeGen: detabify/dewhitespace SizeAustin Seipp2014-07-201-51/+44
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* prelude: detabify/unwhitespace PrelInfoAustin Seipp2014-07-201-35/+28
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* main: detabify/unwhitespace PprTyThingAustin Seipp2014-07-201-15/+8
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* ghci: detabify/unwhitespace ByteCodeInstrAustin Seipp2014-07-201-92/+84
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* ghci: detabify/unwhitespace ByteCodeGenAustin Seipp2014-07-201-15/+8
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* cmm: detabify/unwhitespace CmmLexAustin Seipp2014-07-201-104/+104
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* cmm: detabify/unwhitespace CmmInfoAustin Seipp2014-07-201-56/+48
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* profiling: detabify/unwhitespace CostCentreAustin Seipp2014-07-201-53/+45
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* parser: detabify/dewhitespace cutils.cAustin Seipp2014-07-201-5/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* parser: detabify/dewhitespace CtypeAustin Seipp2014-07-201-27/+20
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* ghci: detabify/dewhitespace RtClosureInspectAustin Seipp2014-07-201-89/+81
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Comments onlySimon Peyton Jones2014-07-201-4/+6
|
* Further improvements to floating equalitiesSimon Peyton Jones2014-07-181-120/+191
| | | | | | | | | | | This equality-floating stuff is horribly delicate! Trac #9316 showed up yet another corner case. The main changes are * include CTyVarEqs when "growing" the skolem set * do not include the kind argument to (~) when growing the skolem set I added a lot more comments as well
* Comments onlySimon Peyton Jones2014-07-181-3/+15
|
* Reduce volume of typechecker trace informationSimon Peyton Jones2014-07-181-5/+11
|
* Remove unused parameters in OptCoercion (#9233)Richard Eisenberg2014-07-171-11/+8
|
* Workaround haddock parser error caused by 5e7406d9Herbert Valerio Riedel2014-07-171-3/+3
| | | | | | | | | | | | | Haddock complains if a comment looks like a misplaced Haddock-comment. In this case, the comment line starting with `-- *kind* and` looked like a section-heading to Haddock and caused the following error: parse error on input ‘-- *kind* and role of its argument. Luckily, laziness should’ This commit just rewraps the line so that no `*` appear at the start of the non-Haddock comment lines. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Optimise optCoercion. (#9233)Richard Eisenberg2014-07-161-94/+187
| | | | | | | The old optCoercion (and helper functions) used coercionKind and coercionRole internally. This was terrible when these had to be called at *every* point in the coercion tree during the recursive descent. This is rewritten to avoid such calls.
* Rewrite coercionRole. (#9233)Richard Eisenberg2014-07-163-30/+60
| | | | | | | | | | | | | | | | | Summary: coercionRole is now much more efficient, computing both the coercion's kind and role together. The previous version calculated them separately, leading to quite possibly exponential behavior. This is still too slow, but it's a big improvement. Test Plan: Evaluate by running the "minimized" test from the Trac ticket. Reviewers: simonpj, austin Subscribers: simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D73
* Entirely re-jig the handling of default type-family instances (fixes Trac #9063)Simon Peyton Jones2014-07-1514-315/+461
| | | | | | | | | | | | | | | | | | | | | | | | | | | In looking at Trac #9063 I decided to re-design the default instances for associated type synonyms. Previously it was all jolly complicated, to support generality that no one wanted, and was arguably undesirable. Specifically * The default instance for an associated type can have only type variables on the LHS. (Not type patterns.) * There can be at most one default instances declaration for each associated type. To achieve this I had to do a surprisingly large amount of refactoring of HsSyn, specifically to parameterise HsDecls.TyFamEqn over the type of the LHS patterns. That change in HsDecls has a (trivial) knock-on effect in Haddock, so this commit does a submodule update too. The net result is good though. The code is simpler; the language specification is simpler. Happy days. Trac #9263 and #9264 are thereby fixed as well.
* Define PrelNames.allNameStrings and use it in TcHsTypeSimon Peyton Jones2014-07-152-5/+15
| | | | Refactoring only.
* White space onlySimon Peyton Jones2014-07-141-1/+1
|
* Add a clarifying comment about scoping of type variables in associated type ↵Simon Peyton Jones2014-07-141-0/+5
| | | | decls