Fwd: Help on first ticket

Richard Fung minesasecret at gmail.com
Tue Aug 9 15:34:09 UTC 2016


---------- Forwarded message ----------
From: Richard Fung <minesasecret at gmail.com>
Date: Tue, Aug 9, 2016 at 8:33 AM
Subject: Re: Help on first ticket
To: Simon Peyton Jones <simonpj at microsoft.com>


It's been a while but I've been able to spend more time on it recently made
some progress.

I believe I have an idea of what I need to fix in terms of the generating
of ModDetails/ModInfo. First off, please tell me if this is wrong.. it
seems like ModDetails is made in mkBootModDetailsTc and tidyProgram. In
tidyProgram there are several functions which take omit_prags, which I
think is automatically set to True on -O0. These are the things we'll have
to change because they are used in mkIface_ to generate the [IfaceDecl]
used to make ModInfo in addFingerprints.

Hopefully I'm understanding that part correctly. However, I'm not really
sure how to write a proper test case for this ticket. Also, I think I have
an idea of where to start looking for the place the inlining/unfolding
happens but pointers definitely wouldn't hurt.

Thanks and sorry this is taking me so long!

On Fri, Jun 24, 2016 at 12:26 PM, Simon Peyton Jones <simonpj at microsoft.com>
wrote:

> Great.  No rush.  Yell if you need help.
>
>
>
> Simon
>
>
>
> *From:* Richard Fung [mailto:minesasecret at gmail.com]
> *Sent:* 24 June 2016 19:05
> *To:* Simon Peyton Jones <simonpj at microsoft.com>
> *Cc:* ghc-devs at haskell.org
>
> *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 microsoft.com>
> wrote:
>
> Richard, did you get on ok?
>
> Simon
>
>
> |  -----Original Message-----
> |  From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Ben
> |  Gamari
> |  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
> |  own.
> |  >
> |  > 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
> |  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 haskell.org
> |  https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fmail.h
> |  askell.org
> <https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2faskell.org&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7ca1eb3c659f4a4e7b61e808d39c5a125c%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=2D8TJzAUIrAyMJCh3k8P0u07l2L267Jz5hzPHc56oR4%3d>
> %2fcgi-bin%2fmailman%2flistinfo%2fghc-
> |  devs&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com
> <https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2f40064d.mgd.microsoft.com&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7ca1eb3c659f4a4e7b61e808d39c5a125c%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=KIjOeLVN%2fHBrSQo4B%2fVQQRBMUyTS5ZThXLW0Q3%2b9iOQ%3d>
> %7c5ce47a744a1448f
> |  ff5cb08d38cc666b8%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=V22RG%2
> |  fAiO1lD5bLCR%2fXz2jv5QCzYAK5HUi6dDaAFQLA%3d
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20160809/81bc6ba5/attachment.html>


More information about the ghc-devs mailing list