faer v0.22 发布
faer-rs 是一个用纯 Rust 实现的线性代数库,仓库包含多个子项目,旨在提供一个功能齐全、注重可移植性、正确性和性能的线性代数库。
官网:https://faer.veganb.tw/
Github 仓库:https://github.com/sarah-quinones/faer-rs
rustc_codegen_jvm 更新:增加更多的 crate
rustc_codegen_jvm 是一个自定义的 Rust 编译器后端,其主要功能是将 Rust 代码编译为 Java 虚拟机(JVM)字节码,从而让 Rust 代码能够在 JVM 8 及以上版本上以可运行的 .jar
文件形式执行。
项目特性
- 支持
no_std
和no_core
程序:借助jvm-unknown-unknown
实现最小化的no_std
和no_core
程序编译。 - 基本
core
支持:在主机目标上为 JVM 输出提供基本的core
支持。 - 丰富的操作支持:涵盖整数和浮点数的算术运算(包括检查操作)、比较、位运算和逻辑运算等。
- 多样的控制流:支持
if
/else
、match
、for
、while
、loop
等控制流语句。 - 类型处理:支持类型转换(
as
)和各种原始类型。 - 函数调用:支持函数调用,包括递归调用。
- 数据结构支持:支持数组、切片、结构体、元组和枚举(C 风格和 Rust 风格)。
- 可执行
.jar
生成:能够为二进制 crate 生成可执行的.jar
文件。
此次更新增加了更多 crate 转换成 jar 的示例:
- RSA encryption/decryption
- Binary search algorithm
- Fibonacci sequence generator
- Collatz conjecture verifier
- Large prime generator
Github 仓库:https://github.com/IntegralPilot/rustc_codegen_jvm
Loess :一个小巧但灵活的 DSL 宏工具包
loess 是一个小巧的过程宏语法和解析器(生成器),具有良好的用户体验,涉及 DSL、生成器、语法、解析器、过程宏等领域。它配备了一个语法生成器(可进行解析、窥探、序列化为标记树),该生成器围绕结构体和枚举项展开,同时还有带有强大模板指令的简洁的 “quote_into
” 宏。
你可能想要使用它的几个原因如下:
-
构建速度快。唯一的默认依赖项是
proc_macro2
,而且很可能你不需要其他任何东西,除非你需要深入检查 Rust 代码。 -
非常灵活。你可以一次处理输入中的一个语法标记(或者一次性处理所有标记),并且几乎可以自由地构造和解构所有内容,无需进行验证。(Loess 相信你会负责任地使用这种能力)
-
默认情况下,解析器是浅层次的,所以你无需递归进入分隔的组。这不仅速度更快,而且还能更轻松地重新组合一些本应是 Rust 代码但实际无效的代码片段,让 Rust 编译器来处理错误检测和报告。不过,如果你愿意,仍然可以选择进行按需深度解析,只需指定泛型参数即可。
-
出色的错误报告。默认情况下,许多解析错误在一定程度上是可恢复的,在继续处理之前,会将一个带有位置信息且已确定优先级的错误推送到一个借用的 Errors 中。随后,你可以将这个 Errors 序列化为一组优先级最高的
compile_error!
调用,从而可以快速迭代。
Github 仓库:https://github.com/Tamschi/loess
--
From 日报小组 Yuan YQ
社区学习交流平台订阅:
评论区
写评论还没有评论