This project is mirrored from https://*****:*****@gitlab.haskell.org/ghc/ghc.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Jun 01, 2023
-
-
Matthew Pickering authored
-
- Apr 14, 2023
-
-
Simon Peyton Jones authored
Whether a binding is a DFunId or not has consequences for the `-fdicts-strict` flag, essentially if we are doing demand analysis for a DFunId then `-fdicts-strict` does not apply because the constraint solver can create recursive groups of dictionaries. In #22549 this was fixed for the "normal" case, see Note [Do not strictify the argument dictionaries of a dfun]. However the loop still existed if the DFunId was being specialised. The problem was that the specialiser would specialise a DFunId and turn it into a VanillaId and so the demand analyser didn't know to apply special treatment to the binding anymore and the whole recursive group was optimised to bottom. The solution is to transfer over the DFunId-ness of the binding in the specialiser so that the demand analyser knows not to apply the `-fstrict-dicts`. Fixes #22549
-
- Apr 13, 2023
-
-
Sebastian Graf authored
... thus fixing #22549. The details are in the refurbished and no longer dead `Note [Do not strictify a DFun's parameter dictionaries]`. There's a regression test in T22549.
-
- Apr 12, 2023
-
-
Ben Gamari authored
-
Ben Gamari authored
-
- Mar 09, 2023
-
-
-
This is an experimental patch, motivated by #22886, which tries eta-expanding PAPs. Let's see what effect that has.
-
- Mar 02, 2023
-
-
Ben Gamari authored
Closes #23027.
-
Ben Gamari authored
Asm-shortcutting may produce relative references to symbols defined in other compilation units. This is not something that MachO relocations support (see #21972). For this reason we disable the optimisation on Darwin. We do so without a warning since this flag is enabled by `-O2`. Another way to address this issue would be to rather implement a PLT-relocatable jump-table strategy. However, this would only benefit Darwin and does not seem worth the effort. Closes #21972. (cherry picked from commit 8bed166b)
-
Ben Gamari authored
For reasons that aren't clear, we were previously not giving Capability the same favorable alignment on Windows that we provided on other platforms. Fix this. (cherry picked from commit 05c5b14c)
-
Ben Gamari authored
Previously we failed to tell the C allocator that `Capability`s needed to be aligned, resulting in #22965. Fixes #22965. Fixes #22975. (cherry picked from commit 2cca72cd)
-
Ben Gamari authored
(cherry picked from commit eeb5bd56)
-
Ben Gamari authored
In #22965 we noticed that changes in the size of `Capability` can result in unsound behavior due to the `align` pragma claiming an alignment which we don't in practice observe. Avoid this by statically asserting that the size is a multiple of the alignment. (cherry picked from commit 485ccdda)
-
As #22998 showed, we were floating an unlifted binding to top level, which breaks a Core invariant. The fix is easy, albeit a little bit conservative. See Note [Care with unlifted bindings] in GHC.Core.Opt.Specialise (cherry picked from commit 7192ef91)
-
As #23012 showed, GHC.Core.Opt.Simplify.Utils.prepareAlts was using an OutType to construct an InAlt. When shadowing is in play, this is outright wrong. See Note [Shadowing in prepareAlts]. (cherry picked from commit ece092d0)
-
As #23024 showed, in GHC.Core.Opt.Specialise.specImports, we were generating specialisations (a locally-define function) for imported functions; and then generating specialisations for those locally-defined functions. The RULE for the latter should be attached to the local Id, not put in the rules-for-imported-ids set. Fix is easy; similar to what happens in GHC.HsToCore.addExportFlagsAndRules (cherry picked from commit 0c200ab7)
-
Sylvain Henry authored
The code wasn't taking into account some kind of overlap. cgrun070 has been extended to test the missing case. (cherry picked from commit 8b77f9bf)
-
hs_cmpxchg64 must return a StgWord64, otherwise incorrect runtime results of 64-bit MO_Cmpxchg will appear in 32-bit unregisterised builds, which go unnoticed at compile-time due to C implicit casting in .hc files. (cherry picked from commit 9fa54572)
-
This reverts the bits affecting fusion of `drop` and `dropWhile` of commit 0f7588b5 and keeps just the small refactoring unifying `flipSeqTake` and `flipSeqScanl'` into `flipSeq`. It also adds a new test for #23021 (which was the reason for reverting) as well as adds a clarifying comment to T18964. Fixes #23021, unfixes #18964. Metric Increase: T18964 Metric Decrease: T18964 (cherry picked from commit a2a1a1c0)
-
- Feb 23, 2023
-
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
-
GHC was accepting `foreign import javascript` declarations on non-JavaScript platforms. This adds a check so that these are only supported on an platform that supports the JavaScript calling convention. Fixes #22774 (cherry picked from commit 1d7c2e4c9d63a7b392024cfcde299849b8d667a8)
-
Sylvain Henry authored
-
- Feb 22, 2023
-
-
These functions are * recursive * overloaded So it's important to add an `INLINABLE` pragma to each so that they can be specialised at the use site when the specific numeric type is known. Adding these pragmas improves the LazyText replicate benchmark (see ghc/ghc#22886 (comment 481020)) https://github.com/haskell/core-libraries-committee/issues/129 (cherry picked from commit be0b7209)
-
The wasm NCG used to map CCCS to a wasm global, based on the observation that CCCS is a transient register that's already handled by thread state load/store logic, so it doesn't need to be backed by the rCCCS field in the register table. Unfortunately, this is wrong, since even when Cmm execution hasn't yielded back to the scheduler, the Cmm code may call enterFunCCS, which does use rCCCS. This breaks cost centre profiling in a subtle way, resulting in inaccurate stack traces in some test cases. The fix is simple though: just remove the CCCS mapping. (cherry picked from commit 2592ab69)
-
This commit also adds a new -Dk RTS option to the debug RTS to assist debugging continuation captures. Currently, the printed information is quite minimal, but more can be added in the future if it proves to be useful when debugging future issues. fixes #23001 (cherry picked from commit e5794ede9e2af208669438a7f72958aeecbec111)
-
Ben Gamari authored
In 81975ef3 we attempted to fix #20253 by adding logic to the bindist Makefile to regenerate the `settings` file from information gleaned by the bindist `configure` script. However, this fix had no effect as `lib/settings` is shipped in the binary distribution (to allow in-place use of the binary distribution). As `lib/settings` already existed and its rule declared no dependencies, `make` would fail to use the added rule to regenerate it. Fix this by explicitly declaring a dependency from `lib/settings` on `mk/config.mk`. Fixes #22982. (cherry picked from commit f8876261)
-
The first argument is Int64# unconditionally, so we better produce something of that type. This fixes a core lint error found in the ad package. Fixes #23019 (cherry picked from commit 3c9b89ad)
-
Andreas Klebinger authored
Fixes #22708 (cherry picked from commit 348181dd)
-
- Feb 21, 2023
-
-
Ben Gamari authored
-
Bodigrim authored
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
-