[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 9 commits: Refactor only newSysLocalDs
Marge Bot (@marge-bot)
gitlab at gitlab.haskell.org
Tue Sep 10 09:46:42 UTC 2024
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
ffbc2ab0 by Simon Peyton Jones at 2024-09-10T00:40:37-04:00
Refactor only newSysLocalDs
* Change newSysLocalDs to take a scaled type
* Add newSysLocalMDs that takes a type and makes a ManyTy local
Lots of files touched, nothing deep.
- - - - -
7124e4ad by Simon Peyton Jones at 2024-09-10T00:40:37-04:00
Don't introduce 'nospec' on the LHS of a RULE
This patch address #25160. The main payload is:
* When desugaring the LHS of a RULE, do not introduce the `nospec` call
for non-canonical evidence. See GHC.Core.InstEnv
Note [Coherence and specialisation: overview]
The `nospec` call usually introdued in `dsHsWrapper`, but we don't want it
on the LHS of a RULE (that's what caused #25160). So now `dsHsWrapper` takes
a flag to say if it's on the LHS of a RULE. See wrinkle (NC1) in
`Note [Desugaring non-canonical evidence]` in GHC.HsToCore.Binds.
But I think this flag will go away again when I have finished with my
(entirely separate) speciaise-on-values patch (#24359).
All this meant I had to re-understand the `nospec` stuff and coherence, and
that in turn made me do some refactoring, and add a lot of new documentation
The big change is that in GHC.Core.InstEnv, I changed
the /type synonym/ `Canonical` into
a /data type/ `CanonicalEvidence`
and documented it a lot better.
That in turn made me realise that CalLStacks were being treated with a
bit of a hack, which I documented in `Note [CallStack and ExecptionContext hack]`.
- - - - -
663daf8d by Simon Peyton Jones at 2024-09-10T00:40:37-04:00
Add defaulting of equalities
This MR adds one new defaulting strategy to the top-level
defaulting story: see Note [Defaulting equalities] in GHC.Tc.Solver.
This resolves #25029 and #25125, which showed that users were
accidentally relying on a GHC bug, which was fixed by
commit 04f5bb85c8109843b9ac2af2a3e26544d05e02f4
Author: Simon Peyton Jones <simon.peytonjones at gmail.com>
Date: Wed Jun 12 17:44:59 2024 +0100
Fix untouchability test
This MR fixes #24938. The underlying problem was tha the test for
"does this implication bring in scope any equalities" was plain wrong.
This fix gave rise to a number of user complaints; but the improved
defaulting story of this MR largely resolves them.
On the way I did a bit of refactoring, of course
* Completely restructure the extremely messy top-level defaulting
code. The new code is in GHC.Tc.Solver.tryDefaulting, and is much,
much, much esaier to grok.
- - - - -
e28cd021 by Andrzej Rybczak at 2024-09-10T00:41:18-04:00
Don't name a binding pattern
It's a keyword when PatternSynonyms are set.
- - - - -
b09571e2 by Simon Peyton Jones at 2024-09-10T00:41:54-04:00
Do not use an error thunk for an absent dictionary
In worker/wrapper we were using an error thunk for an absent dictionary,
but that works very badly for -XDictsStrict, or even (as #24934 showed)
in some complicated cases involving strictness analysis and unfoldings.
This MR just uses RubbishLit for dictionaries. Simple.
No test case, sadly because our only repro case is rather complicated.
- - - - -
8bc9f5f6 by Hécate Kleidukos at 2024-09-10T00:42:34-04:00
haddock: Remove support for applehelp format in the Manual
- - - - -
49c0fa64 by doyougnu at 2024-09-10T05:46:25-04:00
RTS linker: add support for hidden symbols (#25191)
Add linker support for hidden symbols. We basically treat them as weak
symbols.
Patch upstreamed from haskell.nix
Co-authored-by: Sylvain Henry <sylvain at haskus.fr>
Co-authored-by: Moritz Angermann <moritz.angermann at gmail.com>
- - - - -
696e8dc3 by Sven Tennie at 2024-09-10T05:46:26-04:00
Fix C warnings (#25237)
GCC 14 treats the fixed warnings as errors by default. I.e. we're
gaining GCC 14 compatibility with these fixes.
- - - - -
24952620 by Sylvain Henry at 2024-09-10T05:46:29-04:00
JS: fix codegen of static string data
Before this patch, when string literals are made trivial, we would
generate `h$("foo")` instead of `h$str("foo")`. This was
introduced by mistake in 6bd850e887b82c5a28bdacf5870d3dc2fc0f5091.
- - - - -
30 changed files:
- compiler/GHC/Core/InstEnv.hs
- compiler/GHC/Core/Opt/CallerCC/Types.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/Call.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/HsToCore/ListComp.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/HsToCore/Utils.hs
- compiler/GHC/StgToJS/Symbols.hs
- compiler/GHC/StgToJS/Types.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Solver.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/Solver/Equality.hs
- compiler/GHC/Tc/Solver/Irred.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Solve.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Utils/Instantiate.hs
- compiler/GHC/Tc/Utils/Unify.hs
- libraries/ghc-heap/tests/stack_misc_closures_c.c
- rts/Linker.c
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0b9cdbab4c6882ac1da6bbaacb4c9249b6c0d27a...24952620517344cc2def2c7ee0ee78e76b105980
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0b9cdbab4c6882ac1da6bbaacb4c9249b6c0d27a...24952620517344cc2def2c7ee0ee78e76b105980
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/20240910/e9fa17d3/attachment-0001.html>
More information about the ghc-commits
mailing list