• Sylvain Henry's avatar
    Add GHC-API logging hooks · 58655b9d
    Sylvain Henry authored
    * Add 'dumpAction' hook to DynFlags.
    It allows GHC API users to catch dumped intermediate codes and
    information. The format of the dump (Core, Stg, raw text, etc.) is now
    reported allowing easier automatic handling.
    * Add 'traceAction' hook to DynFlags.
    Some dumps go through the trace mechanism (for instance unfoldings that
    have been considered for inlining). This is problematic because:
    1) dumps aren't written into files even with -ddump-to-file on
    2) dumps are written on stdout even with GHC API
    3) in this specific case, dumping depends on unsafe globally stored
    DynFlags which is bad for GHC API users
    We introduce 'traceAction' hook which allows GHC API to catch those
    traces and to avoid using globally stored DynFlags.
    * Avoid dumping empty logs via dumpAction/traceAction (but still write
    empty files to keep the existing behavior)
HscMain.hs 79.3 KB