rust-lang/rfcs

Create safe LLVM bindings

steveklabnik opened this issue ยท 7 comments

Issue by brson
Saturday Aug 03, 2013 at 23:15 GMT

For earlier discussion, see rust-lang/rust#8274

This issue was labelled with: A-libs, A-llvm, E-tedious in the Rust repository


rustc's LLVM bindings are a bit of a hodgepodge. Some abstractions have been added on top of the C bindings, but not consistently. It would be nice to do some serious cleanup here so that rustc is using only safe, high-level bindings.

I've started work on safe LLVM bindings recently [1]. The work is in the very beginning (only small part of API is covered). My bindigs use llvm-sys [2] as unsafe bindings (not ones from rustc). Comments and pull requests are welcome. When something lacks in LLVM C API, I add wrappers for it and I have plans to push these wrappers upstream.

[1] https://github.com/jauhien/iron-llvm
[2] https://bitbucket.org/tari/llvm-sys.rs

There are also some other projects that are doing this:

Hywan commented

Any news on this topic?

I am working on some rust ideomatic LLVM bindings right now: https://github.com/vaartis/llvm-rs

I am working on Inkwell which is a safe wrapper over llvm-sys. It's still early on, but I've got some neat ideas for providing a more pleasant and type-safe interface. Contributors are welcome :)

Any progress here? ๐Ÿ˜…

Closing in favor of the tracking issue rust-lang/rust#54892.