< 返回版块

苦瓜小仔 发表于 2025-07-01 21:05

Tags:日报

Graphite:将 Rust 转化为用于图形操作的函数式可视化脚本语言,请求帮助实现编译器双向类型推断

Graphite 是一个基于 Rust 的、全面的 2D 内容创作工具,适用于平面设计、数字艺术和交互式实时动态图形。

它还拥有令人耳目一新的高质量 UI 设计,现代、直观且用户友好。已进入 GitHub Rust 项目前 100 名。

观看 此处 的一分钟视频,它展示了如何使用它制作出炫酷、独特、视觉效果出色的作品。

它有类似 Blender 的愿景,采用节点式编辑环境和基于 Rust 的 Graphene 编程语言,能够利用 Rust 的数据类型和 rustc 将艺术家创作的文档转换为可移植的独立程序,从而程序化地生成参数化艺术作品。

目前 Graphene 编译器类型检查功能较基础,需实现类似 Hindley–Milner 的双向类型推导,因团队仅有一名有编译器背景的开发者。

现请求帮助,加入 Discord 或评论 GitHub Issue 即可参与。

仓库:https://github.com/GraphiteEditor/Graphite

Reddit:https://www.reddit.com/r/rust/comments/1lor3b4/graphite_now_a_top100_rust_project_turns_rust/

文章《rustc_codegen_cranelift 中的异常处理》

作者:Björn

文章介绍了在 Cranelift 代码生成器中为 Rust 添加异常处理支持的工作。

作者详细描述了 Rust 的栈展开机制,以及如何通过 Cranelift 的“landingpad”风格异常处理实现 Unix 系统上的 panic 展开。

文章通过调试会话展示了异常处理的运行时行为,包括设置断点、检查异常类、调用人格函数等。

作者还解释了 Itanium 和 SEH 两种主要的异常处理 ABI,以及 Rust 如何利用这些机制实现异常处理。

目前,该功能默认禁用,作者正在完善实现并解决性能问题。

阅读:https://tweedegolf.nl/en/blog/157/exception-handling-in-rustc-codegen-cranelift

Reddit:https://www.reddit.com/r/rust/comments/1lo3v9h/exception_handling_in_rustc_codegen_cranelift/

文章《针对单个 trait 实现 blanket impl 的另一种方式》

作者:Serhii Potapov

文章介绍了在 Rust 中为单一特质实现替代性全范围实现的方法。

Rust 严格禁止为同一特质提供多个可能重叠的全范围实现。作者在开发 Joydb 时遇到这一问题,需要为 Adapter 特质提供两种不同的实现方式(统一适配器和分区适配器),但不能直接使用全范围实现。

他通过使用标记结构体(如 Unified<T>Partitioned<T>)、辅助特质 BlanketAdapter 以及在 Adapter 特质中使用关联类型来解决这一问题,从而实现了在不违反 Rust 协调规则的情况下,为不同行为提供统一接口的目标。

阅读:https://www.greyblake.com/blog/alternative-blanket-implementations-for-single-rust-trait/

Reddit:https://www.reddit.com/r/rust/comments/1lovjej/alternative_blanket_implementations_for_a_single/

文章《反思 Haskell 和 Rust》

作者:Sibi Prabakaran

文章比较了 Haskell 和 Rust 在实际开发中的优缺点。

作者有在 Haskell 和 Rust 中开发生产代码的经验,主要集中在 Web 服务、API 和 HTTP 栈开发。

文章指出,Rust 在变量遮蔽、枚举系统、字段可见性控制等方面表现更好,而 Haskell 在纯函数和引用透明性方面有优势。

Rust 的错误处理更明确,测试代码与源代码放在一起更方便维护,格式化工具更统一,语言服务器支持更可靠,编译速度更快。

Haskell 的 REPL 更适合快速原型开发,列表操作更方便,但配置文件体验和操作体验不如 Rust。

作者认为,尽管 Haskell 有强大的理论基础,但 Rust 的工具和生态系统更完善,更适合构建可靠的软件。

阅读:https://academy.fpblock.com/blog/rust-haskell-reflections/

Reddit:https://www.reddit.com/r/rust/comments/1loqxty/reflections_on_haskell_and_rust/

给 Chromium V8 实现 Temporal Rust API

在过去的两个月里,Manishearth 一直在为 V8(Chromium 的 JavaScript 引擎)添加对 Temporal 日期时间 API 的支持,其核心实现是用 Rust 编写的。

Firefox 已经使用 ICU4X 实现了该 API,而 V8 使用的是 temporal_rs,它基于 ICU4X 但做了更多规范特定的工作。

这并非 Chromium 中首次使用 Rust,但这是一个相当大的代码块。

目前,虽然测试符合性方面还有很多工作要做,但至少可以说在 API 层面已经完全实现了。

ICU4X:https://github.com/unicode-org/ICU4X

temporal:https://github.com/boa-dev/temporal

Reddit:https://www.reddit.com/r/rust/comments/1logjzt/chromiumv8_implementing_temporal_api_via_rust/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页