How to highlighting subexpressions in dumped core?

Simon Peyton Jones simonpj at microsoft.com
Wed Mar 7 12:14:42 UTC 2018


I'm not keen on adding more Tick complexity -- it's a bit out of hand already, and all transformations must "do the right thing".

AnnExpr adds an annotation at every node.  You could, I guess use that to annotate -- but then you'd need a pretty printer for it so you'd end up with duplication.

Worth looking at #8809 and related tickets

S

| -----Original Message-----
| From: Glasgow-haskell-users [mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Joachim Breitner
| Sent: 06 March 2018 15:27
| To: GHC users <glasgow-haskell-users at haskell.org>
| Subject: How to highlighting subexpressions in dumped core?
| 
| Hi,
| 
| one of my plugins dumps core output to the user, and this core output
| contains “interesting subexpressions”. I would like to highlight them
| (for example, with `bold :: SDoc -> SDoc`).
| 
| As far as I can see, I have these options:
| 
|  * I copy all, or most of PprCore, and extend ppr_expr to look for the
|    subexpressions that I care about.
| 
|    Obviously not nice, because of a code copy.
| 
|  * I extend GHC to support that. One way would be to add a new
|    constructor to `data Tickish id = … | Highlight` so that
|    I can wrap the interesting subexpressions in
|    `Tick Highlight e`.
| 
|    That’s a bit better, and could even be useful in GHC (e.g. a linter
|    error could highlight the lint error location), but it’d mean
|    waiting for new compiler versions until I can make use of that,
|    and it is still limited to subexpressions – highlighting a binder
|    would require yet another support.
| 
|  * Could we extend SDoc with an operation
| 
|       highlightIn :: SDoc -> SDoc -> SDoc
| 
|    or
| 
|       highlightIn :: Doc -> Doc -> Doc
| 
|    where `highlightIn doc1 doc2` is like doc2, but any subdocument that
|    is “ismorphic to doc1” (for whatever that means) gets highlighted?
| 
| 
| Are there other options that I might not see right now?
| 
| 
| 
| Cheers,
| Joachim
| 
| --
| Joachim Breitner
|   mail at joachim-breitner.de
| 
| https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach
| im-
| breitner.de%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Cd3680548aafa49c82
| 7e708d58376c5e7%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636559468531
| 359492%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTi
| I6Ik1haWwifQ%3D%3D%7C-
| 2&sdata=VodWxNvTtF4Asflj%2FeC7%2FbQy0FExq2zq53hvtWoF98s%3D&reserved=0


More information about the Glasgow-haskell-users mailing list