{ 跳至内容 }

Solidity 0.5.5 版本发布公告

发布于 2019年3月5日 由 Solidity 团队

发布

此版本专注于 ABIEncoderV2 和优化器的稳定性。我们还为 Petersburg 版本(现为默认 EVM)做好了准备,并改进了 SMT 检查器,使其在使用时报告更少的误报SafeMath。您现在可以使用 settings: {optimizer: {enabled: true, details: {yul: true}}} 或在命令行中使用 solc optimize-yul 激活实验性的 Yul 优化器。

语言特性

  • 添加对使用 stringbytes 作为键类型的映射的 getter 的支持。
  • 元编程:通过 type(C).name 提供对合约名称的访问。

编译器特性

  • 支持 petersburg 作为 evmVersion 并将其设置为默认值。
  • 命令行界面:使用 -optimize-yul 选项激活实验性的 yul 优化器。
  • 内联汇编:将 extcodehash 视为君士坦丁堡的一部分。
  • 内联汇编:当前配置的 EVM 不可用的指令现在为错误。
  • SMTChecker:如果下溢/上溢始终导致回退,则不报告它们。这消除了使用 SafeMath 时的误报。
  • 标准 JSON 接口:允许在不触发字节码生成的情况下检索元数据。
  • 标准 JSON 接口:通过设置提供对优化器的细粒度控制。
  • 静态分析器:当自定义类型的表达式没有效果时发出警告。
  • 优化器:添加包含常量的新的规则,包括 LTGTANDBYTE
  • 优化器:为君士坦丁堡添加常量移位规则。
  • 优化器:将多个具有常量移位值的移位组合成一个。
  • 优化器:在 CREATECREATE2 之后,不要使用 160 位掩码,因为它们保证返回地址或 0。
  • 优化器:在君士坦丁堡的常量优化器中支持移位。
  • Yul 优化器:添加规则以通过匹配 case 体用字面量替换 switch 语句。

错误修复

  • ABIEncoderV2:修复与裸 delegatecall 相关的内部错误。
  • ABIEncoderV2:修复与 ecrecover 相关的内部错误。
  • ABIEncoderV2:修复与映射作为库参数相关的内部错误。
  • ABIEncoderV2:修复包含在库中发出的结构体的事件的无效签名。
  • 内联汇编:缺少变量的正确错误消息。
  • 优化器:修复与跨汇编的未使用标签删除相关的内部错误。这从未生成任何无效代码。
  • SMTChecker:修复与静态大小数组相关的崩溃。
  • TypeChecker:修复内部错误并禁止对合约和库进行索引访问。
  • Yul:在函数声明之前正确检测与函数的名称冲突。
  • Yul:在可编译性检查器中考虑内置函数。
  • Yul 优化器:在 ExpressionSimplifier 中替换时,正确考虑对子表达式中变量的重新赋值。

构建系统

  • Soltest:添加对左对齐、填充的十六进制字面量的支持。
  • Soltest:添加对右对齐、填充的布尔字面量的支持。

非常感谢所有帮助使此版本成为可能的贡献者!

下载 Solidity 的新版本这里.

上一篇

下一篇

参与进来

GitHub

推特

Mastodon

矩阵

了解更多

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

2024Solidity 团队

安全策略

行为准则