【Rust日报】egui 0.29.0版发布

科技   2024-09-29 23:29   加拿大  

gccrs 项目重用了 rustc 编译器中的一些组件

gccrs 项目在编写备用 Rust 编译器 gccrs 时重用了 rustc 编译器中的一些组件和crate。主要包括以下几个方面:

  1. 重用哪些组件? 目前已经集成了 rustc_parse_format 来解析 Rust 格式化字符串。未来还计划集成 polonius 新一代借用检查器、新的 trait solver 等关键组件。

  2. 为什么要与 rustc 保持行为一致? 借用检查和 trait 解析是 Rust 语言的核心部分,确保与 rustc 行为一致至关重要。通过重用经过大量测试和改进的 rustc 组件,可以减少 gccrs 与 rustc 的行为差异。

  3. 如何集成这些 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版本的主要更新内容:

  1. 新增了多通道布局(multi-pass layout)支持,可以更好地实现高级布局效果。引入了新的UiBuilder和Context::request_discard函数。

  2. 新增了UiBuilder,允许更灵活地构建UI并响应点击和拖动事件。

  3. 改进了对亮/暗模式自动切换的支持,可以为两种模式设置不同的界面样式。

  4. 改进了GUI的视觉效果,包括文本垂直居中、线条渲染、文本选择效果等。

  5. 更新了一些API,如将id_source改为id_salt。

  6. 添加和改进了多个小功能,如列布局、滑块设置等。

  7. 进行了一些性能优化。

  8. 修复了多个Bug。

  9. 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语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章