<div dir="ltr">A C API (the code is not written in C or C++, and C is kind of the Esperanto of programming). Preferably a ABI-stable C API, as no typechecking is going to be done at language boundary. That being said, I would put the ABI condition as a *should* rather than as a *must*.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-22 2:42 GMT-07:00 David Chisnall <span dir="ltr"><<a href="mailto:David.Chisnall@cl.cam.ac.uk" target="_blank">David.Chisnall@cl.cam.ac.uk</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 22 Oct 2015, at 02:52, deadal nix via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Back on point, the importants things for me to do through the C API are :<br>
>  - Write IR, including debug infos and other metadata (it is mostly good, some IR specificities are not covered, like ordered loads/stores, but these are edges cases that ca be added. I can prepare a patch if people want these).<br>
>  - Read IR, so I can do transformations.<br>
>  - Codegen to object files<br>
>  - JIT (using MCJIT is fine, Orca would be better but making a good C api for it may prove challenging).<br>
<br>
</span>Just to clarify, are your requirements for:<br>
<br>
- A C API?<br>
- A stable C API?<br>
- An ABI-stable C API?<br>
- An API?<br>
- A stable API?<br>
- An ABI-stable API?<br>
<br>
For most of these things, I’d be happy with a stable C++ API (ABI-stable within major releases, recompile - but nothing else - needed between), which could potentially be wrapped in a machine-generated C API for bindings in other languages.<br>
<span class="HOEnZb"><font color="#888888"><br>
David<br>
<br>
</font></span></blockquote></div><br></div>