[Git][ghc/ghc][wip/T23070-unify] 21 commits: More informative errors for bad imports (#21826)

Simon Peyton Jones (@simonpj) gitlab at gitlab.haskell.org
Wed Apr 26 22:21:03 UTC 2023



Simon Peyton Jones pushed to branch wip/T23070-unify at Glasgow Haskell Compiler / GHC


Commits:
0da9e882 by Soham Chowdhury at 2023-04-25T00:15:22-04:00
More informative errors for bad imports (#21826)

- - - - -
ebd5b078 by Josh Meredith at 2023-04-25T00:15:58-04:00
JS/base: provide implementation for mkdir (issue 22374)

- - - - -
8f656188 by Josh Meredith at 2023-04-25T18:12:38-04:00
JS: Fix h$base_access implementation (issue 22576)

- - - - -
74c55712 by Andrei Borzenkov at 2023-04-25T18:13:19-04:00
Give more guarntees about ImplicitParams (#23289)

- Added new section in the GHC user's guide that legends behavior of
nested implicit parameter bindings in these two cases:

  let ?f = 1 in let ?f = 2 in ?f

and

  data T where MkT :: (?f :: Int) => T

  f :: T -> T -> Int
  f MkT MkT = ?f

- Added new test case to examine this behavior.

- - - - -
c30ac25f by Sebastian Graf at 2023-04-26T14:50:51-04:00
DmdAnal: Unleash demand signatures of free RULE and unfolding binders (#23208)

In #23208 we observed that the demand signature of a binder occuring in a RULE
wasn't unleashed, leading to a transitively used binder being discarded as
absent. The solution was to use the same code path that we already use for
handling exported bindings.

See the changes to `Note [Absence analysis for stable unfoldings and RULES]`
for more details.

I took the chance to factor out the old notion of a `PlusDmdArg` (a pair of a
`VarEnv Demand` and a `Divergence`) into `DmdEnv`, which fits nicely into our
existing framework. As a result, I had to touch quite a few places in the code.

This refactoring exposed a few small bugs around correct handling of bottoming
demand environments. As a result, some strictness signatures now mention uniques
that weren't there before which caused test output changes to T13143, T19969 and
T22112. But these tests compared whole -ddump-simpl listings which is a very
fragile thing to begin with. I changed what exactly they test for based on the
symptoms in the corresponding issues.

There is a single regression in T18894 because we are more conservative around
stable unfoldings now. Unfortunately it is not easily fixed; let's wait until
there is a concrete motivation before invest more time.

Fixes #23208.

- - - - -
77f506b8 by Josh Meredith at 2023-04-26T14:51:28-04:00
Refactor GenStgRhs to include the Type in both constructors (#23280, #22576, #22364)

Carry the actual type of an expression through the PreStgRhs and into GenStgRhs
for use in later stages. Currently this is used in the JavaScript backend to fix
some tests from the above mentioned issues: EtaExpandLevPoly, RepPolyWrappedVar2,
T13822, T14749.

- - - - -
052e2bb6 by Alan Zimmerman at 2023-04-26T14:52:05-04:00
EPA: Use ExplicitBraces only in HsModule

!9018 brought in exact print annotations in LayoutInfo for open and
close braces at the top level.

But it retained them in the HsModule annotations too.

Remove the originals, so exact printing uses LayoutInfo

- - - - -
f059f5e0 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
First steps killing unifyWanted

- - - - -
05e89f64 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Fix a boo boo

- - - - -
c0e4579b by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Fix another error: missing kick-out

- - - - -
79bd8a86 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Maybe working now

- - - - -
57498cb1 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Wibbles

- - - - -
585f2b92 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Stop loop

- - - - -
0254f781 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Wibbles

- - - - -
944158af by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
More wibbles

- - - - -
89e05756 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
undo accidental change to GHC.Bits

- - - - -
94cfd691 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Wibble error messages

- - - - -
92be70fd by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Experimental change: coercion holes

Experiment with making a constraint non-canonical if it has
a coercion hole on the RHS.

Simplifies T22707 a lot!

- - - - -
6697584e by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
More wibbles

- - - - -
aee2f98c by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Priorities non-rewritten equalities in the work list

Plus update error output

- - - - -
c305e5c7 by Simon Peyton Jones at 2023-04-26T23:22:45+01:00
Further wibbles

Fix to defaulting in rules

- - - - -


30 changed files:

- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Predicate.hs
- compiler/GHC/Core/TyCo/Subst.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Hs.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/Parser.y
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Unbound.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Stg/BcPrep.hs
- compiler/GHC/Stg/CSE.hs
- compiler/GHC/Stg/Debug.hs
- compiler/GHC/Stg/FVs.hs
- compiler/GHC/Stg/InferTags.hs
- compiler/GHC/Stg/InferTags/Rewrite.hs
- compiler/GHC/Stg/Lift.hs
- compiler/GHC/Stg/Lift/Analysis.hs
- compiler/GHC/Stg/Lift/Monad.hs
- compiler/GHC/Stg/Lint.hs
- compiler/GHC/Stg/Stats.hs
- compiler/GHC/Stg/Syntax.hs
- compiler/GHC/Stg/Unarise.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm.hs
- compiler/GHC/StgToCmm/Bind.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/40cd1bddd39b881a3f0cde10570556916adcf4e9...c305e5c7e3d27e2325b5a71d6d8458cf697bff4d

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/40cd1bddd39b881a3f0cde10570556916adcf4e9...c305e5c7e3d27e2325b5a71d6d8458cf697bff4d
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/20230426/e38cd6bb/attachment-0001.html>


More information about the ghc-commits mailing list