- Feb 01, 2023
-
-
(cherry picked from commit c9ad8852)
-
The key change is that in GHC.Core.Opt.Specialise.specLookupRule we were using realIdUnfolding, which ignores the loop-breaker flag. When given a loop breaker, rule matching therefore looped infinitely -- #22802. In fixing this I refactored a bit. * Define GHC.Core.InScopeEnv as a data type, and use it. (Previously it was a pair: hard to grep for.) * Put several functions returning an IdUnfoldingFun into GHC.Types.Id, namely idUnfolding alwaysActiveUnfoldingFun, whenActiveUnfoldingFun, noUnfoldingFun and use them. (The are all loop-breaker aware.) (cherry picked from commit d0f34f25)
-
This teaches Hadrian to substitute the `LIBRARY_*_VERSION` variables in `libraries/prologue.txt`, fixing #22714. Fixes #22714. (cherry picked from commit 93f0e3c4)
-
This refactors Hadrian's autoconf-style templating logic to be explicit about which interpolation variables should be substituted in which files. This clears the way to fix #22714 without incurring rule cycles. (cherry picked from commit 2e48c19a)
-
The package-version discovery logic in `doc/users_guide/package_versions.py` uses packages' cabal files to determine package versions. Teach Sphinx about these dependencies in cases where the cabal files are generated by templates. (cherry picked from commit f838815c)
-
Teach the `configure` script to create the `VERSION` file. This will serve as the stable interface to allow the user to determine the version number of a working tree. Fixes #22322. (cherry picked from commit a2d814dc)
-
This patch fixes two issues in the way that `type data` declarations were reified with Template Haskell: * `type data` data constructors are now properly reified using `DataConI`. This is accomplished with a special case in `reifyTyCon`. Fixes #22818. * `type data` type constructors are now reified in `reifyTyCon` using `TypeDataD` instead of `DataD`. Fixes #22819. (cherry picked from commit 2f145052)
-
Unlike most other data constructors, data constructors declared with `type data` are represented in `TyThing`s as `ATyCon` rather than `ADataCon`. The `ATyCon` case in `tyThingParent_maybe` previously did not consider the possibility of the underlying `TyCon` being a promoted data constructor, which led to the oddities observed in #22817. This patch adds a dedicated special case in `tyThingParent_maybe`'s `ATyCon` case for `type data` data constructors to fix these oddities. Fixes #22817. (cherry picked from commit 20598ef6)
-
Fixes #11270 (cherry picked from commit f83374f8)
-
(cherry picked from commit 082b7d43)
-
(cherry picked from commit c9967d13)
-
We were treating a type-family instance as a non-orphan if there was a type constructor on its /right-hand side/ that was local. Boo! Utterly wrong. With this patch, we correctly check the /left-hand side/ instead! Fixes #22717 (cherry picked from commit 638277ba)
-
(cherry picked from commit 2cb500a5)
-
Previously various `Instr` queries used by the graph-colouring allocator failed to handle a few pseudo-instructions. This manifested in compiler panicks while compiling `SHA`, which uses `-fregs-graph`. Fixes #22798. (cherry picked from commit 7566fd9d)
-
Previously trivColourable for AArch64 claimed that at 18 registers were trivially-colourable. This is incorrect as x18 is reserved by the platform on AArch64/Darwin. See #22798. (cherry picked from commit 30989d13)
-
Previously various panics would rely on a half-written Show instance, leading to very unhelpful errors. Fix this. See #22798. (cherry picked from commit be417a47)
-
Previously, when using `capi` calling convention in foreign declarations, code generator failed to handle const-cualified pointer return types. This resulted in CC toolchain throwing `-Wincompatible-pointer-types-discards-qualifiers` warning. `Foreign.C.Types.ConstPtr` newtype was introduced to handle these cases - special treatment was put in place to generate appropritetly qualified C wrapper that no longer triggers the above mentioned warning. Fixes #22043. (cherry picked from commit b3a3534b)
-
Previously we used `static_assert` which is only available in C23. By contrast, C11 only provides `_Static_assert`. Fixes #22777 (cherry picked from commit e480fbc2)
-
To be able to capture string literals with possible escape codes as labels. Close #22771 (cherry picked from commit fec7c2ea)
-
Closes #22765 (cherry picked from commit 97ac8230)
-
To match ghc-exactprint https://github.com/alanz/ghc-exactprint/pull/121 (cherry picked from commit 965a2735)
-
See Note [Unwrap newtypes first], which has the details. Close #22519. (cherry picked from commit 3e827c3f)
-
We use keepCAFsForGHCi.c to force -fkeep-cafs behaviour by using a __attribute__((constructor)) function. This broke for static builds where the linker discarded the object file since it was not reverenced from any exported code. We fix this by asserting that the flag is enabled using a function in the same module as the constructor. Which causes the object file to be retained by the linker, which in turn causes the constructor the be run in static builds. This changes nothing for dynamic builds using the ghc library. But causes static to also retain CAFs (as we expect them to). Fixes #22417. ------------------------- Metric Decrease: T21839r ------------------------- (cherry picked from commit 08ba8720)
-
- Jan 28, 2023
-
-
Matthew Pickering authored
In particular we do not have a release job for FreeBSD so the generation of the platform mapping was failing.
-
- Jan 27, 2023
-
-
Ben Gamari authored
-
Matthew Pickering authored
These were not uploaded for alpha1 Fixes #22844
-
Matthew Pickering authored
This check makes sure that if a job is a prefixed by "release-" then the script downloads it and understands how to map the job name to the platform.
-
Matthew Pickering authored
We no longer attempt to build or distribute this release
-
Following the plan in GHC Proposal #143 "Remove the * kind syntax", which states: In the next release (or 3 years in), enable -fwarn-star-is-type by default. The "next release" happens to be 9.6.1 I also moved the T21583 test case from should_fail to should_compile, because the only reason it was failing was -Werror=compat in our test suite configuration. (cherry picked from commit e9c0537c)
-
Problem: In 2463df2f, the Solo data constructor was renamed to MkSolo, and Solo was turned into a pattern synonym for backwards compatibility. Since pattern synonyms can not be promoted, the old code that pretty-printed promoted single-element tuples started producing ill-typed code: t :: Proxy ('Solo Int) This fails with "Pattern synonym ‘Solo’ used as a type" The solution is to track the distinction between type constructors and data constructors more carefully when printing single-element tuples. (cherry picked from commit 14b5982a)
-
Matthew Pickering authored
This has been removed from the downstream metadata. (cherry picked from commit 7915f039)
-
Matthew Pickering authored
(cherry picked from commit 159426ac)
-
(cherry picked from commit 2fdf22ae)
-
This change fixes a cross-compilation issue from ArchLinux to Windows because these symbols weren't found. (cherry picked from commit 288fa017)
-
Decision to build either unix or Win32 package must be stage specific for cross-compilation to be supported. (cherry picked from commit 48131ee2)
-
Stage0's ar may not support at-files. Take it into account. Found while cross-compiling from Darwin to Windows. (cherry picked from commit e987e345)
-
Addresses #22773. (cherry picked from commit f410d70a)
-