Rust ALL-Hands大会WASM工作组会议纪要
#wasm
- 进一步探讨了wasm-pack 1.0 RoadMap
- 深入探讨了wasm的模块化工具包的相关细节
- 讨论如何在Cargo中添加某些通用的构建hook,可以将wasm-pack转换为针对wasm开发的hook实现
- 讨论wasm支持多线程,以及如何将Rayon库应用于wasm。
你还在用println宏来调试Rust代码?
#debug
这篇文章介绍了Rust 1.32引入的dbg!
的用法。
为TiKV贡献的机会来了
这周的三个issues比较简单,成为TiKV贡献者的机会就在眼前:
- 把 trait对象使用新的dyn Trait语法。 https://github.com/tikv/tikv/issues/4197
- 移出
extern crate
语句。https://github.com/tikv/tikv/issues/4196 - 为 tikv_alloc 增加 tcmalloc 支持。https://github.com/tikv/tikv/issues/4191
shared_ptr: (并不是总是)原子引用计数智能指针
#cpp
(cpp用智能指针编写的程序,安全性就可以和Rust持平吗?很可能不行)
作者在几个月前,运行了Rust和Cpp的一些数据结构的基准测试,发现Rust实现的RB tree明显慢于cpp。这个现象让作者感到奇怪,因为以他的经验,Rust和Cpp的性能不会产生这么明显的差距。
所以,他就进行了进一步测试。结果发现:cpp的shared_ptr智能指针并不总是原子性的进行引用计数,这是cpp速度快的原因。这说明,shared_ptr在某些并发情况下,会发生数据竞争、悬空指针或内存泄漏等风险。
Patch 0.5 发布
#git
patch库用于解析和处理git的patch文件,新版本支持Rust 2018.
ARM开发:从Rust迁移到Zig
#zig
该文作者之前用Rust实现一个支持aarch64 RPI3的微型裸机操作系统。后来又从Rust切换到了Zig语言。文章中阐述了他切换的理由:
- 二进制大小。Zig生成5K,Rust生成的22k。对于RPI3主板来说,更小的二进制大小显然比较合适。除非Rust可以有其他编译魔法压缩二进制大小。
- 编译时间。Zig的编译时间在0.465s左右。但是Rust的编译时间对作者来说就是难以忍受了。
- 分配器和标准库。Zig更加易于使用。
- 代码调试、学习曲线。Zig小而简单,学习更容易上手。也许对于该作者来说,Rust的学习曲线过于高。尤其是写嵌入式代码,Unsafe Rust让他头疼、混乱。
(看来Rust在嵌入式领域,还有很多努力空间。)
swc 1.0之后,GitHub关注度增长比较快
#swc
swc是用Rust实现的一个js编译器,并且支持es2019、jsx和typescript。已经进入GitHub语言总趋势榜单。
dodrio: Rust和WebAssembly实现的的实验性虚拟DOM库
#wasm
日报订阅地址:
评论区
写评论还没有评论