使用C,在运行时,我可以:
- 创建函数的源代码,
- 调用gcc将其编译为.所以(Linux)(或者使用llvm等),
- 加载文件.那么
- 调用函数.
铁 rust 中也可能有类似的情况吗?
我特别想使用代数数据类型,所以使用Rust特征的C子集是不够的.
使用C,在运行时,我可以:
铁 rust 中也可能有类似的情况吗?
我特别想使用代数数据类型,所以使用Rust特征的C子集是不够的.
官方上还没有,不过至少在没有太多黑客攻击的情况下应该是可能的.最大的障碍是这些库还没有任何动态加载的能力.
#[no_mangle]
.这应该(我没有试过)产生一个不混合的符号名,这样就很容易找到.sys::Closure
中定义).Rust也有一个经过最低限度测试的JIT,可以用于这类事情,但它有一些主要缺陷.