- Jan 11, 2025
-
-
Karim Taha authored
Draft: try to eliminate all usages of `addFatalError' and substitue with `addError' followed by `return badValue' for a suitable `badValue'
-
Karim Taha authored
The motivation is that some parsing errors still halt the whole pipeline due to wrong interaction between the catch mechansim and the layout rule requiring emission of `error' tokens, So we try to keep as much info in the source up until the occurrence of error.
-
Karim Taha authored
Use the new `%error {} {}` resumption facilities with `ValD`, `HsUnboundVar', `WildPat' and `HsWildCardTy' constructors representing parse errors.
-
Karim Taha authored
-
- Jan 10, 2025
-
-
While the testsuite driver already normalizes these away, they are nevertheless a severe nuisance when diffing outside of the testsuite. Intriguingly, this doesn't completely eliminate the unit IDs; some wired-in names are still printed. However, this is a cheap and helpful improvement over the status quo so I am simply going to accept this. Fixes #25334.
-
Fixes #25574
-
- Jan 09, 2025
-
-
This makes it considerably easier to grok the structure of the heap when IPE information is available.
-
- Jan 07, 2025
-
-
Luite Stegeman authored
We found that speculative evaluation can increase the amount of allocations in some circumstances. This patch adds new flags for selectively disabling speculative evaluation, allowing us to test the effect of the optimization. The new flags are: -fspec-eval globally enable speculative evaluation -fspec-eval-dictfun enable speculative evaluation for dictionary functions (no effect if speculative evaluation is globally disabled) The new flags are on by default for all optimisation levels. See #25284
-
-
Addresses #25630 In particular, * Introduce ConArgKind and use it. * Make kcConDecls and tcConDecls work the same way concerning the kind of argument types
-
There were two ad-hoc mechanisms used to determine which modules were in the interactive scope. 1. Look at everything in the GRE, to see what is imported qualified. 2. Look at the last loaded module in the HPT. (1) Is very inefficient, GlobalRdrEnvs can be very big. (2) is incorrect, there is no reason to assume the "last" thing added to the HPT has any relevance to module loading order. Happily, the same checks can be implemented directly by looking at the interactive imports from the interactive context. This mirrors what happens for normal imports. Arguably, the error reporting code shouldn't be doing this kind of processing and it should be an option is set when rendering the error message. However, this just improves the situation and doesn't block progress on that front in future. See #14225 and #15611 Fixes #25600
-
- Dec 30, 2024
-
-
-
The issue has been fixed by commit f5d3e03c. Only T23883a is the actual regression test, the remaining ones are tricky cases found during development of an independent fix !11313.
-
- Dec 29, 2024
-
-
Ticket #25468 showed an assertion failure in CSE because a top-level Id was being used before it was defined. Reason: Note [Glomming] in GHC.Core.Opt.OccurAnal. Solution (used in many places): just put all the top-level bindings in scope at the beginning of CSE. Compile-time allocation wobbles up and down a tiny bit; geo mean is zero. But MultiLayerModulesTH_OneShot and hard_hole_fits increase (on some architectures only) by a bit oever 2% . I think these are just a random fluctuations. Metric Increase: MultiLayerModulesTH_OneShot hard_hole_fits
-
Also bump various submodules. (cherry picked from commit 6fc1fa3b) Bump base bound to 4.21 for GHC 9.12 (cherry picked from commit 473a201c) Bump binary submodule to 0.8.9.2 (cherry picked from commit 7199869a) (cherry picked from commit ec2f40b4) Bump exceptions submodule to 0.10.9 (cherry picked from commit f5b5d1dc) Bump file-io submodule to 0.1.4 (cherry picked from commit ba786681) bump os-string submodule to 2.0.6 (cherry picked from commit 3a7ffdbb) bump transformers submodule to 0.6.1.2 (cherry picked from commit 53b46fd4) Bump directory submodule to v1.3.9.0 (cherry picked from commit 27dc2664) Bump Win32 submodule to v2.14.1.0 (cherry picked from commit 80df8808) Bump filepath submodule to 1.5.3.0 (cherry picked from commit 29bfae2c) Bump file-io submodule to avoid usage of QuasiQuotes (cherry picked from commit 97b0dff2) Bump unix submodule to 2.8.6.0 (cherry picked from commit a1f56d6d) Bump os-string submodule to 2.0.8 (cherry picked from commit 0121b76f) Bump file-io submodule to avoid usage of QuasiQuotes (cherry picked from commit 962ceb50) Bump filepath submodule to 1.5.4.0 (cherry picked from commit 7bc6877f) Bump file-io submodule to 0.1.5 (cherry picked from commit 9478b5ae) Bump Cabal submodule to 3.14.1.0 (cherry picked from commit 5c9c3e3f) Bump directory submodule to 0.12.2.0 (cherry picked from commit 89790626) Bump array submodule for base bump Bump stm submodule for base bump Bump process submodule for base bump
-
- Dec 28, 2024
-
-
With a recent LLVM, `llc -version` emits the version on the first line if the vendor is set. It emits the version on the second line otherwise. Therefore, we need to check the both lines to detect the version. GHC now emits a warning if it fails to detect the LLVM version, so we can notice if the output of `llc -version` changes in the future. Also, the warning for using LLVM < 10 on s390x is removed, because we assume LLVM >= 13 now. This fixes the definition of __GLASGOW_HASKELL_LLVM__ macro. Fixes #25606
-
- Dec 27, 2024
-
-
Sergey Vinokurov authored
-
Sergey Vinokurov authored
-
Sergey Vinokurov authored
The Monad instance shouldn't produce the outer :| unless f a reduces to WHNF. (Notice that the b :| bs match is implicitly lazy.)
-
Sergey Vinokurov authored
-
Sergey Vinokurov authored
Implementation of https://github.com/haskell/core-libraries-committee/issues/107
-
- Dec 26, 2024
-
- Dec 25, 2024
-
-
This MR fixes yet another manifestation of the trickiness caused by Note [Fundeps with instances, and equality orientation]. I wish there was a more robust way to do this, but this fix is a definite improvement. Fixes #25597
-
This slightly eases updating of the `latest` symlinks.
-
GHC Proposal 583 "HasField redesign" specifies the following order of a setField function arguments as this: setField :: forall fld a b. SetField fld a b. b -> a -> a This patch flips the application order to match the spec.
-
- Dec 20, 2024
-
-
This eta expansion was introduced with the initial commit for Linear types. I believe this isn't needed any longer. My guess is it is an artifact from the initial linear types implementation: data constructors are linear, but they shouldn't need to be eta expanded to be used as higher order functions. I suppose in the early days this wasn't true. For instance, this works now: data T x = T x f = \(x :: forall y. y -> T y) -> x True f T -- ok! T is linear, but can be passed where an unrestricted higher order function is expected. I recall there being some magic around to make this work for data constructors... Since this works, there's no need to eta_expand the data constructors in the derived Data instances.
-
Significantly improves performance of deriving Show instances by avoiding using the very polymorphic `.` operator in favour of inlining its definition. We were generating tons of applications of it, each which had 3 type arguments! Improves on #9557 ------------------------- Metric Decrease: InstanceMatching T12707 T3294 ------------------------
-
First step towards merging ghc-bignum and ghc-prim into ghc-internal. After this patch, ghc-bignum is deprecated and is just a shallow package reexporting modules from ghc-internal and base. Use those directly instead. Move `gmp` submodule into ghc-internal directory.
-
- Dec 19, 2024
-
-
Fixes #25518.