Repository navigation
Requires Zig 0.17.0.
Solidity compatibility target: 0.8.36.
Changed
- Lower-level Zig ABI size and offset queries and
ReturnInfo.estimated_return_sizenow useu256instead ofu32. - Direct calls to
compileSolidityStandardJsonAllocand
compileYulStandardJsonAllocnow take asource_errorsslice after
loaded_sources; pass&.{}when source resolution produced no diagnostics.
Fixed
- Preserve ordinary Solidity typing when
settings.experimentalis enabled
(#30). - Traverse deep inheritance and override graphs without fixed recursion limits,
and keep the stdio service running after internal compiler failures
(#31). - Validate each source URL candidate against
keccak256before accepting it,
continuing to later URLs after a hash mismatch. Retain hash diagnostics
alongside callback failures andStackTooDeepexceptions in sequential and
parallel compilation (#32). - Use cycle-aware mapping detection so recursive structs are not misclassified
as containing mappings (#33). - Materialize string and hexadecimal literals when wrapping fixed bytes in
user-defined value types (#34). - Allow state variable writes qualified by contract name, including immutables
and internal function pointers (#35). - Support deleting immutable variables during construction
(#36). - Match solc 0.8.36 version-range comparisons for large numeric pragma
components (#37). - Keep ABI calldata sizes, strides, and offsets exact across the 4 GiB boundary
(#38). - Keep static external-call return size totals exact across the 4 GiB boundary
(#39).
Compatibility
- ABI calldata layouts and static return size totals above
2^32 - 1bytes use
exactu256arithmetic instead of reproducing solc 0.8.36's 32-bit wrapping.
See the documented compatibility exceptions.