< 返回版块

苦瓜小仔 发表于 2025-07-27 19:50

Tags:日报

文章《没有线程安全,就没有内存安全》

作者:Ralf

这篇文章探讨了内存安全和线程安全之间的关系。

作者指出,通常所说的“内存安全”是指语言能够防止程序中出现 use-after-free 或越界内存访问等问题,但这与线程安全(防止并发错误)的区分并不总是有意义的。

文章通过一个 Go 语言的示例展示了数据竞争如何破坏内存安全,即使 Go 被认为是内存安全的语言。

作者强调,真正的目标是避免程序中出现未定义行为(Undefined Behavior),而不是简单地将安全问题细分为内存安全、线程安全等。

文章还讨论了其他语言(如 Java 和 Rust)如何通过不同的方式处理并发问题以确保内存安全,并指出 Go 在这一方面的不足。

最后,作者认为,语言的安全性是一个谱系,而 Go 在这个谱系中更接近于典型的内存安全语言,但仍有改进空间。

阅读:https://www.ralfj.de/blog/2025/07/24/memory-safety.html

Reddit:https://www.reddit.com/r/rust/comments/1m86o09/there_is_no_memory_safety_without_thread_safety/

文章《Cargo 新功能:同时发布多个包》

这篇文章介绍了 Rust 的包管理器和构建系统 Cargo 的一项新功能:多包同时发布。

这项功能允许开发者一次性发布多个相互依赖的包,解决了之前需要逐个发布且依赖顺序必须正确的繁琐流程。

文章详细介绍了该功能的实现原理,包括如何通过本地注册表覆盖层(overlay)在依赖项发布之前验证它们,以及如何在本地注册表中“发布”包,从而在最终上传到 crates.io 之前确保所有依赖项的兼容性。

作者还解释了如何在 Cargo 1.90.0 的夜间构建版本中尝试这一功能,并提到该功能将在 2025 年 9 月的 Cargo 1.90 稳定版中可用。

阅读:https://www.tweag.io/blog/2025-07-10-cargo-package-workspace/

Tanu: 高性能的 Rust WebAPI 测试框架

Tanu 旨在解决现代 Web 后端开发中的复杂测试需求。

它支持 CLI 和 TUI 模式,提供丰富的功能,包括参数化测试、声明式配置、多环境测试、详细的错误回溯、实时测试执行、多种输出格式以及插件扩展性。

tanu 通过减少样板代码和提供灵活的测试运行时,帮助开发者高效地进行端到端 API 测试。

仓库:https://github.com/tanu-rs/tanu

书籍《Ray Tracing: The Next Week》

Peter Shirley 的《Ray Tracing in One Weekend》系列的第二部作品,继续深入讲解光线追踪技术。

本书在基础的光线追踪器上增加了纹理、体积(如雾)、矩形、实例化、光源以及使用 BVH(Bounding Volume Hierarchy)来支持大量对象等功能。书中强调了在设计决策中选择最简单的方法,并通过 BVH 实现了高效的光线与对象的相交检测。

此外,书中还介绍了如何实现运动模糊、纹理映射、Perlin 噪声纹理、四边形、发射材质、实例化变换(如平移和旋转)以及体积渲染等高级功能。书中提供了详细的代码示例和场景设置,帮助读者逐步构建一个功能丰富的光线追踪器。

阅读:https://raytracing.github.io/books/RayTracingTheNextWeek.html

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页