[commit: ghc] master: hadrian: eliminate most of the remaining big rule enumerations (665f8b0)

git at git.haskell.org git at git.haskell.org
Sat Dec 8 05:04:58 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/665f8b0c778b3a5dac4696f81da0cea88b101ea9/ghc

>---------------------------------------------------------------

commit 665f8b0c778b3a5dac4696f81da0cea88b101ea9
Author: Alp Mestanogullari <alpmestan at gmail.com>
Date:   Fri Dec 7 23:19:36 2018 -0500

    hadrian: eliminate most of the remaining big rule enumerations
    
    Following what was done to Rules.Library some time ago and to
    Rules.Compile recently (D5412), this patch moves more rules away from
    the "enumerate a lot of contexts and generate one rule for each" style
    and instead uses the "parse data from file path to recover context"
    approach. In fact, the only rules left to convert seem to be the ones
    from Rules.Generate.
    
    This effectively decreases the pauses described in #15938 further as
    well as the amount of allocations and GC that we do, unsurprisingly.
    Nowhere as drastically as D5412, though.
    
    Test Plan: perform full build and generate docs
    
    Reviewers: snowleopard, bgamari
    
    Reviewed By: snowleopard
    
    Subscribers: rwbarton, carter
    
    GHC Trac Issues: #15938
    
    Differential Revision: https://phabricator.haskell.org/D5422


>---------------------------------------------------------------

665f8b0c778b3a5dac4696f81da0cea88b101ea9
 hadrian/src/Rules.hs               |  19 ++-----
 hadrian/src/Rules/Dependencies.hs  |  39 +++++++++++--
 hadrian/src/Rules/Documentation.hs |  49 +++++++++++++---
 hadrian/src/Rules/Program.hs       | 111 ++++++++++++++++++++-----------------
 hadrian/src/Rules/Register.hs      |  90 +++++++++++++++++++++---------
 hadrian/src/Settings/Default.hs    |   9 ++-
 6 files changed, 213 insertions(+), 104 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 665f8b0c778b3a5dac4696f81da0cea88b101ea9


More information about the ghc-commits mailing list