Better perf for haddock.base, haddock.Cabal (f4aa998)

Simon Peyton Jones simonpj at microsoft.com
Thu Feb 16 23:33:23 UTC 2017


| clearly points to this commit:
| 
|     commit fc9d152b058f21ab03986ea722d0c94688b9969f
|     Author: Simon Peyton Jones <    simonpj at microsoft.com    >
|     Date:   Thu Feb 16 09:41:55 2017 +0000
| 
|         Comments and tiny refactor only

Crumbs!  You are right!

I have NO IDEA why this effect is so large.  I fixed the bug in occAnalApp
when I was auditing your changes, but I couldn't think of a situation in which
I would matter, and then I forgot all about it.

It's hard to add a comment.... both the call to mkOneOcc and isExpandableApp were designed for the number of args the function is *syntactically* applied to.  But the argOneShots needs how many it is *semantically* applied to, once.

But is_exp only matters if isRhsEnv is true; and in that case I think occ_one_shots is empty (see rhsCtxt); so I doubt the change to is_exp makes any difference at all.

It's a mystery.  Ideally one would find out why.  But life is short, and this is in the right direction.

I've added a note to the ticket, FWIW

Simon

| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Joachim
| Breitner
| Sent: 16 February 2017 20:41
| To: ghc-devs at haskell.org
| Subject: Re: Better perf for haddock.base, haddock.Cabal (f4aa998)
| 
| Hi,
| 
| Am Donnerstag, den 16.02.2017, 17:46 +0000 schrieb git at git.haskell.org:
| > commit f4aa9984790332a908e8b1321d00a839fb42c3ea
| > Author: Simon Peyton Jones <simonpj at microsoft.com>
| > Date:   Thu Feb 16 17:44:58 2017 +0000
| >
| >     Better perf for haddock.base, haddock.Cabal
| >
| >     I think this is due to
| >       commit 6bab649bde653f13c15eba30d5007bef4a9a9d3a
| >       Author: Simon Peyton Jones <simonpj at microsoft.com>
| >       Date:   Thu Feb 16 09:42:32 2017 +0000
| >
| >           Improve checking of joins in Core Lint
| >
| >     Improvement is around 5%.
| 
| no,
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fperf.has
| kell.org%2Fghc%2F%23revision%2Ffc9d152b058f21ab03986ea722d0c94688b9969f&d
| ata=02%7C01%7Csimonpj%40microsoft.com%7Caacdd3c960ea4e56ea6c08d456ac2c5d%
| 7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636228744888337816&sdata=vZW
| XXwyBzBcUMliVMtS9vUFmlQuBXOhciC9uzSm7aW0%3D&reserved=0
| clearly points to this commit:
| 
|     commit fc9d152b058f21ab03986ea722d0c94688b9969f
|     Author: Simon Peyton Jones <    simonpj at microsoft.com    >
|     Date:   Thu Feb 16 09:41:55 2017 +0000
| 
|         Comments and tiny refactor only
| 
|     Which is not just a refactoring. If you look at the diff, e.g. at
| 
| https://phabricator.haskell.org/rGHCfc9d152b058f21ab03986ea722d0c94688b99
| 69f
| you will see that after your change, the “one shot arguments according to
| the environment” are no longer counted towards n_val_args in fun_uds and
| is_exp. And it seems they should not! Is that something you understand
| and can explain in a note?
| 
| I guess https://phabricator.haskell.org/D3089 was merged a bit
| prematurely in that respect.¹
| 
| Greetings,
| Joachim
| 
| 
| ¹ There is a workflow problem with Phab’s DR:
|   * A creates a new DR.
|   * B requests changes. DR now in state “revision needed”
|   * C requests changes. DR still in state “revision needed”
|   * A makes changes. DR now in state “needs review”
|   * C looks at the changes and finds his concern addressed
|     and accepts the revision. DR now in state “accepted”.
|   * G comes along, sees a DR in state “accepted” and lands it.
|   Problem: B did not have the chance to check the new revision.
| 
| 
| 
| 
| 
| 
| --
| Joachim “nomeata” Breitner
|   mail at joachim-breitner.de| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.joac
| him-
| breitner.de%2F&data=02%7C01%7Csimonpj%40microsoft.com%7Caacdd3c960ea4e56e
| a6c08d456ac2c5d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636228744888
| 337816&sdata=vsGnQwAfqS%2B0hfL0ZLwnDy87eNSBeLltJQXqPOadnXo%3D&reserved=0
|   XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
|   Debian Developer: nomeata at debian.org


More information about the ghc-devs mailing list