3 个版本
使用旧的 Rust 2015
0.0.3 | 2017年4月3日 |
---|---|
0.0.2 | 2015年1月20日 |
0.0.1 | 2015年1月19日 |
#18 in #intrinsics
在 2 个crate中使用
2.5MB
17K SLoC
LLVMint
直接 Rust 绑定到(基本上)所有 LLVM 内置函数。此库对您在不受支持的平台上使用内置函数的保护很少,并且通常不执行任何错误检查。
此库中的绑定是从 LLVM 源代码自动生成的,因此使用它导致的 LLVM 崩溃可能是由于误用或不充分的 target-cpu/target-feature 指令,而不是库本身(尽管当然也可能存在库本身的错误)。
这是高度实验性的,目前仅固定到我使用的 LLVM 的任何版本。如果 rustc 开始坚持使用 LLVM 的发布版本,并且当我更满意实验时,我将更认真地研究更好的版本控制。
重新生成
重新创建内置函数表 allintrinsics.td
# directory containing a rust-lang/rust checkout
RUST=~/rust
cat ${RUST}/src/llvm/include/llvm/IR/Intrinsics*.td > allintrinsics.td
重新创建库文件
cd generator
cargo build --release
./target/release/generator < ../allintrinsics.td > ../src/lib.rs
为什么不使用构建脚本?部分原因是我还没有写一个,部分原因是我不想要求用户访问从 LLVM 获取的必要信息,因此将输出检查到 VC 中很容易。