{ 跳至内容 }

Solidity 0.8.17 版本发布公告

发布于 2022 年 9 月 8 日,作者:Solidity 团队

发布

Solidity v0.8.17 修复了一个重要的错误,使乘法的溢出检查更高效,并添加了一个 LSP 功能,始终分析项目中的所有文件。

重要错误

条件提前终止时存储写入移除错误

此错误可能导致存储写入被错误地视为冗余并被优化器移除。问题出现在存在可能使用以下操作码有条件地终止外部 EVM 调用的汇编函数时:return()stop() 操作码。

有关更多信息,请参阅安全警报帖子:条件提前终止时存储写入移除错误

完整变更日志

重要错误修复

  • Yul 优化器:防止在调用有条件地终止外部 EVM 调用的 Yul 函数之前,错误地移除存储写入。

编译器功能

  • 代码生成器:更有效的乘法溢出检查。
  • 语言服务器:默认情况下分析项目中的所有文件(可以通过在 LSP 设置对象中将 'file-load-strategy' 设置为 'directly-opened-and-on-import' 来自定义)。
  • Yul 优化器:将零长度操作的起始偏移量简化为零。

错误修复

  • 类型检查器:修复在使用无效左边的元组赋值时发生的内部编译器错误。
  • Yul IR 代码生成:修复在内联汇编中通过存储引用访问映射的 .slot 成员时发生的内部编译器错误。

构建系统

  • 允许在将 -DPEDANTIC=OFF 标志传递给 CMake 时,禁用严格警告,并且在编译器构建过程中不将警告视为错误。
  • 将 emscripten 更新到 3.1.19 版本。

衷心感谢所有帮助实现此版本的贡献者!您可以在此处下载新版本的 Solidity:v0.8.17.

上一篇

下一篇

参与进来

GitHub

Twitter

Mastodon

Matrix

了解更多

博客文档用例贡献关于论坛

2024Solidity 团队

安全策略

行为准则