shayan-najd (Shayan Najd)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 19 2014, 1:59 PM (226 w, 2 d)

Recent Activity

Dec 10 2018

shayan-najd added a comment to D5408: Introduce ExpPatFrame.

(and I have updated the wiki page to summarise our email communication: https://ghc.haskell.org/trac/ghc/wiki/Design/ExpPatFrame#EmbeddingCommonTerms)

Dec 10 2018, 4:55 PM

Dec 7 2018

shayan-najd added a comment to D5408: Introduce ExpPatFrame.

I've added a new Plan G

Isn't it the same as Plan D, which for some reason is in the "Outdated/Infeasible" section? Is the only difference that we are concerned with Outputable only?

Perhaps if you have Plan H, you could add it, Vladislav?

Done. I added Plan H and Plan H*

Both solving the large constraint set, and all the large dictionaries passed around.

Passing a single large dictionary (as I suggest in Plan H*) shouldn't be that bad, right? It's just a single pointer, operationally.

Dec 7 2018, 7:17 AM
shayan-najd added a comment to D5408: Introduce ExpPatFrame.

I have taken another look, and now understand int-index's argument.

Dec 7 2018, 4:54 AM

Dec 6 2018

shayan-najd added a comment to D5408: Introduce ExpPatFrame.

Thanks for pointing me to this.
I have taken a quick look.
I agree this is the right place to use TTG.
In fact, I pitched TTG in Japan (HiW'16), by demonstrating a bug (now patched), caused by the very confusion of Expr and Pat, that allowed compiling a module containing only the text`boo@ooo` leading to a GHC panic :)
The other Haskell parsers,e.g. Haskell-Src-Exts (HSE), also often have a "pre-parsing" (or "mid-parsing") AST.
I am not yet sure about some details here, like what suits parsing in the presence of ambiguity best. I will take a closer look at int-index's use of FrameX tomorrow.

Dec 6 2018, 5:19 PM

Nov 23 2018

shayan-najd updated the diff for D5036: [TTG: Handling Source Locations] Foundation and Pat.

[TTG: Handling Source Locations] Foundation and Pat

Nov 23 2018, 6:08 AM

Nov 9 2018

shayan-najd added a comment to D5036: [TTG: Handling Source Locations] Foundation and Pat.

We had another set of discussions through the email and decided to land this patch soon, followed up with a series of other patches that implement the same solution for the other data types and another series of patchers that make the code more idiomatic (e.g., removing the fooLPat by adding a clause to a fooPat).

Nov 9 2018, 8:34 PM

Oct 16 2018

shayan-najd added a comment to D5036: [TTG: Handling Source Locations] Foundation and Pat.

What is the plan for this, @shayan-najd? I agree that we will really need to find a way to break this up a bit if we want meaningful review.

Oct 16 2018, 5:05 AM
shayan-najd added a comment to D5036: [TTG: Handling Source Locations] Foundation and Pat.

It's quite hard to review this patch because it's dominated by routine changes, so it's hard to find the actual payload.

Can you just identify the payload? You partly do that in the Description, but it'd be helpful to say which module these various things are defined in.

Oct 16 2018, 4:54 AM

Aug 17 2018

shayan-najd updated subscribers of D5036: [TTG: Handling Source Locations] Foundation and Pat.

Seems like this patch would be a lot cleaner if a pattern synonym was defined for L. Having to use ViewPatterns everywhere is not very ergonomic.

Aug 17 2018, 7:18 AM

Aug 14 2018

shayan-najd updated the summary of D5036: [TTG: Handling Source Locations] Foundation and Pat.
Aug 14 2018, 4:47 PM

Aug 9 2018

shayan-najd updated the Trac tickets for D5036: [TTG: Handling Source Locations] Foundation and Pat.
Aug 9 2018, 7:01 AM

Aug 2 2018

shayan-najd updated the summary of D5036: [TTG: Handling Source Locations] Foundation and Pat.
Aug 2 2018, 4:59 AM
shayan-najd abandoned D4960: [TTG - SrcLocs] The Initial Setting and Implementing for HsPat.
Aug 2 2018, 4:38 AM
shayan-najd abandoned D5035: [TTG: Handling Source Locations] - introduced class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`) - instances of `HasSrcSpan` is introduced - some constructors `L` replaced with `cL` - some patterns `L` replaced with `dL` - `XPat` renamed....
Aug 2 2018, 4:37 AM
shayan-najd retitled D5036: [TTG: Handling Source Locations] Foundation and Pat from [TTG: Handling Source Locations] - introduced class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`) - instances of `HasSrcSpan` is introduced - some constructors `L` replaced with `cL` - some patterns `L` replaced with `dL` - `XPat` renamed... to [TTG: Handling Source Locations] Foundation and Pat.
Aug 2 2018, 4:34 AM
Herald added a reviewer for D5036: [TTG: Handling Source Locations] Foundation and Pat: goldfire.
Aug 2 2018, 4:28 AM
Herald added a reviewer for D5035: [TTG: Handling Source Locations] - introduced class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`) - instances of `HasSrcSpan` is introduced - some constructors `L` replaced with `cL` - some patterns `L` replaced with `dL` - `XPat` renamed...: goldfire.
Aug 2 2018, 4:27 AM

Jul 13 2018

shayan-najd updated the diff for D4960: [TTG - SrcLocs] The Initial Setting and Implementing for HsPat.
  • [TTG - SrcLocs] minor
Jul 13 2018, 2:21 AM

Jul 12 2018

Herald added a reviewer for D4960: [TTG - SrcLocs] The Initial Setting and Implementing for HsPat: goldfire.
Jul 12 2018, 11:53 PM

Apr 25 2018

shayan-najd added a comment to D4625: TTG : complete for balance of hsSyn AST.

All is as expected (systematic). Finally, we got rid of the old PostRN / PostTC solution using TTG.
If the performance measures are also as expected, I suggest landing this patch.

Apr 25 2018, 5:20 PM

Apr 12 2018

shayan-najd accepted D4581: TTG for HsBinds and Data instances Plan B.

I looked through the changes, and all seems as expected.
General question: about the choice of what to consider as an extension (both new fields and new constructors) does it follow wip/GrowableAST?

Apr 12 2018, 7:29 AM

Nov 15 2017

shayan-najd added a comment to D4199: Remove HasSourceText and SourceTextX classes.

Similar to my question on the previous TTG patch: why NoSourceText and not noExt? (If this patch is not the place to fix these, I understand)

Nov 15 2017, 3:52 AM

Nov 14 2017

shayan-najd accepted D4186: TTG3 Combined Step 1 and 3 for Trees That Grow.

As expected.

Nov 14 2017, 3:36 PM
shayan-najd added a comment to D4186: TTG3 Combined Step 1 and 3 for Trees That Grow.

I have taken a quick look and added some quick comments.

Nov 14 2017, 11:50 AM

Nov 6 2017

shayan-najd added a comment to D4147: WIP on Doing a combined Step 1 and 3 for Trees That Grow.

Could you update https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow to reflect the current plan? It's out of date.

Nov 6 2017, 1:34 PM
shayan-najd added a comment to D4147: WIP on Doing a combined Step 1 and 3 for Trees That Grow.

I don't like the "NewT" nomenclature for the "extra" data constructor for data type T. Could it be XT?

Nov 6 2017, 11:30 AM

Nov 4 2017

shayan-najd accepted D4147: WIP on Doing a combined Step 1 and 3 for Trees That Grow.

I have taken a look. It all seems as expected and rather mechanical. There are some bits sticking out, those that Simon and Ben commented on, that I believe are some side-effects of splitting the big patch into multiple steps: the treatment of binders sticks out that can be treated in the next step and there are some bits that can be done when we update HsExpr as well.

Nov 4 2017, 11:45 AM

Sep 11 2017

shayan-najd commandeered D3935: [wip] Growable AST.
Sep 11 2017, 8:11 AM

Jun 1 2017

shayan-najd accepted D3609: Update hsSyn AST to use Trees that Grow.

I am not sure if I really qualify as a reviewer for this.
This is a minor, yet enabling step in practice.
All is as planned and described in the wiki, and if other reviewers are fine with it, there should be no problem in landing it as soon as possible.

Jun 1 2017, 5:54 PM