Solidity 0.5.14 将默认 EVM 版本设置为“Istanbul”,并且是 0.5.x 系列的最后一个版本。
SMT 检查器现在支持构造函数,并且可以通过命令行界面直接将 EVM 风格的 Yul 转换为 Ewasm。
语言特性
- 允许通过成员获取公共或外部库函数的选择器.selector.
- 解析器:允许将字符串和十六进制字符串字面量拆分为多个部分。
- 内联汇编:支持引用其他常量的常量。
编译器特性
- 命令行界面:允许使用 solc yul yul-dialect evm machine eWasm 将 yul/严格汇编转换为 EWasm。
- 将默认 EVM 版本设置为“Istanbul”。
- SMTChecker:添加对构造函数的支持,包括构造函数继承。
- Yul:通过 Yul 编译时,如果 Solidity 代码中的字符串字面量每个字符都是安全可打印的,则将其保留为字符串字面量。
- Yul 优化器:执行循环不变代码移动。
错误修复
- SMTChecker:修复使用 abi.decode 时发生的内部错误。
- SMTChecker:修复使用函数的数组或映射时发生的内部错误。
- SMTChecker:修复结构体类型数组中的内部错误。
- 版本检查器:^0 应匹配 0.5.0,但不匹配任何预发布版本。
- Yul:将无限循环和递归视为不可移除。
构建系统
- 更新到 emscripten 版本 1.39.3。
非常感谢所有帮助使本次发布成为可能的贡献者!
下载 Solidity 的新版本这里.