
#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