Help on first ticket
Simon Peyton Jones
simonpj at microsoft.com
Fri Jun 24 11:20:15 UTC 2016
Richard, did you get on ok?
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Ben
| Sent: 04 June 2016 23:20
| To: Richard Fung <minesasecret at gmail.com>; ghc-devs at haskell.org
| Subject: Re: Help on first ticket
| Richard Fung <minesasecret at gmail.com> writes:
| > Hello! I apologize if this isn't the right place to ask; if it isn't
| > please steer me in the right direction.
| Hi Richard!
| > Would anyone be willing to advise me on my first ticket? I've been
| > trying to work on it on and off but haven't made much progress on my
| > It's ticket #9370: https://ghc.haskell.org/trac/ghc/ticket/9370
| Great, I'm happy to hear that someone has picked this one up. I think
| it is a nice choice for a self-contained newcomers project.
| > I think I understand the issue conceptually but I don't know where
| > look for the code that needs to be changed..
| I don't know where the code responsible for this is off the top of my
| head, however I can provide some pointers.
| So the unfoldings you are looking to preserve come from interface
| The machinery for all of this is in compiler/iface. IfaceSyn.hs is of
| particular interest and there you will find the definition of
| IfaceUnfolding, which is the unfolding representation which is stored
| in the interface file. Unfoldings live inside of IdInfo values, which
| hold various miscellaneous information which we need to preserve about
| a particular Id (identifier).
| There is a somewhat useful comment regarding how IdInfo is treated
| above the definition of IfaceIdInfo in IfaceSyn. In particular it
| seems that interface files for modules compiled with -O0 will have
| their IdInfo fields set to NoInfo. It's not clear what happens when an
| interface file is read. However, grepping for NoInfo reveals a use-
| site in TcIface.tcIdInfo which looks interesting (in particular the
| ignore_prags guard). I think this should be enough to get you going on
| the interface file part of this.
| The other part of this ticket is deciding whether to use an unfolding
| when considering whether to inline. This will be done in the
| simplifier (compiler/simplCore). Grepping for "inline" and "unfold" in
| simplCore/Simplify.hs (as well as reading the notes in that file) will
| likely be enough to get you started.
| Do let me know if you still feel lost or want to discuss this further.
| I look forward to hearing how it goes.
| - Ben
| ghc-devs mailing list
| ghc-devs at haskell.org
More information about the ghc-devs