[llvm-dev] RFC: Adding a JSON library to LLVM Support

Vedant Kumar via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 27 15:34:10 PDT 2017


> On Oct 27, 2017, at 12:53 PM, Sam McCall via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> We don't have a dedicated JSON library in the LLVM tree, I'd like to add one. The pressing need is for clangd, but we have other tools that read/write JSON too.
> 
> I'm proposing we write a new one, rather than importing a third-party library (licensing/integration reasons), on or extending YamlParser/YamlIO (usability/flexibility). I lean towards a design that parses a full DOM at once, and provides literal-like syntax for composing documents.
> 
> I've written a document laying out the reasons for taking this path, and my proposal for a design (with links to a prototype)
> https://docs.google.com/document/d/1OEF9IauWwNuSigZzvvbjc1cVS1uGHRyGTXaoy3DjqM4/edit <https://docs.google.com/document/d/1OEF9IauWwNuSigZzvvbjc1cVS1uGHRyGTXaoy3DjqM4/edit>
> (Comments are enabled, but high-level discussion probably belongs on the list instead.)
> 
> What do you think? I'm particularly interested in which parts of LLVM produce/consume JSON (or might want to), and what they need. I'm mostly familiar with the stuff in clang-tools-extra.

llvm-cov exports coverage data to JSON. The exporter isn't a big maintenance burden, but it would be nice not to 'printf' the output, and to instead have assurance that something else will properly structure/escape the data. Concretely: we could get rid of some tests that check that the JSON is structurally valid, and only keep tests that check that the output is complete.

vedant

> 
> Cheers, Sam
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171027/51b521cc/attachment.html>


More information about the llvm-dev mailing list