Repository navigation
v1.4.0
Changelog
Supported polkadot-sdk rev: 2604.2.0
Added
- Support for solc v0.8.36 and the "Amsterdam" EVM version.
Fixed
- Restored the top-level
revive_versionfield in--standard-jsonoutput and theresolc_versionfield in--combined-jsonoutput, both of which stopped being populated inv0.4.0. #557 - ICE triggered by
--disable-solc-optimizer --newyorkwhere inlined loops could emit an unterminated basic block in the inlined entrypoint. #561 --newyork: dead-store elimination could drop a store whose memory expansion an interveningmsize()observes, somsize()read a stale (unexpanded) value. #565--newyork: dead-store elimination could drop a store that a later overlapping unalignedmloadreads, returning zeroed memory instead of the stored bytes. #563--newyork: an unaligned full-wordmload/mstoreoverlapping a word kept native (little-endian) by the heap optimization returned byte-swapped bytes. #562--newyork: acalldatacopy/codecopy/returndatacopyto a dynamic destination that could overwrite the free-memory-pointer word truncated a subsequentmload(0x40)to0. #564--newyork: a full-width value stored to the free-memory-pointer slot (e.g. a function parameter>= 2^64) was narrowed to 64 bits, inserting a checked truncation that consumed all gas. #567--newyork: an unalignedmstorecorrupting the free-memory-pointer word let a later store through the corrupted pointer silently succeed where EVM runs out of gas. #566- Fixed a bytecode divergence (yet functionally equivalent) between the resolc Linux/macOS builds and the Windows build for contracts with loops indexing array elements at constant offsets from a
uint8loop variable (e.g.array[i]/array[i + 1]), compiled with--newyorkat-Ozwith the solc optimizer disabled. #570
Note for macOS Users
The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.