17611538698
webmaster@21cto.com

Rust Coreutils 0.11.0 发布 - 引入新的错误诊断功能

动态 0 15 17小时前

  Rust uutils 项目于 8 月 31 日(当地时间)发布了“Rust Coreutils 0.11.0”。

 Rust Coreutils 是一个开源项目,它用 Rust 重新实现了 GNU Coreutils 中包含的基本命令。它在保持与 GNU Coreutils 兼容性的同时,提高了跨平台兼容性、安全性和性能。

 Rust Coreutils 0.11.0 引入了一项诊断功能,可以像编译器一样指出错误位置。它还包含基于性能分析的优化、改进的 GNU 兼容性,以及针对符号链接和 TOCTOU 竞争条件的增强安全性。

 Rust Coreutils 0.11.0 的主要更新如下:

○ 新增诊断功能,使用光标指示错误位置

○ 支持 28 个命令,包括 test、chmod、tr、sort、cut 等
○ 根据错误类型显示正确的语法和建议的修复方案
○ 现在可以使用环境变量“UUTILS_DIAG”控制诊断信息的显示

○ Linux、macOS 和 Windows 的发布版本中已启用 PGO 功能

○ PGO 功能使处理性能提升高达 31%

○ GNU 测试套件中 653 个测试成功通过

○ 测试执行期间未出现任何错误
○ 添加了多个 GNU 兼容性选项和行为

○ 增强了文件操作(例如 cp、mv、rm 和 chmod)的安全性
○ 修复了多个 panic、挂起和整数溢出问题

○ 改进了对 Windows 和 WASI等的支持

 传统的 Unix 命令在发生错误时会在标准错误输出中显示一条简短的错误信息。Rust Coreutils 现在引入了一项诊断功能,它会重新显示输入参数,并用插入符高亮显示有问题的字符或字符范围。此外,还会显示可用的语法和建议的更正。该功能使用 Rust 诊断显示库“ariadne”进行渲染。默认情况下,仅当标准错误输出连接到终端时才会启用此功能。在脚本、管道和测试环境中,仍然会像以前一样输出单行错误信息,退出代码保持不变。因此,该功能与现有处理错误信息的脚本保持兼容。

 未来,uutils 的 findutils 和 sed 也计划引入新的诊断功能。

 环境变量“UUTILS_DIAG”可以设置为“always”、“never”或“auto”。“always”即使在输出到文件或管道时也会显示详细的诊断信息,而“never”即使在终端上也会使用传统的消息格式。

 “Rust Coreutils 0.11.0”可GitHub获取。

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信