C++必须变得更安全
CrowdStrike 事件后,C++的安全性备受吐槽。Andrew Lilley Brinker 的博客文章《C++ 必须变得更安全》探讨了提高 C++ 内存安全性的必要性,原因在于 C++ 的广泛使用和在软件基础设施中的关键作用。尽管将现有 C++ 代码重写为 Rust 不切实际,但 C++ 社区正通过契约、配置文件、后继语言和借用检查等方法增强安全性。文章强调在提高 C++ 安全性时,应在内存安全性和代码重写的经济和后勤挑战之间找到平衡,并提倡富有同情心和实际的改进方法。
https://www.alilleybrinker.com/blog/cpp-must-become-safer/
Rust FFI - 跨越不可能的边界
这篇文章主要讨论了作者尝试实现Rust和其他语言(特别是C和Vale)之间无缝互操作的过程。以下是文章的主要内容:
-
背景介绍:作者提出了一个看似不可能的任务 - 让其他语言能够直接调用Rust代码,包括使用Rust的泛型和复杂类型。
-
初步尝试:作者首先尝试使用rustdoc生成的JSON数据来获取Rust代码的结构信息。这种方法虽然可行,但在处理函数重载时遇到了困难。
-
复杂解决方案:为了解决重载问题,作者实现了一套复杂的重载解析和泛型解析逻辑,但这导致代码变得非常复杂(约1700行)。
-
寻求帮助:作者在Rust社区寻求帮助,最终得到了Alex Kladov (matklad)的建议,使用Rust的反射特性来获取函数信息。
-
改进方案:基于Alex的建议,作者开发出了一个更简单的解决方案,可以选择正确的重载函数并获取其信息。
-
最终突破:在文章发布后,一位读者(literallyvoid)提供了一个更简洁的一行代码解决方案。
-
最终方法:作者描述了最终工具的工作流程,包括读取C文件中的特殊指令,生成临时Rust程序获取类型信息,然后生成允许C调用Rust函数的Rust库。
-
未来展望:作者提到下一步是将这个工具集成到Vale语言中,使Vale能够直接调用Rust代码。
-
遗留问题:文章最后提出了一些尚未解决的问题,如如何处理跨语言的内存安全保证等。
https://verdagon.dev/blog/exploring-seamless-rust-interop-part-2
Without Boat大佬谈Pin
此篇是对之前 Mojo 语言开发商 Modular 对 Rust Pin的批评的回应。客观地谈了Pin出现的原因,以及现在存在的问题。
https://without.boats/blog/pin/
--
From 日报小组 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论