Skip to content

ghc -M doesn't handle addDependentFile or #included files

ghc -M doesn't emit dependencies specified by TH's addDependentFile, not does it emit dependencies for #included files.

The former is quite hard to do, because it requires compiling the code: we only have the information about addDependentFile calls after compilation. So in order to fix this, ghc -c would have to drop some information somewhere for the build system to pick up.

In theory we should only have to preprocess files to get the list of #included files, and ghc -M already preprocesses all the files. However, currently #included files are picked up by the lexer during parsing, so fixing this isn't trivial.

Trac metadata
Trac field Value
Version 7.6.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information