hadrian: eliminate most of the remaining big rule enumerations

Authored by alpmestan on Dec 7 2018, 10:19 PM.

Description

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 Trac #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: Trac #15938

Differential Revision: https://phabricator.haskell.org/D5422

Details

Committed
bgamariDec 7 2018, 10:19 PM
Reviewer
snowleopard
Differential Revision
D5422: hadrian: eliminate most of the remaining big rule enumerations
Parents
rGHCcb882fc993b4: Require 'libdw' for '--enable-dwarf-unwind'
Branches
Unknown
Tags
Unknown