[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