AWS Shane Miller 当选新 Rust 基金会首任主席
Rust 基金会将于4月12日公布 Shane Miller(肖恩·米勒,亚马逊 AWS 高级工程经理),当选为新创建的 Rust 基金会的首任主席。
Miller,领导 AWS Rust 平台团队并担任软件工程师已有近30年的时间。在 AWS,Miller一直是开源战略计划以及软件工程和交付方面的领导者。Miller 的 Rust 平台团队包括 Rust 语言和编译器的维护开发人员,及 Tokio 运行时( Rust 开发可靠异步应用)的开发者。在 Miller 的领导下,AWS Rust 团队正在针对工程师构建和运营设计优化工具,以充分利用 Rust 的性能和安全性。
Rust 基金会将 AWS,Google,华为和 Microsoft 以及 Rust 的初始赞助商 Mozilla 召集在一起,共同指导 Rust 的开发。
详细链接,https://www.zdnet.com/article/awss-shane-miller-to-head-the-newly-created-rust-foundation/
rustup nightly 将添加 rustc_codegen_cranelift
rustc_codegen_cranelift,或者简称为cg_clif,是 Rust 编译器的一个新的实验性代码生成后端。现有的后端是 LLVM,它非常擅长生成快速,高度优化的代码,但并不擅长快速编译代码。使用 Cranelift 项目的 cg_clif 将提供一个快速的后端,大大缩短了编译时间,但执行的优化很少。这非常适合调试版本,希望 cg_clif 最终将成为调试模式下的默认后端。
Rust PR 链接,https://github.com/rust-lang/rust/pull/81746
rustc_codegen_cranelift 介绍链接,https://blog.rust-lang.org/inside-rust/2020/11/15/Using-rustc_codegen_cranelift.html
simd-adler32
simd-adler32,使用 AVX2 以〜40GiB/s 的速度计算 Adler-32 校验和。
- 没有依赖;
- 支持 no_std;
- 当 std 启用时,运行时 CPU 功能检测;
- 目前仅 x86 和 x86_64,支持尽可能多的目标上实现快速性能;
- 当 simd 不可用时,默认为标量实现
// Cargo.toml
[dependencies]
simd-adler32 = "*"
// example.rs
use simd_adler32::Adler32;
let mut adler = Adler32::new();
adler.write(b"rust is pretty cool, man");
let hash = adler.finish();
println!("{}", hash);
// 1921255656
Github链接,https://github.com/mcountryman/simd-adler32
autodefault
自动化生成..Default::default()初始化。
#[derive(Debug, Default, PartialEq, Eq)]
struct Inner {
x: i32,
y: i32,
z: i32,
}
#[derive(Debug, Default, PartialEq, Eq)]
struct Mid {
a: Inner,
b: Inner,
c: Inner,
d: Inner
}
#[derive(Debug, Default, PartialEq, Eq)]
struct Outer {
mid1: Mid,
mid2: Mid,
mid3: Mid,
mid4: Mid,
}
fn build_outer() -> Outer {
Outer {
mid1: Mid {
a: Inner {
x: 10,
..Default::default() // :D
},
b: Inner {
y: 10,
..Default::default() // :)
},
..Default::default() // :|
},
mid2: Mid {
b: Inner {
z: 10,
..Default::default() // :/
},
..Default::default() // :(
},
..Default::default() // >:(
}
}
只需使用#[autodefault]属性标记函数:
use autodefault::autodefault;
#[autodefault]
fn build_outer_simple() -> Outer {
Outer {
mid1: Mid {
a: Inner { x: 10 },
b: Inner { y: 10 },
},
mid2: Mid {
b: Inner { z: 10 },
}
}
} // :O
assert_eq!(build_outer(), build_outer_simple())
Orion,Rust实现Lisp
Orion 是高级的纯函数式 Lisp 方言。
示例:
(load "core/math.orn")
(def fibo (λ (n)
(match (< n 2)
(True n)
(_ (+ (fibo (- n 1)) (fibo (- n 2)))))))
Github 链接,https://github.com/wafelack/orion