[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-dev
Subject:    [cfe-dev] LLVMSharp and ClangSharp - C# .NET/Mono Bindings for LLVM and Clang
From:       Mukul Sabharwal <mjsabby () gmail ! com>
Date:       2015-02-23 18:54:01
Message-ID: CAC6Eoordgf1zM8KbyUzgE__a427MCuOgJ4uyKwrBJPs4dto+zw () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


LLVMSharp (http://www.llvmsharp.org) and ClangSharp (
http://www.clangsharp.org) are type-safe .NET/Mono bindings for LLVM and
Clang generated using their respective C header files.

The libraries require LLVM and Clang built as shared libraries, and the C#
side Platform Invokes into them.

LLVMSharp is used to demonstrate the Kaleidoscope tutorial in C# (currently
Ch3, 4, 5) :

https://github.com/mjsabby/LLVMSharp/tree/master/KaleidoscopeTutorial

ClangSharpPInvokeGenerator is the mechanism used to generate these bindings
and is a demo of LibClang being driven in C#:

https://github.com/mjsabby/ClangSharp/tree/master/ClangSharpPInvokeGenerator

I'd also like to take this opportunity to ask if the community would be
interested in putting these bindings alongside the C and Python bindings so
that build bots and other integration systems can update these bindings
automatically as people add C APIs to LLVM or Clang. This would require the
build to take a dependency on Mono, as it stands today, but I could easily
move the PInvoke generation to use the C API directly.

Also, gladly taking PRs. Some areas needing love: Kaleidoscope chapters
(new or improve existing) and generally on improving the robustness of the
PInvokeGenerator.

Mukul

[Attachment #5 (text/html)]

<div dir="ltr"><div>LLVMSharp (<a \
href="http://www.llvmsharp.org">http://www.llvmsharp.org</a>) and ClangSharp (<a \
href="http://www.clangsharp.org">http://www.clangsharp.org</a>) are type-safe \
.NET/Mono bindings for LLVM and Clang generated using their respective C header \
files.<br></div><div><br></div><div>The libraries require LLVM and Clang built as \
shared libraries, and the C# side Platform Invokes into \
them.<br></div><div><br></div><div>LLVMSharp is used to demonstrate the Kaleidoscope \
tutorial in C# (currently Ch3, 4, 5) :</div><div><br></div><div><a \
href="https://github.com/mjsabby/LLVMSharp/tree/master/KaleidoscopeTutorial">https://g \
ithub.com/mjsabby/LLVMSharp/tree/master/KaleidoscopeTutorial</a></div><div><br></div><div>ClangSharpPInvokeGenerator \
is the mechanism used to generate these bindings and is a demo of LibClang being \
driven in C#:</div><div><br></div><div><a \
href="https://github.com/mjsabby/ClangSharp/tree/master/ClangSharpPInvokeGenerator">ht \
tps://github.com/mjsabby/ClangSharp/tree/master/ClangSharpPInvokeGenerator</a></div><div><br></div><div>I&#39;d \
also like to take this opportunity to ask if the community would be interested in \
putting these bindings alongside the C and Python bindings so that build bots and \
other integration systems can update these bindings automatically as people add C \
APIs to LLVM or Clang. This would require the build to take a dependency on Mono, as \
it stands today, but I could easily move the PInvoke generation to use the C API \
directly.</div><div><br></div><div>Also, gladly taking PRs. Some areas needing love: \
Kaleidoscope chapters (new or improve existing) and generally on improving the \
robustness of the PInvokeGenerator.</div><div><br></div><div>Mukul</div></div>



_______________________________________________
cfe-dev mailing list
cfe-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic