# Solidity 0.8.38 is out!

**URL:** <https://forum.soliditylang.org/t/solidity-0-8-38-is-out/3773>\
**Category:** Announcements\
**Created:** [October 22, 2026, 12:28pm UTC](https://forum.soliditylang.org/t/solidity-0-8-38-is-out/3773 "2026-10-22T12:28:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![czepluch](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.soliditylang.org/czepluch/32/1874_2.png) [@czepluch](https://forum.soliditylang.org/u/czepluch)\
**Post date:** [October 22, 2026, 12:28pm UTC](https://forum.soliditylang.org/t/solidity-0-8-38-is-out/3773/1 "2026-10-22T12:28:27Z")

</div>

Solidity v0.8.38 fixes a low-severity bug in the Yul optimizer, makes compilation with the Yul optimizer faster, and warns about identifiers in Yul and inline assembly that are going to be reserved starting from the Amsterdam EVM version.

## Yul optimizer bug fix

- When a Yul variable used to compute memory or storage addresses was reassigned, the Yul optimizer did not always notice that its knowledge about those addresses had gone stale.
- As a result, a load could be replaced with an outdated value, or a needed store could be removed.
- Versions 0.8.19 to 0.8.37 are affected, only with the Yul optimizer enabled.
- With `--via-ir`, any code may be affected. With the default evmasm pipeline, only compiler-generated Yul utility functions and some inline assembly blocks may be affected.
- The fix changed no bytecode in verified contracts on [Sourcify](https://sourcify.dev/), which suggests the bug is very rare.
- The write-up has the details and explains how to check your contracts: [Yul Optimizer Knowledge Base Stale Bookkeeping Bug](https://soliditylang.org/blog/2026/10/22/yul-optimizer-knowledge-base-stale-bookkeeping-bug/)

## Other changes

- The release improves the performance of the `DataFlowAnalyzer`, which several Yul optimizer steps are built on. As a result, compilation with the Yul optimizer enabled is faster.
- In the IR pipeline, the function dispatcher now uses one fewer instruction to check that the calldata is long enough to hold a function selector.
- The compiler now warns when `swapn`, `dupn` or `exchange` is used as an identifier in Yul or inline assembly. [EIP-8024](https://eips.ethereum.org/EIPS/eip-8024) adds opcodes with these names in the Amsterdam network upgrade, and the names become reserved starting from the Amsterdam EVM version. Solidity identifiers are not affected.

## Links

- Release post: [Solidity 0.8.38 Release Announcement | Solidity Programming Language](https://soliditylang.org/blog/2026/10/22/solidity-0.8.38-release-announcement/)
- Full changelog and downloads: [Release Version 0.8.38 · argotorg/solidity · GitHub](https://github.com/argotorg/solidity/releases/tag/v0.8.38)
