Module B0_trace.Compilation_database
JSON compilation database.
Output build operation spawns in JSON compilation database format (see also here).
The format is a bit underpowered (see also the discusion in the merlin issue tracker here) and doesn't exactly match B0's build model here are a few notes on the treatment:
- The
filefield. B0's operations do not identify a "main source" processed by a step. For now we use the first element ofOp.reads TODO maybe we should spell out this convention inMemo. - The
outputfield. B0's operations support multiple writes. If multiple files are written we repeat the command for each write. We add an numberedidfield to indicate that this is the same command. - No specification of the environment, we add it under an
envkey as an array of strings. - We never generate
command, we only usearguments.
JSON compilation database
val of_ops : B00.Op.t list -> B0_web.Jsong.t