「官方」如何在2018年加速Rust编译器:NLL edition
#nll
本篇文章是对Niko之前博文的增补。其中按时间线罗列了针对NLL性能提升的各个PR。
这些PR主要是提升了编译器基于NLL做静态借用检查的性能。
「博文」利用Rust所有权语义来构造有约束的API
#api_design
该文作者在2017年的Rust Fest大会做了分享,直到昨天,他才把演讲内容更新成了文稿。
( 我在《Rust编程之道》一书的设计模式 - RAII模式 里也借鉴了他的这次演讲内容 )
「博文」Rust中的高阶函数
#fp #higher_order_function
该文使用一个二维数组的示例,探究了Rust中纯函数式编程,主要是高阶函数的应用。
「博文」Rust:一种新的思维方式
#pythoner
一个Pythoner写的文章,他在学习Rust的时候,所有权move语义和作用域的概念给他带来了新的思考。
「库」no-panic :通过一个属性宏让编译器检验函数不会发生panic
#proc_macro_attribute #proc_macro #no_panic
serde/syn 作者dtolnay的新库:no-panic。 提供了一个属性宏,通过编译器来保证函数不会发生panic。
比如:
extern crate no_panic;
use no_panic::no_panic;
#[no_panic]
fn demo(s: &str) -> &str {
&s[1..]
}
fn main() {
println!("{}", demo("input string"));
}
如果该demo函数发生panic(或编译器无法检验函数不能panic),则该函数会编译失败,并且错误信息中会携带包含该函数名称标识的链接器错误信息。
注意:通过看该库的源码发现:
- Rust的proc_macro_attribute功能也移出了
#![feature(custom_attribute)]
特性,意味着,也要准备稳定了 - 现在稳定的proc_macro功能,不能用作表达式,除非使用
#![feature(proc_macro_hygiene)]
特性。相关issues
每日新闻订阅地址:
欢迎通过GitHub issues投稿。
1
共 0 条评论, 1 页
评论区
写评论还没有评论