为macro_rules! 宏生成语法图(syntax diagrams)
语法图,也叫做铁路图(railroad diagram),是一种表示形式语法的方式,规则如下:
- 从左边界开始,沿着轨道到右边界。
- 沿途,你在圆框中遇到的是字面量,在方块中遇到的是规则或描述。
- 任何沿着轨道能走通的序列都是合法的。
- 任何不能沿着轨道走通的序列都是非法的。
- 末端只有一个竖条的铁路图,表示允许在任意一对符号中插入空白。而在末端有两个竖条的铁路图则不允许。
看铁路图比直接看macro_rules!定义要简单的多,没那么烧脑
图为 nom中name!的语法图
如何缓解Rust编译时间长的痛苦
本文作者介绍了一些小技巧:
- 使用cargo check。如果只是想验证语法、类型检查等,那么可以直接使用这个命令,它只会调用编译器前端。比cargo build快2倍,比cargo build —release快6倍。
- 使用sccache,该工具是Mozilla出品的Rust兼容的编译缓存服务,一般可以获得2倍速度提升。使用
cargo install sccache
安装sccache,并且在.bashrc中添加环境变量export RUSTC_WRAPPER=sccache
- 避免LTO。 LTO是链接时优化的缩写。LTO将付出更高的编译时间代价。
- 控制crate依赖。
Rust需要BFGS
什么是BFGS?Rust极有可能成为构建世界级机器学习工具的语言,但它目前缺少一些重要的数学基础设施。 BFGS是这些缺失的部分之一。
在许多流行的机器学习算法中,目标是找到最小化算法预测和训练数据之间误差的参数。这可以表述为找到最小化损失函数的输入。线性回归,逻辑回归,神经网络和一些不同的贝叶斯技术,都可以表示为最小化问题。
并没有一个通用的最佳的「最小化」功能,但是Python和R中都使用了BFGS算法。
BFGS代表Broyden-Fletcher-Goldfarb-Shanno,它是1970年各自独立发布该算法的四位研究人员的名字。
如果你有能力有兴趣,可以来这里帮忙改进Rust代码
友情提示:参看原文需要机器学习基础
嵌入式工作组报告第9期
- 嵌入式工作组转移到了新的仓库:rust-embedded/wg, rust-embedded是新创建的组织
- 嵌入式工作组现在拥有18个人,6个小分队,分别专注于Cortex-M、HAL、MS430、RISCV、Resources和Tools领域。
- 也罗列了embedded-hal生态系统一些可用的库
更多详细看文章
使用Rust宏来重构代码
1
共 0 条评论, 1 页
评论区
写评论还没有评论