[GHC] #15938: Hadrian's recompilation check is extremely slow
GHC
ghc-devs at haskell.org
Mon Dec 3 22:04:44 UTC 2018
#15938: Hadrian's recompilation check is extremely slow
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: alpmestan
Type: bug | Status: new
Priority: high | Milestone: 8.8.1
Component: Build System | Version: 8.6.2
(Hadrian) |
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by NeilMitchell):
I just added a feature to Shake HEAD when running in diagnostic mode
{{{-VVV}}} prints out the number of actions, rules and user rules:
{{{
% Number of actions = 0
% Number of builtin rules = 20 [OracleQ Generator,OracleQ
ModuleFiles,OracleQ
PackageConfigurationKey,FilesQ,FileQ,GetDirectoryFilesQ,OracleQ
WindowsPath,OracleQ DirectoryContents,OracleQ KeyValue,OracleQ
LookupInPath,OracleQ KeyValues,OracleQ
ContextDataKey,DoesDirectoryExistQ,AlwaysRerunQ,GetDirectoryContentsQ,OracleQ
(ArgsHash Context Builder),DoesFileExistQ,GetDirectoryDirsQ,OracleQ
PackageDataKey,GetEnvQ]
% Number of user rule types = 2
% Number of user rules = 36790
}}}
The number of user rules at 36K is way higher than Shake can deal with
nicely. I see one for every directory (e.g.
{{{_build/stage3/libraries/containers/build/cmm}}},
{{{_build/stage3/libraries/containers/build/c}}},
{{{_build/stage3/libraries/containers/build/s}}}) cross product with every
extension (e.g. {{{.l_o}}}, {{{.thr_debug_o}}}, {{{.thr_dyn_o}}}).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15938#comment:29>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list