- 22 Sep, 2015 3 commits
-
-
Ryan Scott authored
Summary: This implements -XDeriveLift, which allows for automatic derivation of the Lift class from template-haskell. The implementation is based off of Ian Lynagh's th-lift library (http://hackage.haskell.org/package/th-lift). Test Plan: ./validate Reviewers: hvr, simonpj, bgamari, goldfire, austin Reviewed By: goldfire, austin Subscribers: osa1, thomie Differential Revision: https://phabricator.haskell.org/D1168 GHC Trac Issues: #1830
-
niteria authored
The names of auxiliary bindings end up in the interface file, and since uniques are nondeterministic, we end up with nondeterministic interface files. This uses the package and module name in the generated name, so I believe it should avoid problems from #7947 and be deterministic as well. The generated names look like this now: `$cLrlbmVwI3gpI8G2E6Hg3mO` and with `-ppr-debug`: `$c$aeson_70dylHtv1FFGeai1IoxcQr$Data.Aeson.Types.Internal$String`. Reviewed By: simonmar, austin, ezyang Differential Revision: https://phabricator.haskell.org/D1133 GHC Trac Issues: #4012
-
Eric Seidel authored
The default top-level exception handler now uses the `Show` instance for `ErrorCall` when printing exceptions, so it will actually print the out-of-band data (e.g. `CallStack`s) in compiled binaries, instead of just printing the error message. This also updates the hpc submodule to fix the test output. Reviewed By: austin, thomie Differential Revision: https://phabricator.haskell.org/D1217
-
- 21 Sep, 2015 21 commits
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Ben Gamari authored
It's unlikely that these lists would have become very large but nevertheless this is an easy and worthwhile change. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1265
-
niteria authored
It's not used anywhere. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1266
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Edward Z. Yang authored
This patch drops the file level distinction between hs-boot and hsig; we figure out which one we are compiling based on whether or not there is a corresponding hs file lying around. To make the "import A" syntax continue to work for bare hs-boot files, we also introduce hs-boot merging, which takes an A.hi-boot and converts it to an A.hi when there is no A.hs file in scope. This will be generalized in Backpack to merge multiple A.hi files together; which means we can jettison the "load multiple interface files" functionality. This works automatically for --make, but for one-shot compilation we need a new mode: ghc --merge-requirements A will generate an A.hi/A.o from a local A.hi-boot file; Backpack will extend this mechanism further. Has Haddock submodule update to deal with change in msHsFilePath behavior. - This commit drops support for the hsig extension. Can we support it? It's annoying because the finder code is written with the assumption that where there's an hs-boot file, there's always an hs file too. To support hsig, you'd have to probe two locations. Easier to just not support it. - #10333 affects us, modifying an hs-boot still doesn't trigger recomp. - See compiler/main/Finder.hs: this diff is very skeevy, but it seems to work. - This code cunningly doesn't drop hs-boot files from the "drop hs-boot files" module graph, if they don't have a corresponding hs file. I have no idea if this actually is useful. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin, bgamari, spinda Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1098
-
Edward Z. Yang authored
This reverts commit 0c6c015d.
-
Edward Z. Yang authored
This reverts commit 214596de.
-
eir@cis.upenn.edu authored
Thanks for the suggestion, Austin. Just missed that while making a bunch of similar changes.
-
eir@cis.upenn.edu authored
Now we use Array to store branches. This makes sense because we often have to do random access (once inference is done). This also vastly simplifies the awkward BranchList type. This fixes #10837 and updates submodule utils/haddock.
-
eir@cis.upenn.edu authored
This fixes #10896. In the indexed-types/should_fail/BadSock test, there is a bad type definition. This gets type-checked, an error gets reported, but then **GHC keeps going**. Later, when running the simplifier to do an ambiguity check, the bad type environment causes GHC to fall over. My solution: only run the simplifier in a clean, error-free type environment. A downside of this is that fewer error messages are reported. This makes me a bit sad, but I'm not sure how to avoid the problem. Suggestions welcome.
-
eir@cis.upenn.edu authored
This fixes #10817 and #10899. A knock-on effect is that we must now remember locations of associated type defaults for error messages during validity checking. This isn't too bad, but it increases the size of the diff somewhat. Test cases: indexed-types/should_fail/T108{17,99}
-
eir@cis.upenn.edu authored
This makes two real changes: - Equalities like (a ~R [a]) really *are* insoluble. Previously, GHC refused to give up when an occurs check bit on a representational equality. But for datatypes, it really should bail. - Now, GHC will sometimes report an occurs check error (in cases above) for representational equalities. Previously, it never did. This "fixes" #10715, where by "fix", I mean clarifies the error message. It's unclear how to do more to fix that ticket. Test cases: typecheck/should_fail/T10715{,b}
-
eir@cis.upenn.edu authored
Thanks to Gabor Greif for spotting the mistake.
-
eir@cis.upenn.edu authored
This fixes #10810 by cleaning up pretty-printing of constructor declarations. This change also removes a (in my opinion) deeply bogus orphan instance OutputableBndr [Located name], making HsDecls now a non-orphan module. Yay all around. Test case: th/T10810
-
eir@cis.upenn.edu authored
The previous message was wrong, as pointed out by Jan Stolarek.
-
eir@cis.upenn.edu authored
This fixes #10855.
-
eir@cis.upenn.edu authored
This fixes #10811.
-
eir@cis.upenn.edu authored
This is part of #10811. It removes the "family" keyword from associated type family declarations, and it adds the "type" keyword to associated type family defaults.
-
eir@cis.upenn.edu authored
-
eir@cis.upenn.edu authored
-
eir@cis.upenn.edu authored
-
- 20 Sep, 2015 4 commits
-
-
thomie authored
Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1253
-
Edward Z. Yang authored
Test Plan: validate Reviewers: simonpj, austin, bgamari Reviewed By: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1249
-
Matthew Pickering authored
This gives a clearer indication as to what gets filled in when. It was suggested by Richard on D1152. Test Plan: ./validate Reviewers: austin, goldfire, bgamari Reviewed By: goldfire, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1245
-
Edward Z. Yang authored
To keep validates fast, we only one run one way. But I think that it's important for some tests to run them a few ways, just to make sure functionality, e.g. the profiler, is working. This commit changes the logic so that any way specified in extra_ways is always run for fast. The big changes is now profiling tests are run on validate. I also made it so the G1 garbage collector tests only run on slow. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: austin, thomie, bgamari Reviewed By: austin, thomie, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1251
-
- 19 Sep, 2015 2 commits
-
-
eir@cis.upenn.edu authored
-
eir@cis.upenn.edu authored
tcFamTyPats now must take information about the instantiation of any class variables, when checking the instance of an associated type. Getting this to work out required some unexpected refactoring in TcDeriv. TcDeriv needs to look at class instances because of the possibility of associated datatypes with `deriving` specs. TcDeriv worked over the user-specified instances. But any data family instances were already processed, and TcDeriv had no way of finding the rep tycons. Indeed, TcDeriv *re-type-checked* any data family instances in an attempt to rediscover what GHC already knew. So, this commit introduces better tracking of compiled data families between TcInstDcls and TcDeriv to streamline all of this.
-
- 18 Sep, 2015 1 commit
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1250
-
- 17 Sep, 2015 5 commits
-
-
thomie authored
During the build, when HADDOCK_DOCS=YES, the command 'cd libraries && sh gen_contents_index --intree' is run, which calls haddock to generate the haddock index at 'libraries/dist-haddock/index.html'. What it did before was check the ./packages file for all libraries. The problem is that 'base' and 'ghc-prim' were folded into the main repo some time ago, hence don't have an entry in the ./packages file anymore. As a result, 'base' and 'ghc-prim' were missing from the index.html file. It now simply runs haddock on all the all the `.haddock` files in the libraries directory. The only risk is that this could include the extra libraries in the index.html, if you ever built them in the past (with BUILD_EXTRA_PKGS=YES), even though now you want to exclude them (with BUILD_EXTRA_PKGS=NO). gen_contents_index doesn't have access to build system variables though (PACKAGES_STAGE1+PACKAGES_STAGE2), so fixing this would be a little bit fiddly. Test Plan: 'make libraries/dist-haddock/index.html && grep -q base libraries/dist-haddock/index.html && echo ok' Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1247
-
Ryan Scott authored
Currently there exists a nameBase function (for retrieving a Name's OccName) and a nameModule function (for retrieving a Name's ModName), but there is no counterpart for PkgNames. This would be useful for implementing Template Haskell features which need to have easy access to a Name's package (e.g., automatically derived Lift instances). Reviewed By: goldfire, austin, thomie Differential Revision: https://phabricator.haskell.org/D1237
-
Simon Marlow authored
Summary: This is an implementation of the ApplicativeDo proposal. See the Note [ApplicativeDo] in RnExpr for details on the current implementation, and the wiki page https://ghc.haskell.org/trac/ghc/wiki/ApplicativeDo for design notes. Test Plan: validate Reviewers: simonpj, goldfire, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D729
-
Moritz Kiefer authored
Show the minimal complete definition on :info in ghci. They are shown like MINIMAL pragmas in code. If the minimal complete definition is empty or only a specific method from a class is requested, nothing is shown. Reviewed By: simonpj, austin, thomie Differential Revision: https://phabricator.haskell.org/D1241
-
thomie authored
-
- 16 Sep, 2015 1 commit
-
- 15 Sep, 2015 2 commits
-
-
thomie authored
From the help text: -i[+|-] sort by identifier string (-i+ gives greatest on top) Found by David Binderman.
-
Sebastian Reuße authored
As per issue #10509, the documentation gave the wrong glyphs for Unicode alternatives to the -< and >- arrow operators (the codepoints were correct, but the glyphs were not). The incorrect glyphs have also made it into the error output. This replaces those characters with the correct versions. GHC Trac Issues: #10883
-
- 14 Sep, 2015 1 commit
-
-
Simon Marlow authored
Summary: (see comment for details) Test Plan: validate Reviewers: bgamari, ezyang, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1243
-