goldfire (Richard Eisenberg)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Thursday

  • Clear sailing ahead.

User Details

User Since
Jun 13 2014, 11:18 AM (158 w, 3 d)
Availability
Available

Recent Activity

Sun, Jun 25

goldfire added a comment to D3662: WIP: Roles for closed type families.

I suppose this is just a start, as you note. I like the general direction, but I think some more attention needs to be paid around the distinction between tyvars in the tycon and in the equations.

Sun, Jun 25, 8:06 AM

Thu, Jun 15

goldfire added a comment to D3641: change filtering of variables in extract_hs_tv_bndrs (fixes #13782).

This looks much more plausible to me.

Thu, Jun 15, 10:56 AM

Tue, Jun 13

goldfire added a comment to D3641: change filtering of variables in extract_hs_tv_bndrs (fixes #13782).

This fix looks very suspicious.

Tue, Jun 13, 9:51 PM

Mon, Jun 5

goldfire accepted D3627: Support signatures at the kind level in Template Haskell.
Mon, Jun 5, 3:39 PM

Sun, Jun 4

goldfire added a comment to D3627: Support signatures at the kind level in Template Haskell.

Bah. The Q/no Q distinction makes me want to yell obscenities.

Sun, Jun 4, 10:24 PM
goldfire added a comment to D3627: Support signatures at the kind level in Template Haskell.

Why does DsMeta differentiate between types and kinds? In other words, does anything go wrong if we replace repLKind with repLTy?

Sun, Jun 4, 8:05 PM

Thu, Jun 1

goldfire planned changes to D3626: Improve error messages around kind mismatches..

As for all those tickets: Trac #9196 is not related. Perhaps it once was, but the error message is now quite different.

Thu, Jun 1, 6:59 PM
goldfire created D3626: Improve error messages around kind mismatches..
Thu, Jun 1, 5:05 PM

Tue, May 30

goldfire accepted D3609: Update hsSyn AST to use Trees that Grow.

I'm satisfied with this, then.

Tue, May 30, 1:39 PM
goldfire added a comment to D3609: Update hsSyn AST to use Trees that Grow.

I just took a look here to see what I thought... and it's hard to know where to begin. I took a look at HsExpr.hs and TcExpr.hs and didn't see much interesting. Also saw HsExtension.hs, which was more interesting. But I still don't know where to focus.

Tue, May 30, 9:45 AM

May 1 2017

goldfire updated the diff for D3424: Fix #13333 by zonking at a key point in flattener.

Simon's last round of comments. I agree the change in the
zonker is now unnecessary.

May 1 2017, 10:47 PM

Apr 30 2017

goldfire updated the diff for D3424: Fix #13333 by zonking at a key point in flattener.

Updates as per feedback from Simon

Apr 30 2017, 7:33 PM

Apr 26 2017

goldfire accepted D3505: Make the tyvars in TH-reified data family instances uniform.

Looks plausible to me. If it validates. commit.

Apr 26 2017, 8:05 PM

Apr 24 2017

goldfire accepted D3466: core-spec: Simplify the handling of LetRec.

Ah. Yes, I was mistaken. (And I missed the notification from last week. Sorry.)

Apr 24 2017, 2:26 PM

Apr 23 2017

goldfire updated the diff for D3487: Some cleaning up in TyCoRep and friends.

Fix testsuite wibble. Rebase. Validating again.

Apr 23 2017, 1:55 PM
goldfire created D3490: Fix #13233 by checking for lev-poly primops.
Apr 23 2017, 1:17 PM
goldfire created D3487: Some cleaning up in TyCoRep and friends.
Apr 23 2017, 9:32 AM
goldfire updated the diff for D3424: Fix #13333 by zonking at a key point in flattener.

Yet another stab at fixing this the right way. But I think
I have it now. There is a good deal of commentary in this
patch that explains it. Good starting places for reading
are Note [Flattening] in TcFlatten and
Note [Rewriting with Refl] in TcCanonical.

Apr 23 2017, 9:30 AM

Apr 19 2017

goldfire accepted D3472: Document the kind generalization behavior observed in #13555.
Apr 19 2017, 8:19 PM
goldfire added a comment to D3472: Document the kind generalization behavior observed in #13555.

I think this fixes the ticket. Thanks!

Apr 19 2017, 8:19 PM

Apr 18 2017

goldfire requested changes to D3466: core-spec: Simplify the handling of LetRec.

Correct me if I'm wrong, but these semantics say that let rec x = 3 in x steps to itself, no? And you can do this with proper (co-)recursion: let rec ones = 1 : ones in ones is quite useful, yet this, too, seems to step to itself.

Apr 18 2017, 6:50 PM

Apr 15 2017

goldfire updated the diff for D3424: Fix #13333 by zonking at a key point in flattener.

This is a new approach to Trac #13333, summarized by
Note [Zonking in canonicalization] in TcCanonical.

Apr 15 2017, 11:46 AM

Apr 11 2017

goldfire added a comment to D3424: Fix #13333 by zonking at a key point in flattener.

The thread this task has been assigned to has a high priority. But threads that serve my classes that meet daily have higher. This thread has been starving of late. It should get cycles on Friday.

Apr 11 2017, 9:43 AM

Apr 7 2017

goldfire added a comment to D3424: Fix #13333 by zonking at a key point in flattener.

Zonking when you build the implication is obviously bogus, because a subsequent unification will invalidate it.

Apr 7 2017, 10:55 AM
goldfire added a comment to D3424: Fix #13333 by zonking at a key point in flattener.

OK. I now know what's going on. Not sure how best to fix (though it is easy to fix).

Apr 7 2017, 10:05 AM

Apr 6 2017

goldfire added a comment to D3424: Fix #13333 by zonking at a key point in flattener.

While this patch fixed Trac #13333, it's surely the wrong approach.

Apr 6 2017, 6:32 PM

Apr 5 2017

goldfire created D3424: Fix #13333 by zonking at a key point in flattener.
Apr 5 2017, 9:36 PM

Mar 30 2017

goldfire requested changes to D3396: Fixes to tcView patch.
Mar 30 2017, 8:02 AM
goldfire added a comment to D3396: Fixes to tcView patch.

I see a few other uses of splitTyConApp_maybe in the unifier. These should probably be changed to tcSplitTyConApp_maybe. Ditto with repSplitAppTy_maybe.... but perhaps the "rep" version of these functions are the same between tc and core.

Mar 30 2017, 8:02 AM
goldfire added a comment to rGHCcea7141851ce: Fix #13458.

Not only is it not useful, but the warning is utterly wrong. Ben said he was looking into this.

Mar 30 2017, 7:43 AM

Mar 28 2017

goldfire abandoned D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.

I have merged this.

Mar 28 2017, 8:22 PM

Mar 27 2017

goldfire committed rGHCcea7141851ce: Fix #13458 (authored by goldfire).
Fix #13458
Mar 27 2017, 2:05 PM

Mar 22 2017

goldfire created D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.
Mar 22 2017, 10:08 PM

Mar 17 2017

goldfire abandoned D3355: Levity polymorphism bug sweep.

Pushed to master.

Mar 17 2017, 10:24 AM
goldfire committed rGHC66d174a9650c: Test #13435 in typecheck/should_run/T13435 (authored by goldfire).
Test #13435 in typecheck/should_run/T13435
Mar 17 2017, 10:24 AM
goldfire committed rGHC3cfee57abf00: Remove solveSomeEqualities (authored by goldfire).
Remove solveSomeEqualities
Mar 17 2017, 10:24 AM
goldfire committed rGHC02cc8f0c423e: Fix #13343 by not defaulting SigTvs (authored by goldfire).
Fix #13343 by not defaulting SigTvs
Mar 17 2017, 10:24 AM
goldfire committed rGHCfa13c136e6e6: Fix #13202 by failing more eagerly in tcRnStmt (authored by goldfire).
Fix #13202 by failing more eagerly in tcRnStmt
Mar 17 2017, 10:24 AM
goldfire committed rGHCdca44adb9e14: Fix #12709 by not building bad applications (authored by goldfire).
Fix #12709 by not building bad applications
Mar 17 2017, 10:24 AM
goldfire committed rGHC4dc993008a66: Comment coercion flattening [skip ci] (authored by goldfire).
Comment coercion flattening [skip ci]
Mar 17 2017, 10:24 AM

Mar 16 2017

goldfire updated the diff for D3355: Levity polymorphism bug sweep.

Fix error message wibbles

Mar 16 2017, 9:20 PM
goldfire updated the diff for D3355: Levity polymorphism bug sweep.

This attempt removes the tcView/coreView (D3316) part, as there
are some design issues to discuss, as I will post to Trac #11715.

Mar 16 2017, 8:24 PM
goldfire created D3355: Levity polymorphism bug sweep.
Mar 16 2017, 4:45 PM

Mar 10 2017

goldfire updated the diff for D3316: Clean up coreView/tcView..

Rebase

Mar 10 2017, 2:09 PM
goldfire updated the diff for D3315: Fix #13337..

Rebase

Mar 10 2017, 2:07 PM
goldfire updated the diff for D3315: Fix #13337..

Simon's feedback

Mar 10 2017, 1:58 PM
goldfire added a comment to D3315: Fix #13337..

Thanks for the feedback. New version forthcoming.

Mar 10 2017, 1:57 PM
goldfire updated the diff for D3315: Fix #13337..

Remove debug output. Include Haddock update.

Mar 10 2017, 10:36 AM
goldfire updated the diff for D3316: Clean up coreView/tcView..

Apply Simon's comments

Mar 10 2017, 8:31 AM
goldfire created D3316: Clean up coreView/tcView..
Mar 10 2017, 8:15 AM
goldfire created D3315: Fix #13337..
Mar 10 2017, 8:13 AM

Mar 9 2017

goldfire accepted D3310: Further document :type +v's role in analyzing -XTypeApplications in GHCi.
Mar 9 2017, 9:06 PM
goldfire requested changes to D3310: Further document :type +v's role in analyzing -XTypeApplications in GHCi.

Thanks!

Mar 9 2017, 8:55 PM

Mar 1 2017

goldfire added a comment to D3222: More comments on role subtyping, unsoundness fix..

Otherwise, looks good.

Mar 1 2017, 2:07 PM

Feb 27 2017

goldfire added a comment to D3208: Tidy up Coercion.mkRuntimeRepCo.

Yes, coreViewOneStarKind is your friend. It is a view on the world with only one * kind -- that is, it changes Constraint to Type. It's hard for me to be sure whether D3218 is correct or not. Adding some coreViewOneStarKinds as I have described might be an improvement.

Feb 27 2017, 3:12 PM

Feb 26 2017

goldfire accepted D3218: Coercion: Try dropping constraintIsLifted axiom.

If this works, hooray!

Feb 26 2017, 12:35 PM
goldfire added a comment to D3123: Subtyping for roles in signatures..
In D3123#93264, @ezyang wrote:

Actually this is sound!

Feb 26 2017, 11:06 AM

Feb 24 2017

goldfire added a comment to D3208: Tidy up Coercion.mkRuntimeRepCo.

This doesn't look right in here. eqType Constraint Type returns True. So, I recommend using coreViewOneStarKind on a and b to "unwrap" the Constraint and reveal the TYPE LiftedRep underneath. Then this all becomes much simpler.

Feb 24 2017, 12:44 PM
goldfire accepted D3209: Fix a nasty bug in CoreSubst.collectBindersPushingCo.

Looks good to me. Thanks!

Feb 24 2017, 12:34 PM
goldfire added inline comments to D3170: Simplify FVAnn.
Feb 24 2017, 8:18 AM

Feb 23 2017

goldfire added a comment to D3170: Simplify FVAnn.

Ah. Just read the ticket. Thanks for doing this!

Feb 23 2017, 3:51 PM

Feb 22 2017

goldfire added a comment to D3170: Simplify FVAnn.

It looks like you're just removing a check. I don't think it's safe to simply remove it. Simon and I have discussed this at some length.... and, if memory serves, we did agree that because of a long series of delicate invariants, this indeed might be safe. But a long Note is in order, at the minimum.

Feb 22 2017, 4:56 PM

Feb 8 2017

goldfire committed rGHCb6558d800722: Checkpoint after renaming (authored by goldfire).
Checkpoint after renaming
Feb 8 2017, 9:06 PM
goldfire committed rGHCe554ac3e19ee: Checkpoint. Stage 2 compiles + works. (authored by goldfire).
Checkpoint. Stage 2 compiles + works.
Feb 8 2017, 9:06 PM
goldfire committed rGHC1c8aab4f4800: Work toward adding new `Visibility` parameter. (authored by goldfire).
Work toward adding new `Visibility` parameter.
Feb 8 2017, 9:06 PM
goldfire committed rGHC07a1c1b4d97e: Use mkCastTy in subst_ty (authored by goldfire).
Use mkCastTy in subst_ty
Feb 8 2017, 9:06 PM
goldfire committed rGHC07a34c4cf08b: More deleting code. Bugfixing. (authored by goldfire).
More deleting code. Bugfixing.
Feb 8 2017, 9:06 PM
goldfire committed rGHC79290738dbaa: Bugfixing. Deleting code. (authored by goldfire).
Bugfixing. Deleting code.
Feb 8 2017, 9:06 PM
goldfire committed rGHC30895d6f0c5a: Separate Constraint from Type in Core. (authored by goldfire).
Separate Constraint from Type in Core.
Feb 8 2017, 9:06 PM
goldfire added a comment to D3022: Prevent Template Haskell splices from throwing a spurious TypeInType error.

Yes, I recommended this course of action on Trac. I would add another sentence to the Note saying that alternatives are debated on the ticket, as this design choice is indeed strange. It's just that it's better than the alternatives! Thanks, Ryan!

Feb 8 2017, 8:18 PM

Jan 31 2017

goldfire added inline comments to D2038: TysPrim: Generalize kind of (->).
Jan 31 2017, 8:43 PM
goldfire added a comment to D2038: TysPrim: Generalize kind of (->).

To avoid being able to extract ContraintRep ~R LiftedPtrRep we decided to weaken one of the coercion constructors, the one that gets a kind coercion from a type coercion. We don't need it, and it's awkward here.

Jan 31 2017, 6:50 AM

Jan 30 2017

goldfire added a comment to D2038: TysPrim: Generalize kind of (->).

This is looking great, Ben, other than my comment below including the text "major disaster". The disaster is in the theory, not this implementation, though!

Jan 30 2017, 11:19 PM

Jan 27 2017

goldfire accepted D3033: Convert pprTrace in isPredTy to a WARN.

Look great. Thanks!

Jan 27 2017, 3:42 PM

Jan 26 2017

goldfire added a comment to D3023: Separate Constraint from Type in Core..

Having another parameter to TYPE also solves another small wrinkle in this patch. The noinline function is used in interface files to provide loop-breakers when hs-boot files are involved. See Note [Inlining and hs-boot files] in ToIface. However, we sometimes need to apply noinline to dictionaries. If Constraint /= Type, then noinline needs to be levity polymorphic. Except that it really shouldn't be -- it should be coherency-polymorphic. Note also that coherency doesn't affect the code generator at all, so I could define

Jan 26 2017, 8:40 AM
goldfire added a comment to D3023: Separate Constraint from Type in Core..

In thinking about this, I think adding the Coherency argument to TYPE might be the only solution. As it stands we're in a strange space: If I have forall (r :: RuntimeRep) (a :: TYPE r). a -> a, then any choice of r is OK except ConstraintRep -- because ConstraintRep requires a => (and can't be returned from a function, besides). This bump in the surface tells me we have the wrong design. The "obvious" way forward is to add another parameter to TYPE. Then it's all easy. And tuples can be made to infer their kind more naturally.

Jan 26 2017, 8:35 AM

Jan 25 2017

goldfire retitled D3023: Separate Constraint from Type in Core. from to Separate Constraint from Type in Core..
Jan 25 2017, 10:37 PM

Jan 19 2017

goldfire committed rGHCe7985ed23ddc: Update levity polymorphism (authored by goldfire).
Update levity polymorphism
Jan 19 2017, 9:38 AM

Jan 18 2017

goldfire updated the diff for D2842: Update levity polymorphism (WIP).

Add HsConLikeOut to get cleaner pretty-printing of typechecked
ConLikes. More tests and such. Still need to update manual.

Jan 18 2017, 11:47 PM

Jan 14 2017

goldfire accepted D2974: Don't quantify implicit type variables when quoting type signatures in TH.

This looks good. I agree about not backporting. But I wonder how TH clients would react to this change -- the new version presents clients of TH with less information than we did previously. Is it worth making a ImplicitForallT or some such that still includes the quantified variables? I guess if we did, then we'd be back to needing splitting.

Jan 14 2017, 4:45 PM

Jan 11 2017

goldfire added a comment to D2842: Update levity polymorphism (WIP).

Somehow I'm not getting emails from this diff. Perhaps this will help.

Jan 11 2017, 10:03 AM

Jan 10 2017

goldfire updated the diff for D2842: Update levity polymorphism (WIP).

Some cleaning up. Some testsuite. There are still
some failing tests, including a nasty one about
printing type-checked unlifted pattern synonyms occurrences
without the void# argument. Any ideas of how to do this
would be greatly appreciated!

Jan 10 2017, 10:16 PM

Jan 9 2017

goldfire updated the diff for D2842: Update levity polymorphism (WIP).

More bugfixing and straightening out of checkStrictBinds,
which was rather broken before.

Jan 9 2017, 10:20 PM
goldfire accepted D2914: check that type variable does not reference itself in its kind signature (fixes #11592).

This looks great to me. Ship it!

Jan 9 2017, 9:44 PM

Jan 6 2017

goldfire updated the diff for D2842: Update levity polymorphism (WIP).

As you can see above, I ran into some technical trouble. This
is a test.

Jan 6 2017, 12:13 PM
goldfire updated the diff for D2842: Update levity polymorphism (WIP).

This patch now contains the work originally in D2852. They are
merged because that patch is easier in the context of this one,
and they're so related anyway.

Jan 6 2017, 12:08 PM
goldfire updated the diff for D2842: Update levity polymorphism (WIP).

This patch now contains the work originally in D2852. They are
merged because that patch is easier in the context of this one,
and they're so related anyway.

Jan 6 2017, 12:08 PM
goldfire updated the diff for D2842: Update levity polymorphism (WIP).

This patch now contains the work originally in D2852. They are
merged because that patch is easier in the context of this one,
and they're so related anyway.

Jan 6 2017, 11:58 AM

Jan 5 2017

goldfire abandoned D2852: Add more levity-polymorphism checks.

Update: I was able to remove hsExprType and friends. I had written these because of the fixM in desugaring arrows, but it turns out that the knot-tied stuff is surely not levity polymorphic already. No need for hsExprType. However, the performance implications of LP checking are still very present, and so the idea behind the optimized version must remain. This has been integrated into a new isExprLevPoly function. However, for this function to actually be correct, it either must be rather complicated, or we need UnboxedTupleRep not to be a lie. (c.f. checkForLevPolyX and its complications)

Jan 5 2017, 3:20 PM

Dec 28 2016

goldfire accepted D2898: typecheck: Disallow users to write instances of KnownNat and KnownSym.

This patch solves the problem well and fits with existing code in the area. Thanks, @sjorn3 !

Dec 28 2016, 9:47 AM

Dec 23 2016

goldfire planned changes to D2852: Add more levity-polymorphism checks.

Simon's feedback was delivered by voice, and I will have to incorporate changes into this patch:

  • hsExprTypeForLPCheck should just become hsIsLevPoly and return a Bool instead of a Maybe Type.
  • Some calls to newSysLocalDs can really be newSysLocalDsNoCheck. And with the latter being much more common than the former, I should make the latter's name shorter.
  • Further thought makes me wonder if we can just do the levity polymorphism check on the desugared expression after all: perhaps the interaction with DsArrows is simpler than I thought and that there is a way to finesse the whole matter. I will explore.
  • Simon has signed off on the new bit of IdInfo. But I will refactor it slightly to make my new IdInfo functions stylistically closer to existing ones. It's unclear to me whether serializing the new IdInfo is better than just recalculating it upon deserialization.
Dec 23 2016, 2:02 PM

Dec 21 2016

goldfire updated the diff for D2842: Update levity polymorphism (WIP).
  • More bugfixing. Much of base compiles.
Dec 21 2016, 2:31 PM
goldfire added a comment to D2852: Add more levity-polymorphism checks.

NB: Validation successful. Still waiting for feedback from Simon, as this patch is a good deal more complicated than we hoped it would be.

Dec 21 2016, 2:18 PM
goldfire updated the diff for D2852: Add more levity-polymorphism checks.

Remove a debugging statement and fix some comments.

Dec 21 2016, 8:50 AM
goldfire accepted D2886: Have addModFinalizer expose the local type environment..

Well spotted, @facundominguez !

Dec 21 2016, 8:27 AM

Dec 20 2016

goldfire added a comment to D2852: Add more levity-polymorphism checks.

Oh, and yes about the name change. Simon convinced me while writing the paper that we should call it the more conspicuous "levity polymorphism".

Dec 20 2016, 11:37 PM
goldfire added inline comments to D2852: Add more levity-polymorphism checks.
Dec 20 2016, 11:36 PM
goldfire updated the diff for D2852: Add more levity-polymorphism checks.

Add several optimizations to hsExprType in order to get
T5631 to pass. There are three main optimizations:

Dec 20 2016, 11:35 PM

Dec 19 2016

goldfire updated the diff for D2842: Update levity polymorphism (WIP).

This resolves the challenges above as well as I could.

Dec 19 2016, 6:12 PM
goldfire updated the diff for D2852: Add more levity-polymorphism checks.

Rebase against master

Dec 19 2016, 11:44 AM