Which is better to start with: HsSyn or Core? Intuition suggests this sort of thing could be very helpful for making zapping more reliable and ensuring its efficiency, but there may be better reasons to start with HsSyn.
2. If we're making intrusive changes to representations, would now be a sensible era to consider switching to a different variable representation (unbound, bound, abt, etc)?
I haven't looked in detail yet, but there seem to be good ideas. I have two questions:1. Which is better to start with: HsSyn or Core? Intuition suggests this sort of thing could be very helpful for making zapping more reliable and ensuring its efficiency, but there may be better reasons to start with HsSyn.2. If we're making intrusive changes to representations, would now be a sensible era to consider switching to a different variable representation (unbound, bound, abt, etc)?David FeuerWell-Typed, LLP[1] http://www.jucs.org/jucs_23_1/Folks-------- Original message --------From: Simon Peyton Jones via ghc-devs <ghc-devs@haskell.org>Date: 5/25/17 6:48 PM (GMT-05:00)To: Alan & Kim Zimmerman <alan.zimm@gmail.com>, ghc-devs@haskell.orgSubject: RE: Trees that Grow in the hsSyn AST
Do take a look at this:
· We propose to re-engineer HsSyn itself. This will touch a lot of code.
· But it’s very neat, and will bring big long-term advantages
· And we can do it a bit at a time
The wiki page https://ghc.haskell.org/trac/ghc/wiki/ has the details.ImplementingTreesThatGrow
It’s entirely an internal change, not a change to GHC’s specification, so it’s independent of the GHC proposals process. But I’d value the opinion of other GHC devs.
Alan has done a prototype first step, which worked out rather well. Rather than having
HsExpr Id
(which we all know means “HsExpr after the typechecker” but tha’s a bit inexplicit, we have
HsExpr GhcTc
meaning “HsExpr after GHC’s Tc pass”. In some ways this is quite superficial, but it unlocks the Trees That Grow machiney.
Please ask questions etc. Alan and Shayan can record the answers in the wiki. I’m inclined to go ahead with this, so yell soon if you disagree.
Simon
From: ghc-devs [mailto:ghc-devs-bounces@haskell.org ] On Behalf Of Alan & Kim Zimmerman
Sent: 24 May 2017 22:52
To: ghc-devs@haskell.org
Subject: Trees that Grow in the hsSyn AST
Hi all
You may be aware that Shayan Najd presented the paper "Trees that Grow"[1] at HIW last year.
Based on the following mandate
> As in my previous email to Shayan (attached). Wiki page, describe goals, design,
> approach. Point to prototype implementation. Seek comments. You can say that
>I am supportive!
>
> Simon
We have set up a Wiki page at [2] describing a prototype implementation of the first stage of this for the hsSyn AST, which is to change the polymorphic variable from one of RdrName / Name / Id to an index type. This is presented as a fabricator diff at [3].
Please take a look and provide feedback.
Regards
Alantrees_that_grow/jucs_23_01_ <https://0042_0062_najd.pdf na01.safelinks.protection. >outlook.com/?url=http%3A%2F% 2Fwww.jucs.org%2Fjucs_23_1% 2Ftrees_that_grow%2Fjucs_23_ 01_0042_0062_najd.pdf&data=02% 7C01%7Csimonpj%40microsoft. com% 7C5faccc0d2d534c42c23e08d4a2ef 36d8% 7C72f988bf86f141af91ab2d7cd011 db47%7C1%7C1% 7C636312595690311243&sdata= fbLJdJqSyXgacCEJwVH880aLsHDgDY 46hrc%2FtDXv4VQ%3D&reserved=0
[2] https://ghc.haskell.org/trac/ghc/wiki/ ImplementingTreesThatGrow
[3] https://phabricator.haskell.org/D3609
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs