2025 年 3 月 8 日发布了refined
库的 v0.0.4 版本,包含以下重要内容:
- 主要发布内容:
optimized
(通过unsafe
优化可省略运行时边界检查的特性标志)、arithmetic
(允许直接将Refinement
结构的相关特化用于std::ops
的算术 trait)、Stateful 谓词(用户可定义StatefulPredicate
实现,在纯且计算密集的谓词逻辑应用情况下更高效)。 - Optimized 详解:初始发布后有人提出通过
hint::assert_unchecked
省略边界检查的问题,开启optimized
特性后生成代码变快,如在month_name
函数示例中,未开启时有边界检查生成的汇编代码,开启后则不再生成,此优化移除了生成代码中的分支点,若代码路径使用不频繁,能显著提高性能,待测试证明其安全性后可能成为默认特性。 - Arithmetic 详解:
refined
中的许多提供的谓词是数字相关的,arithmetic
特性可在启用时在编译时验证而不是运行时验证提供“精炼算术”,类似implication
需使用generic_const_exprs
,稳定性不能保证,示例展示了如何使用该特性进行区间算术运算。 - Stateful 谓词详解:如其名,可使用包含状态的谓词,如
Regex
谓词在多次使用相同正则表达式进行精炼时可缓存编译后的谓词以解决重复编译问题,正则表达式功能通过regex
特性标志控制,不影响核心的有状态功能。 - 其他更新:还包括新贡献者的贡献指南
CONTRIBUTING.md
和完整变更列表的变更日志CHANGELOG.md#004---2025-03-02
,库正快速趋于稳定,将发布主版本表示对现有功能的持续稳定支持,欢迎提出未来改进和添加的想法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。