simonpj (Simon Peyton Jones)
User

Projects

User Details

User Since
Jun 9 2014, 9:34 AM (245 w, 4 d)

Recent Activity

Wed, Feb 20

simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

Sigh. There has to be a better way than this. Send mail to me personally at simonpj@microsoft.com and I will act as your personal mail forwarding agent and fwd it to ghc-devs

Wed, Feb 20, 10:53 AM
simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

I'm not sure what the protocol is these days. Can you ask for help on ghc-devs?

Wed, Feb 20, 10:07 AM
simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

Thanks! Go for it!

Wed, Feb 20, 9:32 AM
simonpj accepted D5249: [#14037] Allow fusion for zip7 and related.

Accepting -- use your judgement in deciding how/whether to respond to my suggestions.

Wed, Feb 20, 3:39 AM
simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

Lovely. Some minor suggestions.

Wed, Feb 20, 3:39 AM

Mon, Feb 18

simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

Sorry not to be clear! I meant that I don't like a comment that says "I don't know why this code is right, but it's the same as that code over there, which also lacks any comment". Clearly the right thing is to add the missing comment which I have done in
https://gitlab.haskell.org/ghc/ghc/merge_requests/394

Mon, Feb 18, 8:06 AM
simonpj added a comment to D5249: [#14037] Allow fusion for zip7 and related.

I don't like having comments like this! We should fix the original problem.

The inline principle for @zipWith3M@ and @zipWith3M_@ is the same as for
zipWithM' and 'zipWithM_' in "Control.Monad".
No comment or explanation is given in that module as to why 'zipWith'
has an @INLINE@ pragma, but it stands to reason that if it was added in the
 past and not removed or addressed in any way, it is overall useful (but still
undocumented, which would be nice to address).

I'll push a patch and you can then change this one to refer to the new Notes in my patch

Mon, Feb 18, 3:08 AM

Wed, Jan 30

simonpj added inline comments to D5475: Fix #16219: TemplateHaskell causes indefinite package build error.
Wed, Jan 30, 7:34 AM

Mon, Jan 28

simonpj added a comment to D4777: Implement the Unlifted Newtypes proposal.

I have not been following the details here, since Richard has been On The Job. But it'd be good for me to do so before we finally pull the trigger.

Mon, Jan 28, 3:42 AM

Jan 22 2019

simonpj added a comment to D5305: Towards using level numbers for generalisation.

PS the commit is

commit 2257a86daa72db382eb927df12a718669d5491f8
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Wed Nov 28 16:06:15 2018 +0000
Jan 22 2019, 4:59 PM
simonpj added a comment to D5305: Towards using level numbers for generalisation.

What is the status of this, @goldfire?

Jan 22 2019, 4:58 PM
Marge Bot <ben+marge-bot@smart-cactus.org> committed rGHCa5373c1fe172: Fix bogus worker for newtypes (authored by simonpj).
Fix bogus worker for newtypes
Jan 22 2019, 8:05 AM

Jan 16 2019

simonpj added a comment to D4777: Implement the Unlifted Newtypes proposal.

I'm not sure how WARN gets handled by the compiler, but my suspicion is that the warning is silently discarded. So the question is, what's the right thing to do here?

Jan 16 2019, 6:11 AM

Jan 10 2019

simonpj added a comment to D5286: Run typed splices in the zonker.

ok. There are some other comments you might want to address when you finalise

Jan 10 2019, 5:55 AM

Jan 8 2019

simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

Where are we on this work? I've gotten lost? If not complete, perhaps it would be helpful to summarise the state of play, with pointer to the key Notes, wiki pages, or whatever? Thansk!

Jan 8 2019, 6:51 AM
simonpj added a comment to D5471: Be pickier about unsaturated synonyms in :kind.

Bother. I did type in a comment, but somehow it got lost. Anyway: go for it!

Jan 8 2019, 5:42 AM

Jan 7 2019

simonpj added a comment to D5471: Be pickier about unsaturated synonyms in :kind.

Sorry to be so slow.

Jan 7 2019, 5:50 PM

Jan 4 2019

simonpj added a comment to D4777: Implement the Unlifted Newtypes proposal.

Looking good! Richard's comments are spot on.

Jan 4 2019, 5:37 AM

Dec 24 2018

simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

I don't think we need CAF-info on non-top-level Ids. Here is why.

Dec 24 2018, 5:34 AM
simonpj accepted D5472: Simplify Core output with -dsuppress-type-signatures.
Dec 24 2018, 5:08 AM
simonpj added a comment to D5471: Be pickier about unsaturated synonyms in :kind.

One suggestion. Somewhat a matter of taste I suppose.

Dec 24 2018, 2:45 AM

Dec 21 2018

simonpj added a comment to D5286: Run typed splices in the zonker.

Looking good! Some small suggestions for Matthew

Dec 21 2018, 5:25 PM
simonpj added a comment to D4777: Implement the Unlifted Newtypes proposal.

Since coerce inlines to coerce# in every phase,

Dec 21 2018, 4:25 PM
simonpj committed rGHCe9346b539a3b: Improve documention of TypeInType (authored by simonpj).
Improve documention of TypeInType
Dec 21 2018, 10:55 AM
simonpj committed rGHCa57d5c4d3e39: Fix treatment of hi-boot files and dfuns (authored by simonpj).
Fix treatment of hi-boot files and dfuns
Dec 21 2018, 10:55 AM
simonpj committed rGHC66ce7de15dbc: Tiny refactor to tcExtendRecEnv (authored by simonpj).
Tiny refactor to tcExtendRecEnv
Dec 21 2018, 10:55 AM
simonpj committed rGHC28188e06b495: Comments only (authored by simonpj).
Comments only
Dec 21 2018, 10:55 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

But don't we still need to do that for imported Ids?

Dec 21 2018, 9:15 AM
simonpj committed rGHC71e26a74da5e: Make candidateQTvs contain tyvar with zonked kinds (authored by simonpj).
Make candidateQTvs contain tyvar with zonked kinds
Dec 21 2018, 5:37 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

Why not just change vanillaCafInfo

Dec 21 2018, 5:36 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.
In D5432#150882, @osa1 wrote:

I might be missing something, but how does that prevent us from accidentally using the CafInfo from the occurrence Id?

@simonpj @simonmar what do you think about making IdInfo.cafInfo a Maybe CafInfo instead of CafInfo? That way we can leave caf info of non-imported ids Nothing (initially all ids have Nothing as caf info), and idCafInfo can panic instead of returning the default value when that happens.

We can later do the same thing for arity.

Dec 21 2018, 5:09 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

I might be missing something, but how does that prevent us from accidentally using the CafInfo from the occurrence Id?

Dec 21 2018, 4:25 AM
simonpj added inline comments to D5432: Do Caf analysis right before codegen, fix #9718.
Dec 21 2018, 3:53 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

I don't think this works - for imported Ids we need to get the CafInfo from the Id and put it in the IdLabel.

Dec 21 2018, 3:17 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

So I think this is OK, but worth a comment somewhere.

Dec 21 2018, 2:47 AM

Dec 20 2018

simonpj added inline comments to D5420: Fix #16002 by moving a validity check to the renamer.
Dec 20 2018, 3:04 PM
simonpj accepted D5420: Fix #16002 by moving a validity check to the renamer.

Lovely

Dec 20 2018, 11:45 AM
simonpj committed rGHC5f2a87935149: Refine the suppression of RuntimeRep variables (authored by simonpj).
Refine the suppression of RuntimeRep variables
Dec 20 2018, 9:02 AM
simonpj committed rGHCa1c3ad0450ba: Add solveLocalEqualities to tcHsPatSigType (authored by simonpj).
Add solveLocalEqualities to tcHsPatSigType
Dec 20 2018, 9:02 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

Why do we need CafInfos in a TypeEnv? I'd expect TypeEnv to be used for type checking, which shouldn't need CafInfos.

Dec 20 2018, 6:25 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

I think there may be more uses of idCafInfos. Simply searching in the source code shows that

Dec 20 2018, 6:20 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

PS: One other thing to check.

Dec 20 2018, 4:17 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

Hang on. updateStgCafInfos puts CAF info into the IdInfo of a binder. But who looks at that info? I guess:

Dec 20 2018, 4:12 AM

Dec 18 2018

simonpj added a comment to D5408: Introduce ExpPatFrame.
I will have to explore, thank you for this interesting thought. Maybe we'll end up with something small after all.
Dec 18 2018, 4:19 PM
simonpj added a comment to D5408: Introduce ExpPatFrame.

@simonpj Can we merge this, unless you have more questions/objections?

Dec 18 2018, 11:42 AM
simonpj added inline comments to D5420: Fix #16002 by moving a validity check to the renamer.
Dec 18 2018, 11:29 AM

Dec 13 2018

simonpj committed rGHC80ccee236795: Remove another unused import from WwLib (authored by simonpj).
Remove another unused import from WwLib
Dec 13 2018, 5:38 PM
simonpj accepted D5447: don't suggest Rank2Types in error messages (Fixed #16000).
Dec 13 2018, 11:03 AM
simonpj accepted D5440: Fix #16030 by refactoring IfaceSyn's treatment of GADT constructors.

Great, thatnks

Dec 13 2018, 10:02 AM
simonpj added inline comments to D5401: Linear types: stepping stone.
Dec 13 2018, 9:23 AM
simonpj added inline comments to D5401: Linear types: stepping stone.
Dec 13 2018, 9:07 AM
simonpj added a comment to D5432: Do Caf analysis right before codegen, fix #9718.

This is all a great improvement.

Dec 13 2018, 5:29 AM

Dec 12 2018

simonpj added a comment to D5444: Fix #10857: ghci ignores -XMonomorphismRestriction and -XNoExtendedDefaultRules command line flags.

Looks good, thanks. I suggest a minor refactoring

Dec 12 2018, 2:48 PM
simonpj committed rGHCf0eb404e1b5b: Remove dead code (authored by simonpj).
Remove dead code
Dec 12 2018, 2:29 PM
simonpj committed rGHCd77501cd5b90: Improvements to demand analysis (authored by simonpj).
Improvements to demand analysis
Dec 12 2018, 11:40 AM

Dec 10 2018

simonpj added a comment to D5408: Introduce ExpPatFrame.

Unfortunately, while do or let cannot be used in patterns, they can be used in commands, so we end up duplicating most of HsExpr constructors for the sake of HsCmd. If not for this, we'd be able to make ExpPatFrame smaller.

Dec 10 2018, 4:57 PM
simonpj requested changes to D5435: Fix #16008 with a pinch of addConsistencyConstraints.

Thanks for doing this

Dec 10 2018, 4:44 PM
simonpj added inline comments to D5229: Visible kind application.
Dec 10 2018, 10:00 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.

The new datatype is entirely local to the parser. This is in contrast to the other GhcPasses which communicate between phases of the compiler.

Dec 10 2018, 4:12 AM

Dec 7 2018

simonpj committed rGHCf334d20e00e3: Careful tweaking to exprOkForSpeculation (authored by simonpj).
Careful tweaking to exprOkForSpeculation
Dec 7 2018, 8:59 AM
simonpj committed rGHC5b7ca03995c1: Wibble to Taming the Kind Inference Monster (authored by simonpj).
Wibble to Taming the Kind Inference Monster
Dec 7 2018, 8:44 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.

I'm worried about these gigantic instance contexts. I don't understand your suggested solution yet, Vladislav; could you give a concrete example?

Dec 7 2018, 4:02 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.

I expect each pass to be aware only of its input and output structures:

Dec 7 2018, 3:45 AM

Dec 6 2018

simonpj added inline comments to D5420: Fix #16002 by moving a validity check to the renamer.
Dec 6 2018, 4:12 PM
simonpj added a reviewer for D5408: Introduce ExpPatFrame: shayan-najd.
Dec 6 2018, 3:58 PM
simonpj added a comment to D5408: Introduce ExpPatFrame.

Does this sound reasonable?

Dec 6 2018, 3:58 PM
simonpj added inline comments to D5400: Make constructor wrappers inline only during the final phase.
Dec 6 2018, 11:49 AM
simonpj committed rGHC081f44bf3a2f: Remove a tcTrace (authored by simonpj).
Remove a tcTrace
Dec 6 2018, 8:46 AM
simonpj committed rGHC91c4e71f633e: Tests Trac #14847 (authored by simonpj).
Tests Trac #14847
Dec 6 2018, 8:46 AM
simonpj added a comment to D5397: Fix #12102/#15872 by removing outdated users' guide prose.

Let's land this!

Dec 6 2018, 8:41 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.

Thank you!

Dec 6 2018, 8:10 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.
we would create a new stage GhcPrePs for it.
Dec 6 2018, 6:46 AM
simonpj added a comment to D5408: Introduce ExpPatFrame.

Thanks for doing this.

Dec 6 2018, 6:10 AM
simonpj added a comment to D5400: Make constructor wrappers inline only during the final phase.

Generally looking good. A few suggestions.

Dec 6 2018, 5:03 AM
simonpj added a comment to D4777: Implement the Unlifted Newtypes proposal.

Is this in-flight or do you consider it done? If the latter I will gladly have a look. Thanks!

Dec 6 2018, 2:39 AM

Dec 5 2018

simonpj accepted D5414: Don't use a generic apply thunk for known calls.

Looks good to me. Please create a ticket, though, describe the idea, and put the perf-change data in it.
Then you can refer to the ticket from the one-line code change.

Dec 5 2018, 5:11 PM
simonpj added a comment to D5394: Fix recompilation bug with default class methods (#15970).

I think I'll just go with this and save the refactoring for the next time I'm on a transatlantic flight.

Dec 5 2018, 4:45 PM
simonpj committed rGHC84cba4bce65f: Remove duplicates in -ddump-minimial-imports (authored by simonpj).
Remove duplicates in -ddump-minimial-imports
Dec 5 2018, 4:36 AM

Dec 4 2018

simonpj added a comment to D5377: Show instance import provenance on overlapping instances.

Examples would take up a lot of space. Would it be fine to insert about 2 pages of comments for this minor addition?

Dec 4 2018, 7:18 AM
simonpj added inline comments to D5377: Show instance import provenance on overlapping instances.
Dec 4 2018, 4:46 AM
simonpj added a comment to D5401: Linear types: stepping stone.

At least to be merged after the bugs listed in my first comment are fixed, and syntax is decided,

Dec 4 2018, 2:57 AM

Dec 3 2018

simonpj committed rGHCa46511a88e71: Comments only (authored by simonpj).
Comments only
Dec 3 2018, 7:49 AM
simonpj committed rGHC03d4852658e1: Introduce tcTypeKind, and use it (authored by simonpj).
Introduce tcTypeKind, and use it
Dec 3 2018, 7:42 AM
simonpj accepted D5241: Add fusion rules for the zipWith functions in base (#15263).

generally looks ok to me, thank you. (Although I have not checked every line.) Ben: merge this?

Dec 3 2018, 5:35 AM
simonpj accepted D5403: Fix embarrassing infinite loop in pprParendType.
Dec 3 2018, 2:38 AM

Dec 1 2018

simonpj accepted D5402: Fix #15954 by rejigging check_type's order.
Dec 1 2018, 2:27 PM
simonpj accepted D5370: Fix StgLint bound id check, generalize StgLint.
Dec 1 2018, 4:40 AM

Nov 30 2018

simonpj added a comment to D5397: Fix #12102/#15872 by removing outdated users' guide prose.

They can appear in the kinds of promoted data constructors, say from GADTs with hand-written equality constraints.

Nov 30 2018, 4:12 PM
simonpj added a comment to D5397: Fix #12102/#15872 by removing outdated users' guide prose.
That is, equality constraints in kinds still work, but now the user can't write them. By "work", I mean that tcInstTyBinders does the right thing. It looks like this from the code, but I'm just double-checking my understanding.
Nov 30 2018, 3:33 PM
simonpj added inline comments to D5394: Fix recompilation bug with default class methods (#15970).
Nov 30 2018, 3:31 PM
simonpj added a comment to D5397: Fix #12102/#15872 by removing outdated users' guide prose.

Great! I had quite forgotten that bit of the monster-patch. I hope Richard agrees!?

Nov 30 2018, 10:59 AM
simonpj committed rGHC80d665a12330: Two tests for Trac #14230 (authored by simonpj).
Two tests for Trac #14230
Nov 30 2018, 8:41 AM
simonpj added inline comments to rGHC2257a86daa72: Taming the Kind Inference Monster.
Nov 30 2018, 7:10 AM

Nov 29 2018

simonpj committed rGHC2257a86daa72: Taming the Kind Inference Monster (authored by simonpj).
Taming the Kind Inference Monster
Nov 29 2018, 11:28 AM
simonpj committed rGHC1235ca956c80: Test Trac #15943 (authored by simonpj).
Test Trac #15943
Nov 29 2018, 5:47 AM

Nov 28 2018

simonpj committed rGHCe08d34bbb4e6: Comments only (authored by simonpj).
Comments only
Nov 28 2018, 11:10 AM

Nov 27 2018

simonpj added a comment to D5330: Introduce map from RdrName to Name for GHC API.
In D5330#148230, @alanz wrote:
Nov 27 2018, 4:39 AM

Nov 26 2018

simonpj added inline comments to D5375: Fix #15941 by only special-casing visible infix applications.
Nov 26 2018, 9:44 AM
simonpj added inline comments to D5375: Fix #15941 by only special-casing visible infix applications.
Nov 26 2018, 9:44 AM
simonpj added a comment to D5330: Introduce map from RdrName to Name for GHC API.

Alan, could you write a Note or wiki page or something explaining

Nov 26 2018, 7:39 AM