---------- Forwarded message ---------- From: Richard Fung <[email protected]> Date: Tue, Aug 9, 2016 at 8:33 AM Subject: Re: Help on first ticket To: Simon Peyton Jones <[email protected]>
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 <[email protected]> wrote: > Great. No rush. Yell if you need help. > > > > Simon > > > > *From:* Richard Fung [mailto:[email protected]] > *Sent:* 24 June 2016 19:05 > *To:* Simon Peyton Jones <[email protected]> > *Cc:* [email protected] > > *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 <[email protected]> > wrote: > > Richard, did you get on ok? > > Simon > > > | -----Original Message----- > | From: ghc-devs [mailto:[email protected]] On Behalf Of Ben > | Gamari > | Sent: 04 June 2016 23:20 > | To: Richard Fung <[email protected]>; [email protected] > | Subject: Re: Help on first ticket > | > | Richard Fung <[email protected]> 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 > | [email protected] > | 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 > > >
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
