13
使用C,在運行時,我可以:是否有可能在運行時生成並執行Rust代碼?
- 創建函數的源代碼,
- 調出的gcc將其編譯到一個.so(Linux)的(或使用LLVM等) ,
- 加載.so和
- 調用該函數。
Rust中可能有類似的東西嗎?
特別是我想使用代數數據類型,所以使用Rust的C特性子集的功能是不夠的。
使用C,在運行時,我可以:是否有可能在運行時生成並執行Rust代碼?
Rust中可能有類似的東西嗎?
特別是我想使用代數數據類型,所以使用Rust的C特性子集的功能是不夠的。
還沒有,正式的,但它應該至少有可能與不太多的黑客行爲。最大的障礙是圖書館沒有任何能力進行動態加載。 這是一個使其工作的潛在策略(在Rust的傳入分支上)。
#[no_mangle]
標記您要調用的功能。這應該(我沒有嘗試過)產生一個未加標記的符號名稱,因此很容易找到。sys::Closure
定義)。Rust還有一個最低限度測試的JIT可以用於這種類型的東西,但它有一些主要的錯誤。
這個答案很舊。同時情況有多改變? – xophos