0
点赞
收藏
分享

微信扫一扫

【Rust日报】2021-04-10 AWS Shane Miller 当选新 Rust 基金会首任主席

zmhc 2022-06-22 阅读 45

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


举报

相关推荐

0 条评论