Module B0_trace.Compilation_database

module Compilation_database: sig .. end
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:

  1. The file field. B0's operations do not identify a "main source" processed by a step. For now we use the first element of Op.reads TODO maybe we should spell out this convention in Memo.
  2. The output field. B0's operations support multiple writes. If multiple files are written we repeat the command for each write. We add an numbered id field to indicate that this is the same command.
  3. No specification of the environment, we add it under an env key as an array of strings.
  4. We never generate command, we only use arguments.



JSON compilation database


val of_ops : B00.Op.t list -> B0_web.Jsong.t