< 返回版块

Yuan YQ 发表于 2025-03-06 11:43

eval_macro - 编写 Rust 宏的新方式

Eval Macro (求值宏)是一种全新的编写 Rust 宏的方式,它将强大的功能和易读性相结合,以下是它和 macro_rules! 的对比:

Proc Macro Eval Macro Macro Rules
Input Token Stream Rust Code Macro Fragments
Output Token Stream Rust Code Macro Fragments
Hygienic
Advanced transformations
Easy to define
Easy to read
Reusable

简而言之,求值宏兼具过程宏的强大功能以及 macro_rules! 宏的简洁性,可以简单理解为使用 Rust 代码生成 Rust 代码。然而,它们不可复用 —— 你无法将一个求值宏导出以供其他 crate 使用。以下是关于 Eval Macro 的简单示例:

Github 仓库:https://github.com/wdanilo/eval-macro

rustup 1.28.0/1.28.1 发布

Rust 官方于 2025 年 3 月 2 日发布了 Rust 安装管理工具 Rustup 1.28.0 版本,带来诸多重要变化,具体内容如下:

  1. 新成员加入:Chris Denton 加入 Rustup 团队,其在 Rust 项目 Windows 相关部分的丰富经验,有助于解决 Windows 特定问题。
  2. 使用方式变更
    • 对于尚未在本机安装的工具链,rustup 不再自动安装,即使它是活跃的。如需安装,需采用无参数运行 rustup toolchain install
    • 通过 rustup toolchain installrustup default 安装与主机不兼容的工具链时,需添加 --force-non-host 标志,否则会被拒绝。
  3. 新支持平台:正式支持 aarch64-pc-windows-msvcloongarch64-unknown-linux-musl 主机平台。
  4. 功能改进
    • rustup show 输出格式优化,更易查看工具链状态。
    • rustup doc 可同时接受标志和主题,便于快速导航到特定文档部分。
    • rustup remove 子命令支持更多别名,如 rmdel
    • 增加对 nushell 的基本支持。
  5. 内部变更
    • 默认下载后端从 reqwest 搭配 native-tls 改为搭配 rustls,若新后端有问题,仍可通过 RUSTUP_USE_CURLRUSTUP_USE_RUSTLS 更改。
    • 默认后端使用 rustls - platform - verifier 验证服务器证书,在支持的平台上利用系统证书存储。
    • 创建代理链接时,优先尝试符号链接,失败则回退到硬链接。
    • 新增 RUSTUP_LOG 环境变量控制 Rustup 二进制文件的基于跟踪的日志记录。
  6. 官网变化:整体设计更新以契合 Rust 项目品牌
  7. 更新方式:已安装旧版本 Rustup,停止相关程序(如关闭 IDE)后运行 rustup self update ,或运行 rustup update;未安装则从官网获取。
  8. 注意事项:反恶意软件扫描程序可能阻止 Rustup 或其文件操作(如安装 rust-docs 时);在 CI 环境中,Rustup 自更新可能失败,可在工作流开始时运行 rustup set auto-self-update disable 解决,从 1.28.0 版本起,Rustup 在 CI 环境中不再尝试自更新。这些问题在反恶意软件扫描程序和 CI 运行器更新后会自动解决。

随即,又发布了 Rustup 1.28.1 版本,包含的变更如下:

  1. 默认启用自动安装,但是可以通过设置环境变量 RUSTUP_AUTO_INSTALL0 来关闭。
  2. rustup show active-toolchain 将输出信息显示在一行上
  3. 修复一些 Bug。

1.28.0 原文地址:https://blog.rust-lang.org/2025/03/02/Rustup-1.28.0.html

1.28.1 原文地址:https://blog.rust-lang.org/2025/03/04/Rustup-1.28.1.html

使用 Rust 重写的一个 CAD 工具

Jess Frazelle 和 Jordan Noone 因在工作中受现有 CAD 软件性能问题困扰,在寻求解决方案无果后,决定创立 Zoo 公司,旨在解决 CAD 领域存在的问题。Zoo 公司开创了新的 CAD 范式,将设计用代码定义。这种方式的优势包括:可利用 git 进行版本控制,解决 CAD 文件版本管理难题;代码能避免重复数据的序列化,提高效率;结合 AI,借助 Copilot 等工具辅助设计。为解决代码操作的可用性问题,Zoo 采用双面板布局,类似 Markdown 编辑器,用户可在左侧编辑代码,右侧实时查看 3D 模型,支持双向编辑。其中 Zoo 语言的解析器采用 Rust 开发,同时,网页上运行的代码也有采用 Rust 编写的 WASM。

官网:https://zoo.dev/

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论
destinyFvcker 2025-03-07 13:06

大Ferris夹小Ferris笑死我了🤣

1 共 1 条评论, 1 页