Hi all, I would like to have better C API for LLVM JIT, as I have plans to use it from Rust. I've sent already a patch [1] that adds possibility to create custom memory managers based on SectionMemoryManager using C API. What I would like to have now is a possibility to access ORC through C API somehow. The problem here is that ORC uses templates heavily. So I'm looking for any suggestions on how to better wrap its functionality for C. Also I would thank everybody who'll review my already sent patch. [1] http://reviews.llvm.org/D12607 -- Jauhien -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150906/7bef5316/attachment.sig>
Hey Jauhien, I'd be happy to review (as a fellow Rust dev). I've already added a few comments. Richard Diamond On Sun, Sep 6, 2015 at 3:52 PM, Jauhien Piatlicki via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi all, > > I would like to have better C API for LLVM JIT, as I have plans to use > it from Rust. I've sent already a patch [1] that adds possibility to > create custom memory managers based on SectionMemoryManager using C API. > > What I would like to have now is a possibility to access ORC through C > API somehow. The problem here is that ORC uses templates heavily. So I'm > looking for any suggestions on how to better wrap its functionality for C. > > Also I would thank everybody who'll review my already sent patch. > > [1] http://reviews.llvm.org/D12607 > > -- > Jauhien > > > _______________________________________________ > 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/20150906/2e50f0e8/attachment.html>
Hi Jauhien, A few people have requested a C API for ORC. I don't think ORC's ready for a stable C API, but I'm not opposed to providing C bindings that will probably be reasonably stable in practice (though with no guarantees). I've actually already knocked up some trivial prototype bindings for Hayden Livingston that could serve as a base (see attached). The next question is where unstable bindings should live. Juergen, Eric, anyone else who wants to weigh in: I looked back over the C API thread, but I don't think we settled on a home for this kind of thing. Any thoughts? I could see either introducing a new include directory (something along the lines of include/llvm/llvm-c-bindings) or a new c-bindings project on llvm.org. The former would put all LLVM developers on the hook for maintaining the bindings, the latter would leave maintenance to users of the bindings project, and any volunteers. I prefer the second option: I don't think core developers should be on the hook for maintaining unstable bindings - that kind of special treatment should be reserved for the stable API. Cheers, Lang. On Sun, Sep 6, 2015 at 1:52 PM, Jauhien Piatlicki via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi all, > > I would like to have better C API for LLVM JIT, as I have plans to use > it from Rust. I've sent already a patch [1] that adds possibility to > create custom memory managers based on SectionMemoryManager using C API. > > What I would like to have now is a possibility to access ORC through C > API somehow. The problem here is that ORC uses templates heavily. So I'm > looking for any suggestions on how to better wrap its functionality for C. > > Also I would thank everybody who'll review my already sent patch. > > [1] http://reviews.llvm.org/D12607 > > -- > Jauhien > > > _______________________________________________ > 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/20150907/c22ab50d/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: OrcCBindings.tgz Type: application/x-gzip Size: 4105 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150907/c22ab50d/attachment.bin>
Lang, aren't you going to be the major (only?) player when it comes to Orc APIs, if you're not opposed to it having them in the C bindings proper will certainly help. That's my vote, I understand it is different from the previous cases but the API surface area here is relatively small. On Mon, Sep 7, 2015 at 5:37 PM, Lang Hames <lhames at gmail.com> wrote:> Hi Jauhien, > > A few people have requested a C API for ORC. I don't think ORC's ready for a > stable C API, but I'm not opposed to providing C bindings that will probably > be reasonably stable in practice (though with no guarantees). I've actually > already knocked up some trivial prototype bindings for Hayden Livingston > that could serve as a base (see attached). > > The next question is where unstable bindings should live. Juergen, Eric, > anyone else who wants to weigh in: I looked back over the C API thread, but > I don't think we settled on a home for this kind of thing. Any thoughts? I > could see either introducing a new include directory (something along the > lines of include/llvm/llvm-c-bindings) or a new c-bindings project on > llvm.org. The former would put all LLVM developers on the hook for > maintaining the bindings, the latter would leave maintenance to users of the > bindings project, and any volunteers. I prefer the second option: I don't > think core developers should be on the hook for maintaining unstable > bindings - that kind of special treatment should be reserved for the stable > API. > > Cheers, > Lang. > > > On Sun, Sep 6, 2015 at 1:52 PM, Jauhien Piatlicki via llvm-dev > <llvm-dev at lists.llvm.org> wrote: >> >> Hi all, >> >> I would like to have better C API for LLVM JIT, as I have plans to use >> it from Rust. I've sent already a patch [1] that adds possibility to >> create custom memory managers based on SectionMemoryManager using C API. >> >> What I would like to have now is a possibility to access ORC through C >> API somehow. The problem here is that ORC uses templates heavily. So I'm >> looking for any suggestions on how to better wrap its functionality for C. >> >> Also I would thank everybody who'll review my already sent patch. >> >> [1] http://reviews.llvm.org/D12607 >> >> -- >> Jauhien >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >
On Mon, Sep 7, 2015 at 5:37 PM Lang Hames <lhames at gmail.com> wrote:> Hi Jauhien, > > A few people have requested a C API for ORC. I don't think ORC's ready for > a stable C API, but I'm not opposed to providing C bindings that will > probably be reasonably stable in practice (though with no guarantees). I've > actually already knocked up some trivial prototype bindings for Hayden > Livingston that could serve as a base (see attached). > > The next question is where unstable bindings should live. Juergen, Eric, > anyone else who wants to weigh in: I looked back over the C API thread, but > I don't think we settled on a home for this kind of thing. Any thoughts? I > could see either introducing a new include directory (something along the > lines of include/llvm/llvm-c-bindings) or a new c-bindings project on > llvm.org. The former would put all LLVM developers on the hook for > maintaining the bindings, the latter would leave maintenance to users of > the bindings project, and any volunteers. I prefer the second option: I > don't think core developers should be on the hook for maintaining unstable > bindings - that kind of special treatment should be reserved for the stable > API. > >We hadn't figured out a location. I was the one that wanted to move stable to a new directory and Jim wanted to move unstable. I think either will work ultimately, just a matter of personal preference in the "when do we count restart". That said, as long as you put a comment at the top saying that the ORC bindings are unstable and put them in a new file I'm not opposed to just putting them in llvm-c for now. I also don't think I'm going to win the argument of "stable moves" so if you'd like to make a new unstable directory I'm perfectly happy with that direction too. Thoughts? -eric> Cheers, > Lang. > > > On Sun, Sep 6, 2015 at 1:52 PM, Jauhien Piatlicki via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi all, >> >> I would like to have better C API for LLVM JIT, as I have plans to use >> it from Rust. I've sent already a patch [1] that adds possibility to >> create custom memory managers based on SectionMemoryManager using C API. >> >> What I would like to have now is a possibility to access ORC through C >> API somehow. The problem here is that ORC uses templates heavily. So I'm >> looking for any suggestions on how to better wrap its functionality for C. >> >> Also I would thank everybody who'll review my already sent patch. >> >> [1] http://reviews.llvm.org/D12607 >> >> -- >> Jauhien >> >> >> _______________________________________________ >> 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/20150908/cae0fe2c/attachment.html>