Radar · Solidity · Archive · Week 11 · Mar 10 – 16, 2025
Solidity 0.8.29 Release Announcement
Worth knowingcompiler
- What changed
- The release introduces experimental support for EVM Object Format, support for custom storage layouts, initial support for ethdebug, and more.
- Production impact
- The source does not say.
- Try it
- Compile a contract with
pragma solidity ^0.8.29;and observe any new compiler warnings or messages. - Source
- soliditylang.org/blog/2025/03/12/solidity-0.8.29-release-announcement
Understand it, then run it
Run it now
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.37;
// This contract demonstrates the experimental custom storage layout syntax.
// It will not compile until Solidity 0.8.29 or later is available.
contract StorageLayoutDemo layout at 2**255 - 42 {
uint256 public x;
uint256 public y;
constructor(uint256 _x, uint256 _y) {
x = _x;
y = _y;
}
}
Tests
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.37;
import "./main.sol";
contract StorageLayoutDemoTest {
StorageLayoutDemo demo;
constructor() {
demo = new StorageLayoutDemo(1, 2);
}
function test_storageValues() public {
require(demo.x() == 1, "x mismatch");
require(demo.y() == 2, "y mismatch");
}
}
The test report when we ran it on Solidity 0.8.37 (solc)
1 of 1 tests passed.
- test_storageValues31,278 gas
- StorageLayoutDemoTest: 880 bytes of bytecode, deployed for 294,114 gas
solc 0.8.37 · prague
Run sends this program (for Solidity, the contract and its tests) to our own sandbox, where it is compiled and run once, with no network, and what it printed or the test report comes back here. Nothing is kept. Runs are counted per visitor for the day so everyone gets a turn; the details are on the legal page.
Written by gpt-oss-20b from the linked source · claims checked against the sources · archive, not individually reviewed