[Git][ghc/ghc][wip/T21623] 35 commits: Define `Infinite` list and use where appropriate.

Simon Peyton Jones (@simonpj) gitlab at gitlab.haskell.org
Tue Nov 8 23:48:21 UTC 2022



Simon Peyton Jones pushed to branch wip/T21623 at Glasgow Haskell Compiler / GHC


Commits:
68f49874 by M Farkas-Dyck at 2022-11-08T12:53:55-05:00
Define `Infinite` list and use where appropriate.

Also add perf test for infinite list fusion.

In particular, in `GHC.Core`, often we deal with infinite lists of roles. Also in a few locations we deal with infinite lists of names.

Thanks to simonpj for helping to write the Note [Fusion for `Infinite` lists].

- - - - -
ce726cd2 by Ross Paterson at 2022-11-08T12:54:34-05:00
Fix TypeData issues (fixes #22315 and #22332)

There were two bugs here:

1. Treating type-level constructors as PromotedDataCon doesn't always
   work, in particular because constructors promoted via DataKinds are
   called both T and 'T. (Tests T22332a, T22332b, T22315a, T22315b)
   Fix: guard these cases with isDataKindsPromotedDataCon.

2. Type-level constructors were sent to the code generator, producing
   things like constructor wrappers. (Tests T22332a, T22332b)
   Fix: test for them in isDataTyCon.

Other changes:

* changed the marking of "type data" DataCon's as suggested by SPJ.

* added a test TDGADT for a type-level GADT.

* comment tweaks

* change tcIfaceTyCon to ignore IfaceTyConInfo, so that IfaceTyConInfo
  is used only for pretty printing, not for typechecking. (SPJ)

- - - - -
132f8908 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Clarify msum/asum documentation

- - - - -
bb5888c5 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Add example for (<$)

- - - - -
080fffa1 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Document what Alternative/MonadPlus instances actually do

- - - - -
7ab5f4a1 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Start work

Not ready for review

More progress

Wibbles

Stage1 compiles

More wibbles

More wibbles

More -- almost working

Comments

Wibbles

Wibbles

Wibble inlineId

Wibbles

Infinite loop somewhere

More wibbles.  Maybe can build stage2

Make FuNCo a thing by itself

Wibble

Wibble

Wibbles

Fix OptCoercion

Wibble

Wibble to optCoercion

Replace SORT with TYPE and CONSTRAINT

Wibble

Delete unused import

Delete TypeOrConstraint from ghc-prim:GHC.Types

Move from NthCo to SelCo

Wibbles

Wibbles in RepType

Wibble

Add mkWpEta

Really add mkWpEta

Wibble Typeable binds etc

Improve error messages

More wibbles, mainly to error messages

Wibbles

Wibbles to errors

Wibbles

But especially: treat Constraint as Typeable

More wibbles

More changes

* Move role into SelTyCon
* Get rid of mkTcSymCo and friends

Unused variable

Wibbles

Wibble

Accept error message changes

Refactoring...

Remove tc functions like tcKind, tcGetTyVar.

Move tyConsOfType, occCheckExpand to TyCo.FVs.

Introduce GHC.Core.TyCo.Compare

Lots of import changes!

Update haddock submodule (I hope)

Wibbles (notably: actually add GHC.Core.TyCo.Compare)

Wibbles

Wibble output of T16575

Wibbles

More wibbles

Remove infinite loop in T1946

See Note [ForAllTy and type equality]

Deal with rejigConRes

Needs a Note to be written by Richard

Some renaming

AnonArgFlag -->  FunTyFlag
ArgFlag     -->  ForAllTyFlag

Update haddock submodule

Rename TyCoBinder to ForAllTyBinder

Wibbles

Update haddock

Wibble

Update unix submodule

I think I accidentally got it out of sync with HEAD;
this puts it back.

Rename TyCoBinder to PiTyBinder

Update Haddock submodule

Wrap dictionaries in tuples

This fixes the kind bugs in arrow desugaring.  Needs some Notes,
but I want to try CI.

More on boxing data cons

Rebase and update GHC.Tc.Errors/GHC.Tc.Errors.Ppr

Revert accidental changes in SameOccInfo

fixes mod180, tcfail182

Wibbles in error messages

..plus eqType comes from GHC.Core.TyCo.Compare

Wibbles

More wibbles

Reaedy for RAE review

Fix fragile rule setup in GHC.Float

See Note [realToFrac natural-to-float]

Wibbles

More wibbles

Remove unused import

Remove another unused import

Wibbles

Update haddock submodule

Respond to Sam's suggestions

Wibbles

Wibbles

- - - - -
6df2a36d by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles

- - - - -
34cb2419 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Unused import

- - - - -
d63da24b by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Better boxingCon_maybe

- - - - -
f5d3dffd by Richard Eisenberg at 2022-11-08T22:25:36+00:00
Improvements to comments, etc., from Richard

- - - - -
2f3b4c6e by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Respond to Richard

- - - - -
a6bac926 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Improve boxing-data-con API

- - - - -
3d5fd2e9 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Update error messages

- - - - -
b755a898 by Richard Eisenberg at 2022-11-08T22:25:36+00:00
Fix the equality constraint problem

- - - - -
dcc4f704 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles

- - - - -
f43669f1 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Add isCovertGadtDataCon, fixing build

- - - - -
2905262b by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles

- - - - -
7ee4b66d by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles

- - - - -
086f147a by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Move RoughMatch code out of Unify into RoughMatch

- - - - -
f7acba96 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibble

- - - - -
8599bd23 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles

- - - - -
3154729a by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Update haddock submodule again

- - - - -
95b95894 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles, esp in RoughMap

- - - - -
0240fb6c by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Upate haddock submodule

- - - - -
672c49a9 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Define eqType using tcEqType

A one-line change

- - - - -
657836a4 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Revert "Define eqType using tcEqType"

This reverts commit eaf04c17c6a159ddb70eedd6fb8ab0b4fc180b7a.

Performance got worse!
   T18223 was 60% worse
   T8095      75%
   T12227  9%
   T13386  6%
   T15703  7%
   T5030   8%

- - - - -
4467a5d8 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Refactor FunTyFlag

Mostly just renaming stuff

- - - - -
5c117494 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles

- - - - -
9af6492d by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibble

- - - - -
44b6d680 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Add FunTyFlags to FunCo

- - - - -
b5e716b7 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
More improvements

Hopefully perf improves a bit

Plus rep-poly/T13105 and rep-poly/T17536b are fixed.

- - - - -
2414db62 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Add tests for #21530

- - - - -
980238ad by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Make the Unique in a TyCon strict

This avoids lots of evals when comparing TyCons

- - - - -
58e94ebe by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Improve efficiency in sORTKind_mabye

- - - - -
5de16523 by Simon Peyton Jones at 2022-11-08T23:48:05+00:00
Wibbles

- - - - -


12 changed files:

- compiler/GHC.hs
- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/Builtin/Types.hs-boot
- compiler/GHC/Builtin/Types/Literals.hs
- compiler/GHC/Builtin/Types/Prim.hs
- − compiler/GHC/Builtin/Types/Prim.hs-boot
- compiler/GHC/Builtin/Uniques.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion.hs-boot
- compiler/GHC/Core/Coercion/Opt.hs
- compiler/GHC/Core/ConLike.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c564cbd60c26039277d92dd4484b38acc4b672ba...5de1652319de20655690891b286fdf32915b17ca

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c564cbd60c26039277d92dd4484b38acc4b672ba...5de1652319de20655690891b286fdf32915b17ca
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/20221108/06cc0c46/attachment-0001.html>


More information about the ghc-commits mailing list