Help on first ticket

Simon Peyton Jones simonpj at
Fri Jun 24 19:26:30 UTC 2016

Great.  No rush.  Yell if you need help.


From: Richard Fung [mailto:minesasecret at]
Sent: 24 June 2016 19:05
To: Simon Peyton Jones <simonpj at>
Cc: ghc-devs at
Subject: Re: Help on first ticket

Hi Simon, I am making progress but slowly (I only have time to work on this outside of work unfortunately).

If this needs to be done soon feel free to reassign it to someone else! Otherwise, while at times I feel like I'm over my head I would like to keep at it.

On Fri, Jun 24, 2016 at 4:20 AM, Simon Peyton Jones <simonpj at<mailto:simonpj at>> wrote:
Richard, did you get on ok?


|  -----Original Message-----
|  From: ghc-devs [mailto:ghc-devs-bounces at<mailto:ghc-devs-bounces at>] On Behalf Of Ben
|  Gamari
|  Sent: 04 June 2016 23:20
|  To: Richard Fung <minesasecret at<mailto:minesasecret at>>; ghc-devs at<mailto:ghc-devs at>
|  Subject: Re: Help on first ticket
|  Richard Fung <minesasecret at<mailto:minesasecret at>> 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
|  own.
|  >
|  > It's 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
|  to
|  > 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
|  files.
|  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.
|  Cheers,
|  - Ben
|  _______________________________________________
|  ghc-devs mailing list
|  ghc-devs at<mailto:ghc-devs at>
|  devs&<>%7c5ce47a744a1448f
|  ff5cb08d38cc666b8%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=V22RG%2
|  fAiO1lD5bLCR%2fXz2jv5QCzYAK5HUi6dDaAFQLA%3d

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list