[LLVMdev] GSoC Proposal: Language bindings via. SWIG
Eric Jonas
jonas at MIT.EDU
Fri Mar 28 19:03:52 PDT 2008
To anyone on #llvm I'm sure I'm starting to sound like a broken record,
but I'd just like to point out that for python bindings at least, you
can quite easily manipulate the LLVM infrastructure via ctypes as a
shared object / dll -- no C required! Those of us interested in talking
to LLVM from Lisps, either Common Lisp (via CFFI) or a scheme like
PLT/Mzscheme, can also use the shared library interface. In fact, for
the Common Lisp case, this is the _only portable_ (cross-implementation)
way of talking to LLVM.
If anyone's interested in
Here is a one-off example of python using the shared library approach
and Gordon's excellent C interface (llvm-c):
http://pastebin.com/m5197c5e7
(the verbosity at the beginning is because of some linkage issues with
the llvm SOs)
...Eric
On Fri, 2008-03-28 at 18:52 -0700, Chandler Carruth wrote:
> If SWIG can be made to do a good job with Python/Ruby/Perl etc
> bindings around LLVM, I would be very interested in this. I'm
> personally interested in seeing both Python and Ruby bindings, and in
> having them be as easily maintained as possible. I think it would be
> interesting to see what the SWIG-style solution can do in this
> direction as opposed to the C-binding approach. If it results in
> better and/or lower maintenance/development cost bindings for specific
> target languages, I'm all for it.
>
> -Chandler
>
> On Fri, Mar 28, 2008 at 3:55 PM, Søren Bøg <sbg at froztek.com> wrote:
> Hi,
>
> I've been lurking around the LLVM project for a couple of
> months now.
> The two recent threads about python bindings for LLVM ([1] and
> [2]),
> combined with the fact that I am looking for at GSoC project
> at the
> moment. Lead to the idea of making the "public" parts of LLVM
> SWIG[3]-friendly and basing a set of python bindings on this.
>
> My reasoning for doing it this way, is that it allows reuse of
> the SWIG
> annotation for bindings to other languages such as Perl and
> Java among
> others.
>
> What I would like to do for the GSoC is:
> 1) Annotate the necessary parts of LLVM for processing by
> SWIG.
> 2) Use SWIG to generate a python wrapper around LLVM
> 3) Add a (hopefully) thin layer of python code to complete the
> bindings.
>
> Before submitting an application for this project. I would
> like to know
> if there is an interest in this, within the LLVM project, and
> possibly
> if this is already being worked on.
>
> Regards,
> Søren Bøg
>
> [1]
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-March/013318.html
> [2]
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-March/013171.html
> [3] http://www.swig.org/
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list