< 返回版块

Yuan YQ 发表于 2025-04-22 11:17

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 文件形式执行。

项目特性

  1. 支持 no_stdno_core 程序:借助 jvm-unknown-unknown 实现最小化的 no_stdno_core 程序编译。
  2. 基本 core 支持:在主机目标上为 JVM 输出提供基本的 core 支持。
  3. 丰富的操作支持:涵盖整数和浮点数的算术运算(包括检查操作)、比较、位运算和逻辑运算等。
  4. 多样的控制流:支持 if/elsematchforwhileloop 等控制流语句。
  5. 类型处理:支持类型转换(as)和各种原始类型。
  6. 函数调用:支持函数调用,包括递归调用。
  7. 数据结构支持:支持数组、切片、结构体、元组和枚举(C 风格和 Rust 风格)。
  8. 可执行 .jar 生成:能够为二进制 crate 生成可执行的 .jar 文件。

此次更新增加了更多 crate 转换成 jar 的示例:

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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页