此版本主要修复了优化器和实验性 ABI 编码器中的错误。有关错误的详细信息,请参见官方公告.
此外,此版本还允许您在 标准 JSON 接口 中使用 Yul 作为语言选项(而不是“Solidity”)。
重要 Bug 修复
- ABIEncoderV2:修复了在从存储中编码数组或结构体时,从存储中加载短值类型相关的错误。
- ABIEncoderV2:修复了从存储中编码打包数组时的缓冲区溢出问题。
- 优化器:修复了常量字节优化规则中参数的错误排序。
语言特性
- 现在,使用命名参数的函数调用适用于重载函数。
编译器特性
- 内联汇编:在使用callvalue() 在非 payable 函数中时发出错误(与 msg.value 的行为相同)。
- 标准 JSON 接口:支持 "Yul" 作为输入语言。
- SMTChecker:如果适用,显示调用栈以及模型。
- SMTChecker:支持修饰符。
- Yul 优化器:如果 Yul 优化器处于活动状态,则默认情况下启用堆栈分配优化(在 yulDetails 中禁用)。
Bug 修复
- 代码生成器:为 type(Contract).name 防御性地将内存填充为 32 的倍数。
- 类型系统:检测并禁止内部函数指针作为公共/外部库函数的参数,即使它们嵌套/封装在结构体、数组或其他类型中。
- Yul 优化器:在堆栈压缩传递期间正确判断变量是否可以消除。
- Yul/内联汇编解析器:禁止在基于标签的整数值的 switch 中出现多个具有相同标签的 case 语句。
构建系统
- 安装脚本:修复 CentOS 6 的 boost 存储库 URL。
- Soltest:修复 soltest 中的十六进制字符串更新。
衷心感谢所有为使此版本发布成为可能而贡献的贡献者!
下载 Solidity 的新版本这里.