github ethereum/solidity v0.6.5
Version 0.6.5

latest releases: v0.8.27, v0.8.26, v0.8.25...
4 years ago

Version 0.6.5 of Solidity fixes an important bug and introduces immutable as a major feature.

The bug concerns the allocation of dynamic memory arrays using e.g. new uint[](...). The bug is considered to have a severity level of "low" but is present in all prior versions of Solidity. Therefore, please read more about how check if your contract is vulnerable in this blog post.

The immutable feature supports setting contract-level variables at construction time if they do not change later on. These variables are stored directly in the code instead of storage, which makes them extremely cheap to use. For now, only value types are supported.

Important Bugfixes:

  • Code Generator: Restrict the length of dynamic memory arrays to 64 bits during creation at runtime fixing a possible overflow.

Language Features:

  • Allow local storage variables to be declared without initialization, as long as they are assigned before they are accessed.
  • State variables can be marked immutable which causes them to be read-only, but assignable in the constructor. The value will be stored directly in the code.

Compiler Features:

  • Commandline Interface: Enable output of storage layout with --storage-layout.
  • Metadata: Added support for IPFS hashes of large files that need to be split in multiple chunks.

Bugfixes:

  • Inheritance: Allow public state variables to override functions with dynamic memory types in their return values.
  • Inline Assembly: Fix internal error when accessing invalid constant variables.
  • Inline Assembly: Fix internal error when accessing functions.
  • JSON AST: Always add pointer suffix for memory reference types.
  • Reference Resolver: Fix internal error when accessing invalid struct members.
  • Type Checker: Fix internal errors when assigning nested tuples.

We especially thank all the contributors that made this release possible:

a3d4, Alexander Arlt, Bhargava Shastry, cameel, Christian Parpart, Daniel Kirchner, Djordje Mijovic, Erik Kundt, gitpusha, hrkrshnn, iamdefinitelyahuman, Jason Cobb, Kamil Śliwak, Leonardo Alt, Martin Lundfall, Mathias Baumann

If you want to perform a source build, please only use solidity_0.6.5.tar.gz and not the zip provided by github directly.

Don't miss a new solidity release

NewReleases is sending notifications on new releases.