<div dir="ltr">In addition to the points made by James and David. I also would like to highlight that since JSON is not in the critical path of LLVM's codebase (i.e. it's mostly used in tools for LLVM's developers), if the current lib/Support/JSON.cpp is good enough in terms of performance and code quality, then I don't think we want to add unnecessary complexities from third-party libraries. Improvements and solutions should always be driven by critical problems, not the other way around.<div><br></div><div>Of course, if you have any concrete material to prove your points (e.g. performance comparison or maintainability study). We would love to see :-)</div><div><br></div><div>Thank you</div><div>-Min</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 18, 2020 at 8:31 PM Filippo Costa via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
I'm a new contributor. I'm considering the possibility of adopting a third-party JSON library instead of LLVM's homegrown `lib/Support/JSON.cpp`. The way I see it, this would bring several advantages as well as some downsides:<br>
<br>
 + Slimmer codebase.<br>
 + Benefit from upstream work and active contributions to another project.<br>
 + Possibly improved performance and API ergonomics.<br>
 - Likely compile times regression as many JSON libs are header-only.<br>
 - Risk of introducing bugs and breakages across LLVM.<br>
<br>
As far as I can tell, these are the most popular C++ JSON libs:<br>
<br>
 * <a href="https://github.com/nlohmann/json" rel="noreferrer" target="_blank">https://github.com/nlohmann/json</a><br>
 * <a href="https://github.com/open-source-parsers/jsoncpp" rel="noreferrer" target="_blank">https://github.com/open-source-parsers/jsoncpp</a><br>
 * <a href="https://github.com/Tencent/rapidjson" rel="noreferrer" target="_blank">https://github.com/Tencent/rapidjson</a><br>
<br>
I'm trying to understand if this is something I should work on and whether or not it would benefit the project.<br>
<br>
Filippo Costa<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Min-Yih Hsu</div><div>Ph.D Student in ICS Department, University of California, Irvine (UCI).<br></div></div></div>