4 个版本
使用旧的 Rust 2015
0.1.3 | 2017年7月2日 |
---|---|
0.1.2 | 2017年6月25日 |
0.1.1 | 2016年12月21日 |
0.1.0 | 2016年12月20日 |
#436 在 编程语言
每月 32 次下载
在 hllvm 中使用
51KB
1K SLoC
LLVM C FFI 库
约定
布局
项目试图紧密遵循 LLVM C++ 头文件结构。
如果有上游 llvm/IR/Value.h
头文件,我们将在以下文件中定义
ir/value.cpp
- 实际的 FFI 函数定义。ir/value.rs
- 该文件的 FFI 声明。
每个 .cpp
文件应该有一个相关的 .rs
文件。
所有在 Rust 中声明的 FFI 函数都应导入到 crate 根目录。
代码
所有函数都将以前缀 LLVMRust
开头,并将以 C ABI 和无名称修饰的形式导出。
构造函数/析构函数
这些函数的命名应类似于 LLVMRustCreate<ClassName>
或 LLVMRustDestroy<ClassName>
。
示例
LLVMRustCreateContext
LLVMRustDestroyContext
LLVMRustCreateValue
方法和静态函数
如果我们在 Value
上有一个 get
函数,则 FFI 函数应如下所示
LLVMRustValueGet
静态函数与标准方法不同,没有大写字母。
重载函数
当存在重载方法时,并且额外的重载仅用于方便,只需实现最通用的方法。
依赖项
~2.9–5MB
~119K SLoC