<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 21, 2020, 13:16 Lang Hames <<a href="mailto:lhames@gmail.com">lhames@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi All,<div><br></div><div>Ok -- sounds like there's enough interest to keep going with these status updates. You can expect update #2 in a couple of days. :)</div></div></div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Yay!</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">One thing that will be useful (and was done to some extent with ORCv1) is to expose ORCv2's API via C-compatible bindings ...</blockquote><div><br></div><div></div><div>That's a really good point. And timely: We need an ORCv2 C API before we can kill off ORCv1. We should use <a href="http://llvm.org/PR31103" target="_blank" rel="noreferrer">http://llvm.org/PR31103</a> to track this (hopefully we can finally close it). If you're interested in this work please CC yourself on that bug.</div></div></div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Added myself.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>There are two approaches we can take to C bindings for ORCv2. The first one I'll call "wrap LLJIT", and it's pretty much what it sounds like: We provide an API for initializing an LLJITBuilder, and accessing methods in the resulting LLJIT object. This would provide a similar level of functionality to the ExecutionEngine bindings, and also enable basic lazy compilation. The second approach would be to wrap the lower level APIs (ExecutionSession, MaterializationUnit, etc.) to allow clients to build their own JIT instances in C. These approaches aren't mutually exclusive, and the best way forward is probably to start with the first approach, then add elements from the second over time.</div><div><br></div><div>Any volunteers to work on this? I need to finish the new initializer work before I can tackle this, so I might be a while yet.</div></div></div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Sorry, I'm currently working on the frontend for our shader compiler, I won't get to the parts that need LLVM for at least a month or so. However, once I'm there, I can help out some with creating the C bindings.</div><div dir="auto"><br></div><div dir="auto">Jacob</div></div>