[Git][ghc/ghc][ghc-9.6] 20 commits: base: Move changelog entry to its place

Ben Gamari (@bgamari) gitlab at gitlab.haskell.org
Mon Feb 20 14:48:10 UTC 2023



Ben Gamari pushed to branch ghc-9.6 at Glasgow Haskell Compiler / GHC


Commits:
b9b174fc by Li-yao Xia at 2023-02-20T09:13:24+00:00
base: Move changelog entry to its place

(cherry picked from commit 11de324aae17794c8753a8f7cb50c4140785fe27)

- - - - -
6d1b294d by doyougnu at 2023-02-20T09:13:40+00:00
docs: release notes, user guide: add js backend

Follow up from #21078

(cherry picked from commit 08c0822c74eb97ea8a6673c6a942d9c03a169bc8)

- - - - -
66dea16f by sheaf at 2023-02-20T09:14:35+00:00
No default finalizer exception handler

Commit cfc8e2e2 introduced a mechanism for handling of exceptions
that occur during Handle finalization, and 372cf730 set the default
handler to print out the error to stderr.

However, #21680 pointed out we might not want to set this by default,
as it might pollute users' terminals with unwanted information.
So, for the time being, the default handler discards the exception.

Fixes #21680

(cherry picked from commit 681e0e8ce470ec77a0db071f9fc7ec15995a0bb3)

- - - - -
033c8bf3 by Ben Gamari at 2023-02-20T09:15:24+00:00
base: Note move of GHC.Stack.CCS.whereFrom to GHC.InfoProv in changelog

Fixes #22883.

(cherry picked from commit 34cd308e23206e71b48e205970741746ed66ea8e)

- - - - -
a3b0c1b8 by sheaf at 2023-02-20T09:23:52+00:00
Introduce warning for loopy superclass solve

Commit aed1974e completely re-engineered the treatment of loopy
superclass dictionaries in instance declarations. Unfortunately,
it has the potential to break (albeit in a rather minor way) user code.

To alleviate migration concerns, this commit re-introduces the old
behaviour. Any reliance on this old behaviour triggers a warning,
controlled by `-Wloopy-superclass-solve`. The warning text explains
that GHC might produce bottoming evidence, and provides a migration
strategy.

This allows us to provide a graceful migration period, alerting users
when they are relying on this unsound behaviour.

Fixes #22912 #22891 #20666 #22894 #22905

(cherry picked from commit 9fb4ca89bff9873e5f6a6849fa22a349c94deaae)

- - - - -
c416eaf0 by Simon Peyton Jones at 2023-02-20T09:28:29+00:00
Narrow the dont-decompose-newtype test

Following #22924 this patch narrows the test that stops
us decomposing newtypes.  The key change is the use of
noGivenNewtypeReprEqs in GHC.Tc.Solver.Canonical.canTyConApp.

We went to and fro on the solution, as you can see in #22924.
The result is carefully documented in
  Note [Decomoposing newtype equalities]

On the way I had revert most of
  commit 3e827c3f74ef76d90d79ab6c4e71aa954a1a6b90
  Author: Richard Eisenberg <rae at cs.brynmawr.edu>
  Date:   Mon Dec 5 10:14:02 2022 -0500

    Do newtype unwrapping in the canonicaliser and rewriter

    See Note [Unwrap newtypes first], which has the details.

It turns out that

(a) 3e827c3f makes GHC behave worse on some recursive newtypes
    (see one of the tests on this commit)
(b) the finer-grained test (namely noGivenNewtypeReprEqs) renders
    3e827c3f unnecessary

(cherry picked from commit 12965aba860676ec68cbced86eb18d6ec5cb83b3)

- - - - -
f584311a by Cheng Shao at 2023-02-20T09:29:24+00:00
docs: add a section for the wasm backend

Fixes #22658

(cherry picked from commit 631c6c726d6ab86be1a3aa289e1468a75fb36bf6)

- - - - -
448699f8 by Matthew Pickering at 2023-02-20T09:30:59+00:00
unicode: Don't inline bitmap in generalCategory

generalCategory contains a huge literal string but is marked INLINE,
this will duplicate the string into any use site of generalCategory. In
particular generalCategory is used in functions like isSpace and the
literal gets inlined into this function which makes it massive.

https://github.com/haskell/core-libraries-committee/issues/130

Fixes #22949

-------------------------
Metric Decrease:
    T4029
    T18304
-------------------------

(cherry picked from commit b3ac17ad6d7f504ee7615ca67e02e5e094cf1905)

- - - - -
220504f8 by Cheng Shao at 2023-02-20T09:32:09+00:00
compiler: fix generateCgIPEStub for no-tables-next-to-code builds

generateCgIPEStub already correctly implements the CmmTick finding
logic for when tables-next-to-code is on/off, but it used the wrong
predicate to decide when to switch between the two. Previously it
switches based on whether the codegen is unregisterised, but there do
exist registerised builds that disable tables-next-to-code! This patch
corrects that problem. Fixes #22896.

(cherry picked from commit 3b019a7ac8fc9059cc3213f6f95a2daef97ca442)

- - - - -
6164ceb8 by Sylvain Henry at 2023-02-20T09:32:31+00:00
JS: disable debugging info for heap objects

(cherry picked from commit 324e925be847d3969724be3e1b82c25899aaca27)

- - - - -
8e9b8753 by sheaf at 2023-02-20T09:32:46+00:00
Expand synonyms in RoughMap

We were failing to expand type synonyms in the function
GHC.Core.RoughMap.typeToRoughMatchLookupTc, even though the
RoughMap infrastructure crucially relies on type synonym expansion
to work.

This patch adds the missing type-synonym expansion.

Fixes #22985

(cherry picked from commit 8988eeef193f055d7b67de5aaa00590c63491fb5)

- - - - -
f1751d36 by Matthew Pickering at 2023-02-20T09:33:07+00:00
ghcup-metadata: Use Ubuntu and Rocky bindists

Prefer to use the Ubuntu 20.04 and 18.04 binary distributions on Ubuntu
and Linux Mint. Prefer to use the Rocky 8 binary distribution on
unknown distributions.

(cherry picked from commit c6a967d9545ef5577514466f3fa6894f2899aff8)

- - - - -
cdb5e4f0 by Matthew Pickering at 2023-02-20T09:34:29+00:00
Add INLINABLE pragmas to `generic*` functions in Data.OldList

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 https://gitlab.haskell.org/ghc/ghc/-/issues/22886#note_481020)

https://github.com/haskell/core-libraries-committee/issues/129
(cherry picked from commit be0b7209c6aef22798fc4ba7baacd2099b5cb494)

- - - - -
4395197a by Matthew Pickering at 2023-02-20T09:35:04+00:00
ghcup-metadata: Add test artifact

Add the released testsuite tarball to the generated ghcup metadata.

(cherry picked from commit 3dd50e2f4e3f2fac2f75b1223944dcdcc896e508)

- - - - -
573ba966 by Matthew Pickering at 2023-02-20T09:40:37+00:00
Bump supported LLVM range from 10 through 15 to 11 through 16

LLVM 15 turns on the new pass manager by default, which we have yet to
migrate to so for new we pass the `-enable-new-pm-0` flag in our
llvm-passes flag.

LLVM 11 was the first version to support the `-enable-new-pm` flag so we
bump the lowest supported version to 11.

Our CI jobs are using LLVM 12 so they should continue to work despite
this bump to the lower bound.

Fixes #21936

(cherry picked from commit 0cc16aaf89d7dc3963764b7193ceac73e4e3329b)

- - - - -
998b07fa by Matthew Pickering at 2023-02-20T09:40:44+00:00
Bump DOCKER_REV to use alpine image without LLVM installed

alpine_3_12 only supports LLVM 10, which is now outside the supported
version range.

(cherry picked from commit f94f14502a00824d48cef69d362774a9a4bfc6d6)

- - - - -
6c2b9924 by Teo Camarasu at 2023-02-20T09:42:34+00:00
doc: fix gcdetails_block_fragmentation_bytes since annotation

(cherry picked from commit 354aa47d313113855aff9e5c5476fcb56f80e3bf)

- - - - -
21ccdbac by Simon Peyton Jones at 2023-02-20T09:43:59+00:00
Treat existentials correctly in dubiousDataConInstArgTys

Consider (#22849)

 data T a where
   MkT :: forall k (t::k->*) (ix::k). t ix -> T @k a

Then dubiousDataConInstArgTys MkT [Type, Foo] should return
        [Foo (ix::Type)]
NOT     [Foo (ix::k)]

A bit of an obscure case, but it's an outright bug, and the fix is easy.

(cherry picked from commit 955a99ea28a0d06de67f0595d366450281aab0c0)

- - - - -
4902ed26 by sheaf at 2023-02-20T09:45:50+00:00
RTS: declare setKeepCAFs symbol

Commit 08ba8720 failed to declare the dependency of keepCAFsForGHCi on
the symbol setKeepCAFs in the RTS, which led to undefined symbol errors
on Windows, as exhibited by the testcase frontend001.

Thanks to Moritz Angermann and Ryan Scott for the diagnosis and fix.

Fixes #22961

(cherry picked from commit cf564dd71548771394249e9bf959512a21bbcec0)

- - - - -
fba46a03 by Matthew Pickering at 2023-02-20T09:48:25+00:00
release notes: Correct supported LLVM range

Fixes #23006

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/RoughMap.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/GenerateCgIPEStub.hs
- compiler/GHC/StgToJS/Linker/Linker.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Solver/Canonical.hs
- compiler/GHC/Tc/Solver/InertSet.hs
- compiler/GHC/Tc/Solver/Interact.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Rewrite.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/Types/Origin.hs-boot
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Hint.hs
- compiler/GHC/Types/Hint/Ppr.hs
- configure.ac
- docs/users_guide/9.6.1-notes.rst
- docs/users_guide/codegens.rst
- docs/users_guide/index.rst
- docs/users_guide/using-warnings.rst
- + docs/users_guide/wasm.rst
- libraries/base/Data/OldList.hs
- libraries/base/GHC/Stats.hsc
- libraries/base/GHC/TopHandler.hs
- libraries/base/GHC/Unicode/Internal/Char/UnicodeData/GeneralCategory.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2ad167bf835b820f680bc31a69bd2c14357eca62...fba46a0385753a2e85b7434906ec885520d9ff7d

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2ad167bf835b820f680bc31a69bd2c14357eca62...fba46a0385753a2e85b7434906ec885520d9ff7d
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230220/dec36cf7/attachment-0001.html>


More information about the ghc-commits mailing list