{Solidity:log}
Transient Storage Opcodes in Solidity 0.8.24
Posted by Solidity Team on January 26, 2024
Solidity 0.8.24 supports the opcodes included in the upcoming Cancun hardfork and, in particular, the transient storage opcodes TSTORE and TLOAD as per EIP-1153. Transient storage is a long-awaited feature on the EVM level that introduces another data location besides memory, storage, calldata (and return-data and code). The new data location behaves as a key-value store similar to storage with the main difference being that data in transient storage is not permanent, but is scoped to the current transaction only, after which...
Read moreSolidity 0.8.24 Release Announcement
Posted by Solidity Team on January 26, 2024
We are excited to announce the release of the Solidity Compiler v0.8.24. This newest version of the compiler brings readiness for the "Cancun" network upgrade, including support for transient storage (EIP-1153), shard blob transactions (EIP-4844) & more. The release binaries for macOS are now also compatible with Apple silicon chips. Cancun Network Upgrade The "Cancun" network upgrade provides new features in the form of opcodes and precompiles, which will need to be explicitly used to have any benefits, but also introduces changes in the existing...
Read moreSolidity Developer Survey 2023 is Live!
Posted by Vishwa Mehta on December 8, 2023
We recently wrapped up Solidity Summit with a bang and have one last announcement before the end of the year! The Solidity Developer Survey for the year 2023 is live! We would love to collect your feedback and insights regarding Solidity! 📝 TAKE THE SURVEY! 📝 You can find the previous results of the Solidity Developer Survey 2022 here. In 2022, a total of 1401 developers from 100 different countries participated in the survey out of which 41% used Solidity daily, and 37.3%...
Read moreSolidity Summit 2023 Recap
Posted by Solidity Team on November 30, 2023
We can't believe it's already been two weeks since we met in Istanbul, Türkiye, for the third edition of Solidity Summit! Solidity Summit 2023 was part of the Devconnect week and took place on Thursday, November 16, 2023. With roughly 300 participants, the event was well attended. The day was packed with 15+ sessions on: Solidity internals and tips & tricks Solidity tooling Smart contract testing & security best practices EVM Languages and mechanisms ... and more! The full agenda of the day can be found here. You...
Read moreBug in Deduplication of Verbatim Blocks
Posted by Solidity Team on November 8, 2023
On October 24, Ori Pomerantz reported a bug affecting the use of verbatim builtin in Yul code. After investigating, the team was able to confirm the problem and locate its origin. The bug existed in the Block Deduplicator optimizer step, wherein equivalent assembly blocks are identified and merged. verbatim assembly items surrounded by identical opcodes were incorrectly considered identical and unified. The bug existed since version 0.8.5, which introduced verbatim, and only affected pure Yul compilation with optimization enabled. Solidity code or Yul used in inline assembly blocks would...
Read moreSolidity 0.8.23 Release Announcement
Posted by Solidity Team on November 8, 2023
Today, we announce the release of the Solidity Compiler v0.8.23. This newest version of the compiler is meant to be a pure bugfix release that includes the fix for an important bug of low severity. Based on our investigations, we do not foresee real-world instances of the bug being used as an exploit or an attack vector and thus, we assess its overall severity as low. This version also introduces a small change to optimizer settings to make them more intuitive. Since v0.8.21,...
Read moreSolidity 0.8.22 Release Announcement
Posted by Solidity Team on October 25, 2023
We are excited to announce the release of the Solidity Compiler v0.8.22. This newest version of the compiler includes a range of language as well as compiler improvements such as file-level event definitions, optimizations for unchecked loop increments, support for importing EVM assembly JSON, & more. Important Note This release deprecates support for EVM versions older than Constantinople, which are becoming increasingly hard to maintain. These ancient versions have long been obsolete on the Ethereum mainnet and testnets and we suspect that they are no...
Read moreSolidity Summit 2023 Merhaba Türkiye!
Posted by Solidity Team on August 7, 2023
The Solidity Summit has returned! Following the popularity of the Solidity Summit in 2022, we are pleased to announce a live event for 2023! Solidity Summit 2023 is part of DevConnect and will take place in Istanbul, Turkey, on Wednesday, November 16, 2023. What can you expect for the Solidity Summit? The Solidity Summit is a collaborative conference that focuses on Solidity's future. It is a gathering of advanced Solidity users and other Solidity ecosystem stakeholders such as language designers, tool builders, auditors,...
Read moreSolidity 0.8.21 Release Announcement
Posted by Solidity Team on July 19, 2023
We are excited to announce the latest release of the Solidity Compiler, Solidity v0.8.21. Notable New Features Stack-to-memory mover always enabled via-IR The release addresses the issue of unoptimized code produced by the IR-based code generation pipeline being overly prone to "Stack Too Deep" errors. This is meant to help tools such as debuggers, which lose much of their effectiveness when working with optimized code. The legacy pipeline can often avoid running out of reachable stack slots even in unoptimized mode, but this comes at...
Read moreBug in Legacy Code Generation When Accessing the .selector Member on Expressions with Side Effects
Posted by Solidity Team on July 19, 2023
On June 26, 2023, a bug in the legacy code generation pipeline of the Solidity compiler was found during investigation of a security report related to the use of abi.decode with a ternary expression that has side effects, as the type argument. The legacy code generator was not evaluating complex expressions, like assignments, function calls, or conditionals, whose .selector was being accessed. This led to the side-effects of such expressions not being executed, and therefore potentially incorrect behavior of contracts compiled using the legacy pipeline. The...
Read more