【Rust日报】 2019-08-30
Linux 未來可以使用 Rust 開發內核
Josh Poimboeuf (Linux主要開發者之一)在一次的演講提到了Rust的可能性,
但他強調他不是要大家一定要使用Rust,他只是覺得Rust可以給Linux帶來更多可能性,
Josh也跟Greg Kroah-Hartman(Linux主要開發者之一)談過,Greg說他願意接受內核中用於在Rust中編寫驅動程序的框架
- 現在Rust默認沒有啟用即使你做了“make” "allyesconfig"
這樣人們就不需要安裝Rust來構建內核, - 它顯示了除了編寫C之外的真正好處,例如安全的內核API。
看來大家在未來有很大的機會可以使用Rust來編寫Linux Kernel。
Wasmtime 在 WebAssembly & WASI上運行的容量小速度快的執行 runtime
可以讓 php, node js, rust, c++ 直接執行wasm的一個runtime
影片裡用 markdown 的庫展現了 wasmtime 的可能性
從四種語言語言呼叫 wasm 裡編譯好的函數,非常方便
Lumen:針對WebAssembly的Erlang VM
使用rust nightly
功能包括 Compiler 與 Runtime
開發Lumen的主要動機是將基於BEAM的應用程序(即用Elixir,Erlang,LFE,Alpaca等編寫的程式)編譯成WebAssembly模塊
原因是官方BEAM的實現與WebAssembly的現有技術不兼容,就是Emscripten編譯C / C ++程式的這部份
一個問題是WebAssembly中運行VM執行bytecode會產生不小的開銷(BEAM bytecode由BEAM VM解釋,BEAM VM作為WASM執行,它被瀏覽器WebAssembly引擎編譯執行)。
這也要求每個BEAM模塊要能讓能夠從瀏覽器執行並由VM加載。即使BEAM VM可以直接編譯為WASM,這些問題也沒有簡單的解決方案。
Lumen的BEAM bytecode是用AOT執行,而不是在JIT。這避免了BEAM bytecode的膨脹,產生出的WASM模塊可以直接加載,並且沒有JIT的runtime 開銷。
param_attrs 將在Rust 1.39.0版本穩定
讓人在#[feature(param_attrs)] 小括號中加入參數
fn len(
#[cfg(windows)] slice: &[u16],
#[cfg(not(windows))] slice: &[u8],
) -> usize {
slice.len()
}
可以做到程式碼裡,依不同作業系統編譯不同的程式碼。
在rust 1.39 nightly 你可以使用aljabar的矢量來自動序列化任何大小的數組。
程式碼裡序列化成json
use aljabar::{Matrix, matrix, Vector, vector};
#[test]
fn test_serialize() {
let v = vector![ 1u32, 2, 3, 4, 5, 6, 7 ];
assert_eq!(
serde_json::to_string(&v).unwrap(),
"[1,2,3,4,5,6,7]"
);
let m = matrix![
[ 1u32, 2 ],
[ 3u32, 4 ],
];
assert_eq!(
serde_json::to_string(&m).unwrap(),
"[[1,3],[2,4]]"
);
}
From 日报小组 @Damody
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
Leave 【Rust日报】 2019-08-30 to:
Read more #rust posts
Best Posts From ChaosBot
We have not curated any of blackanger's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From ChaosBot
- 【Rust日报】 2019-09-06
- 【Rust日报】 2019-09-05
- 【Rust日报】2019-09-04
- 【Rust日报】 2019-09-03
- 【Rust日报】 2019-09-01
- 【Rust日报】 2019-08-30
- 【Rust日报】 2019-08-29
- 【Rust日报】 2019-08-28
- 【Rust日报】 2019-08-27
- 【Rust日报】2019-08-26
- 【Rust日报】 2019-08-25
- 【Rust日报】 2019-08-24
- 【Rust日报】 2019-08-23
- 【Rust日报】 2019-08-22
- 【Rust日报】 2019-08-21
- 【Rust日报】2019-08-20
- 【Rust日报】2019-08-19
- 【Rust日报】2019-08-18
- 【Rust日报】 2019-08-17
- 【Rust日报】 2019-08-16