{Solidity:log}
Solidity 0.8.27 Release Announcement
Posted by Solidity Team on September 4, 2024
We are excited to announce the release of the Solidity Compiler v0.8.27. This newest version of the compiler brings support for custom errors in require to the legacy pipeline, optimizer improvements such as caching of optimized IR that will speed up compilation via IR, several bugfixes, and more! Notable Features Legacy Support for require with Custom Errors Custom errors in Solidity provide a convenient and gas-efficient way to explain to the user why an operation failed. Support for using errors with the require function...
Read moreUnderhanded Solidity Contest 2024 Announcement
Posted by Vishwa Mehta on July 31, 2024
The Underhanded Solidity Contest is back with a bang in 2024! After two successful seasons of the contest in 2020 and 2022 inspired by the first edition in 2017, we’re back with an exciting challenge for this year. Before we dive into the 2024 theme, let's do a quick refresher on what the Underhanded Solidity Contest is. The Underhanded Solidity Contest is about writing seemingly innocent code that has malicious mechanisms or hidden backdoors. Through this contest, we aim to: Raise awareness about smart...
Read moreA Closer Look at Via-IR
Posted by Solidity Team on July 12, 2024
In its current default settings, the Solidity compiler does not transform the code into any intermediate representation (IR) for generating EVM bytecode but does it in a direct fashion. There is, however, the more recently developed via-IR compilation pipeline , which employs the Yul programming language as an intermediate representation. On a high level, the compilation steps of the two pipelines look like the following: compilation-pipelines In this blog post, we will be taking a closer look at the details of via-IR, understand...
Read moreSolidity 0.8.26 Release Announcement
Posted by Solidity Team on May 21, 2024
We are excited to announce the release of the Solidity Compiler v0.8.26. This newest version of the compiler brings support for custom errors in require, improved default Yul Optimizer sequence that will speed up compilation via IR, several bugfixes, and more! Notable Features Custom errors support in require Custom errors in Solidity provide a convenient and gas-efficient way to explain to the user why an operation failed. Solidity 0.8.26 introduces a highly anticipated feature that enables the usage of errors with require function. The require function...
Read moreSolidity Developer Survey 2023 Results
Posted by Vishwa Mehta on April 3, 2024
EDIT REMARK: We noticed a minor error in the graphical representation of [1] popular Ethereum-specific IDEs and [2] Sourcify usage. The results in this blog post and corresponding graphical data in the slide deck has been updated to reflect this rectification that represents the survey data accurately. We are thrilled to share with you the Solidity Developer Survey 2023 results! In this blog post, we will be going over key insights and detailed analysis of the various sections of the survey. Before...
Read moreSolidity 0.8.25 Release Announcement
Posted by Solidity Team on March 14, 2024
Introducing the newest version of the Solidity Compiler: v0.8.25. This is a minor release following the Dencun hard-fork on Ethereum mainnet that occurred on March 13, 2024 at 13:55 UTC. Dencun Upgrade The Dencun upgrade combines changes to both Ethereum's consensus and execution layers. The full list of protocol changes can be found in EIP-7569. With Dencun now live on mainnet, we are accordingly making cancun the default EVM version the compiler will emit code for. MCOPY in code generator The previous release made the mcopy() builtin...
Read moreTransient 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 more