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%2fcgi-bin%2fmailman%2flistinfo%2fghc- | devs&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%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
