这是一篇很优秀的文章,讲了 C 编译器的实现中的一些优化情况,以及带来的风险,对于正在进化的 Rust 编译器,可能能提供一些参考。
Read More
都在报怨 Rust 编译器太慢了。其实官方组还是很努力了。不信看看下面的报告:
Read More
昨天出的第一篇文章,今天出的第二篇,接着昨天的写。初学者可以仔细跟着做一下,很好的入门教程。
Read More
像下面这个样子:
#[zoet]
impl Wossname {
// The impls are often the same, so share them!
#[zoet(Asref, Borrow, Deref)]
fn deref(&self) -> &Inner { /* ref-to-ref conversion code */ }
// No having to remember the associated types on IntoIterator!
#[zoet(IntoIterator)]
pub fn iter(&self) -> Iter { /* ... */ }
#[zoet(IntoIterator)]
pub fn iter_mut(&mut self) -> IterMut { /* ... */ }
#[zoet(IntoIterator)]
fn into_iter(mut self) -> IntoIter { /* ... */ }
// ...
}
不过,俗话说,写宏一时爽,读宏火葬场。请看官自行斟酌。
Repo
SPH(smoothed-particle hydrodynamics) 光滑颗粒流体动力学 :D。
作者用 Rust 写了一个模拟这个的库,在网页上运行。效果真棒。
Demo online Repo
Rust 安全代码工作组(非官方)搞的一个仓库,供人们讨论可以替换为safe代码的unsafe代码
Repo
直接看效果。
喜欢。
Repo
这里
Cloudflare 的工程师讲的,不过是英文的,感兴趣的可以听听。
目的是让使用标准库中的 Atomic 类型更方便。比如下面这样子:
// Requires the 'derive' feature:
// atomig = { version = "_", features = ["derive"] }
use atomig::{Atom, Atomic, Ordering};
#[derive(Atom)]
#[repr(u8)]
enum Animal { Dog, Cat, Fox }
let animal = Atomic::new(Animal::Cat);
animal.store(Animal::Fox, Ordering::SeqCst);
#[derive(Atom)]
struct Port(u16);
let port = Atomic::new(Port(80));
port.store(Port(8080), Ordering::SeqCst);
Repo
在这里
炫酷的视频效果在这里
检查 Http 的返回状态,其实主要是配合 Prometheus 使用的。
Repo
听起来有点绕口,就是帮助你写过程宏的一个库。主要是提供了方便的解析属性的功能。
Repo
Repo