gccrs 项目重用了 rustc 编译器中的一些组件
gccrs 项目在编写备用 Rust 编译器 gccrs 时重用了 rustc 编译器中的一些组件和crate。主要包括以下几个方面:
重用哪些组件? 目前已经集成了 rustc_parse_format 来解析 Rust 格式化字符串。未来还计划集成 polonius 新一代借用检查器、新的 trait solver 等关键组件。
为什么要与 rustc 保持行为一致? 借用检查和 trait 解析是 Rust 语言的核心部分,确保与 rustc 行为一致至关重要。通过重用经过大量测试和改进的 rustc 组件,可以减少 gccrs 与 rustc 的行为差异。
如何集成这些 Rust 组件? 由于目前 gccrs 还不完整,无法自行编译这些 Rust 组件,因此目前依赖 cargo 和 rustc 来编译并链接它们。未来计划通过自举过程,先构建一个无借用检查的中间编译器,使用它编译 Rust 组件,最后链接到最终编译器中。
重用 rustc 组件的目的是加快开发进度,并确保 gccrs 在关键的编译器过程中与 rustc 的行为保持一致,为 Rust 语言的生态系统做出贡献。
https://rust-gcc.github.io/2024/09/20/reusing-rustc-components.html
egui 0.29.0版发布
egui 0.29.0版本的主要更新内容:
新增了多通道布局(multi-pass layout)支持,可以更好地实现高级布局效果。引入了新的UiBuilder和Context::request_discard函数。
新增了UiBuilder,允许更灵活地构建UI并响应点击和拖动事件。
改进了对亮/暗模式自动切换的支持,可以为两种模式设置不同的界面样式。
改进了GUI的视觉效果,包括文本垂直居中、线条渲染、文本选择效果等。
更新了一些API,如将id_source改为id_salt。
添加和改进了多个小功能,如列布局、滑块设置等。
进行了一些性能优化。
修复了多个Bug。
eframe框架也作了相应更新,如升级winit、支持虚拟键盘、修复iOS相关问题等。
https://github.com/emilk/egui/releases/tag/0.29.0
谷歌使Android中的内存安全漏洞的百分比从6年前的76%降至24%
根据该文章,谷歌转向使用内存安全语言Rust作为其"安全性设计"方法的一部分,使Android中发现的内存安全漏洞的百分比从6年前的76%降至24%。谷歌表示,对于新功能采用安全编码不仅降低了代码库的整体安全风险,而且也使转换过程更加"可扩展和经济高效"。随着时间推移,新的内存不安全代码开发放缓,内存安全开发取而代之,内存安全漏洞就会逐渐减少。
该文章还指出,尽管新的内存不安全代码量增加,内存安全漏洞的数量往往会下降,原因是漏洞会呈指数级衰减,新代码或最近修改过的代码中往往存在很多漏洞。谷歌还强调应进一步推进内存安全策略,从"高度确保性预防"的角度,将安全性纳入基础设施。
谷歌表示,它正专注于提供Rust、C++和Kotlin之间的互操作性,而不是代码重写,作为采用内存安全语言的"实用且渐进"方式,从而最终消除整个漏洞类别。该公司还与Arm合作,提高GPU软件/固件栈的整体安全性。
https://thehackernews.com/2024/09/googles-shift-to-rust-programming-cuts.html?m=1
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区