Commit Graph
142 Commits
Author SHA1 Message Date
xermicus ca3c770228 release resolc v1.4.0 (#573)
resolc v1.4.0

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_version` field in `--standard-json`
output and the `resolc_version` field in `--combined-json` output, both
of which stopped being populated in `v0.4.0`.
[#557](https://github.com/paritytech/revive/pull/557)
- ICE triggered by `--disable-solc-optimizer --newyork` where inlined
loops could emit an unterminated basic block in the inlined entrypoint.
[#561](https://github.com/paritytech/revive/pull/561)
- `--newyork`: dead-store elimination could drop a store whose memory
expansion an intervening `msize()` observes, so `msize()` read a stale
(unexpanded) value.
[#565](https://github.com/paritytech/revive/pull/565)
- `--newyork`: dead-store elimination could drop a store that a later
overlapping unaligned `mload` reads, returning zeroed memory instead of
the stored bytes. [#563](https://github.com/paritytech/revive/pull/563)
- `--newyork`: an unaligned full-word `mload`/`mstore` overlapping a
word kept native (little-endian) by the heap optimization returned
byte-swapped bytes.
[#562](https://github.com/paritytech/revive/pull/562)
- `--newyork`: a `calldatacopy`/`codecopy`/`returndatacopy` to a dynamic
destination that could overwrite the free-memory-pointer word truncated
a subsequent `mload(0x40)` to `0`.
[#564](https://github.com/paritytech/revive/pull/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](https://github.com/paritytech/revive/pull/567)
- `--newyork`: an unaligned `mstore` corrupting the free-memory-pointer
word let a later store through the corrupted pointer silently succeed
where EVM runs out of gas.
[#566](https://github.com/paritytech/revive/pull/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 `uint8` loop variable
(e.g. `array[i]`/`array[i + 1]`), compiled with `--newyork` at `-Oz`
with the solc optimizer disabled.
[#570](https://github.com/paritytech/revive/pull/570)

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-07-11 10:27:54 +02:00
xermicus 541955d31b add integration test for i32 operand overflow in PVM linker const fold (#552)
Closes #551

---------

Signed-off-by: xermicus <cyrill@parity.io>
2026-06-25 18:01:54 +02:00
xermicus fb0e9e6a30 release resolc v1.3.0 (#548)
## v1.3.0

Supported `polkadot-sdk` rev: `2604.2.0`

### Added

- The newyork IR code size optimization pipeline, selectable via the
`--newyork` CLI flag or the `settings.polkavm.newyork` standard JSON
input field.
This can reduce code size by up to 50%. Considered a new and
experimental feature, switched off by default.
[#519](https://github.com/paritytech/revive/pull/519)

### Changed

- The latest supported `polkadot-sdk` version is now `2604.2.0`

Signed-off-by: xermicus <cyrill@parity.io>
2026-06-19 11:50:41 +02:00
98d818f958 The new Yul optimizer toolkit (#519)
This PR introduces powerful code size optimizations. This is achieved
with an additional IR layer in between Yul and LLVM IR. It works quite
well (see below for a comparison) because it captures optimization gains
that neither solc nor LLVM can realize.

The feature is gated behind `--newyork` or a corresponding standard JSON
input setting and **off by default**.

### How it works

We implemented an SSA IR modelled after or inspired by the [MLIR SCF
dialect](https://mlir.llvm.org/docs/Dialects/SCFDialect/). Yul is
translated into this IR and the IR implements mainly the following
optimizations:

- **Type narrowing**: narrows 256-bit values to I1..I160 where provable
(bidirectional + interprocedural), so LLVM emits native 32/64-bit ops
instead
    of software 256-bit arithmetic.
- **FMP range proof**: exposes the `mload(0x40) < heap_size` bound to
LLVM
IPSCCP, eliminating trailing overflow checks on FMP-derived offsets.
Single
    largest code-size contributor.
- **Heap analysis**: skips big-endian byte-swaps where native
little-endian
    layout is safe.
  - **mem_opt / keccak fusion+folding**, **compound outlining** (mapping
sload/sstore), **guard narrowing**, **inlining** tuned for PolkaVM, and
    **exact + fuzzy function dedup**.

### Results
The optimizations implemented with the newyork IR bring substantial code
size improvements.
  - Integration contracts: approximately **-20% to -50%** code size.
  - OpenZeppelin Wizard corpus: around **-47%** code size.

This table shows the code size improvements on various OpenZeppelin ERC
implementations, taken from their [contracts
wizard](https://wizard.openzeppelin.com/), with almost all features
enabled.

| Contract | Default: (bytes) | With `--newyork`: (bytes) | Reduction |
|---|---:|---:|---:|
| erc1155 | 59,206 | 30,649 | -48.2% |
| erc20 | 81,697 | 42,893 | -47.5% |
| erc721 | 92,052 | 49,423 | -46.3% |
| oz_gov | 141,861 | 81,159 | -42.8% |
| oz_rwa | 77,274 | 37,975 | -50.9% |
| oz_simple_erc20 | 29,950 | 16,554 | -44.7% |
| oz_stable | 82,117 | 39,032 | -52.5% |
| **Total** | **564,157** | **297,685** | **-47.2%** |

We believe this to be a reasonably representative dataset and conclude
that the newyork IR achieves drastic code size reductions on real world
dApp implementations.

### Methodology, security and runtime performance

Since the main contributors to these improvements are the FMP range
proofs and the type narrowing, we don't expect big runtime performance
regressions (it may even benefit runtime performance in some cases).

The PR also includes docs
(`book/src/developer_guide/newyork_{optimizer,ir}.md`) and many new
integration tests, including regression tests for known FMP soundness
traps.

The PR was authored collaboratively and reviewed extensively by the
`revive` maintainers, as well as Claude Opus, Claude Fable, Qwen,
Minimax and Deepseek LLMs, over a span of many months.

The `newyork` compiler pipeline introduces no new regressions over our
integration and differential test suites (containing over 30000 test
cases). This was achieved by careful manual reviews and many LLM bughunt
loops. Additionally, a final security review by Anthropic's Fable 5 LLM
found no remaining soundness issues. Nonetheless, like any brand new
software, please consider this an experimental feature upon release.

---------

Signed-off-by: xermicus <bigcyrill@hotmail.com>
Signed-off-by: xermicus <cyrill@parity.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: neo <me@90f9.org>
Co-authored-by: LJ <81748770+elle-j@users.noreply.github.com>
2026-06-17 12:35:16 +02:00
xermicus 998ec823d5 bump cargo dependencies (#545)
- Update PVM to fix a downstream bug.
- Update the polkadot-sdk to get rid of most retester exceptions.

Signed-off-by: xermicus <cyrill@parity.io>
2026-06-17 07:45:59 +02:00
dependabot[bot] 99d57b1790 Bump tar from 0.4.45 to 0.4.46 (#538)
Bumps [tar](https://github.com/composefs/tar-rs) from 0.4.45 to 0.4.46.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/composefs/tar-rs/releases">tar's
releases</a>.</em></p>
<blockquote>
<h2>0.4.46</h2>
<h2>Security</h2>
<ul>
<li>archive: Fix another PAX header desync (GHSA-3cv2-h65g-fgmm) by <a
href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/454">composefs/tar-rs#454</a></li>
</ul>
<p>See also <a
href="https://github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm">https://github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm</a></p>
<h2>Other changes</h2>
<ul>
<li>ci: Fix and re-enable reverse dependency testing by <a
href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/444">composefs/tar-rs#444</a></li>
<li>Update astral-tokio-tar requirement from 0.5 to 0.6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/composefs/tar-rs/pull/446">composefs/tar-rs#446</a></li>
<li>Update some links by <a
href="https://github.com/atouchet"><code>@​atouchet</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/445">composefs/tar-rs#445</a></li>
<li>Add support of absolute paths by <a
href="https://github.com/zxvfc"><code>@​zxvfc</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/426">composefs/tar-rs#426</a></li>
<li>docs: Expand notes on concurrent mutations and following symlinks by
<a href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in
<a
href="https://redirect.github.com/composefs/tar-rs/pull/453">composefs/tar-rs#453</a></li>
<li>Update repo links by <a
href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/451">composefs/tar-rs#451</a></li>
<li>ci: Add crates.io trusted publishing workflow by <a
href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/456">composefs/tar-rs#456</a></li>
<li>Release 0.4.46 by <a
href="https://github.com/cgwalters"><code>@​cgwalters</code></a> in <a
href="https://redirect.github.com/composefs/tar-rs/pull/455">composefs/tar-rs#455</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
made their first contribution in <a
href="https://redirect.github.com/composefs/tar-rs/pull/446">composefs/tar-rs#446</a></li>
<li><a href="https://github.com/atouchet"><code>@​atouchet</code></a>
made their first contribution in <a
href="https://redirect.github.com/composefs/tar-rs/pull/445">composefs/tar-rs#445</a></li>
<li><a href="https://github.com/zxvfc"><code>@​zxvfc</code></a> made
their first contribution in <a
href="https://redirect.github.com/composefs/tar-rs/pull/426">composefs/tar-rs#426</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46">https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/composefs/tar-rs/commit/fc459c149f83bf4daceaa52e17d351989002e1a9"><code>fc459c1</code></a>
Release 0.4.46</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/43e05a85e053d5e64eeda0b04e279be8686419b6"><code>43e05a8</code></a>
ci: Add crates.io trusted publishing workflow</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/bba5666997d95dcd89a9d38235709a1d5e44565b"><code>bba5666</code></a>
Update repo links</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/cd94c46e0d74fbcc50eea3f30665a1b1159254cc"><code>cd94c46</code></a>
docs: Document TOCTOU / concurrent-mutation threat model</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/1b4997cf5ef115f8d82680016c28490b5645b9c7"><code>1b4997c</code></a>
builder: Expand docs for follow_symlinks and append_dir_all</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/bab14dd84b411ac16ecb56d4f2d2f7bfb88a9838"><code>bab14dd</code></a>
archive: Fix another PAX header desync (GHSA-3cv2-h65g-fgmm)</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/2349b494827807791473f3c6ca9b2fc5ef274cdb"><code>2349b49</code></a>
Add support of absolute paths</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/39d031184127427bd9a740b7e20afd31deead928"><code>39d0311</code></a>
Update some links</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/59d803e2f1ed39272c4c1d1cdb04d799280b3335"><code>59d803e</code></a>
Update astral-tokio-tar requirement from 0.5 to 0.6</li>
<li><a
href="https://github.com/composefs/tar-rs/commit/8296b9a88cfcdbdd1e3b59cd820899b35e6151e1"><code>8296b9a</code></a>
ci: Fix and re-enable reverse dependency testing (<a
href="https://redirect.github.com/composefs/tar-rs/issues/444">#444</a>)</li>
<li>See full diff in <a
href="https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tar&package-manager=cargo&previous-version=0.4.45&new-version=0.4.46)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 08:28:56 +02:00
xermicus b2c025faad release resolc v1.2.0 (#534)
Supported `polkadot-sdk` rev: `2603`

### Changed

- Updated `LLVM` from `21.1.8` to LLVM `22.1.4`

### Added

- Support for solc v0.8.35.

### Fixed

- A constant folding bug causing incorrect translation of a signed
remainder edge case. The affected pattern (Solidity % or Yul smod):
  - SREM over the two constant operands `type(int256).min` and `-1`.
- At least one of the two constants needs folding (i.e. not just
`type(int256).min % -1`),
and is written specifically such that solc doesn't fold but LLVM does,
resulting in UB (signed-overflow).
- Fix `mulmod` returning out-of-range result for large moduli.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-05-28 23:20:11 +02:00
dependabot[bot] dd39bb8198 Bump openssl from 0.10.79 to 0.10.80 (#521)
Bumps [openssl](https://github.com/rust-openssl/rust-openssl) from
0.10.79 to 0.10.80.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-openssl/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.80</h2>
<h2>What's Changed</h2>
<ul>
<li>Prefer Homebrew openssl@4 and stop looking for openssl@1.1 by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2633">rust-openssl/rust-openssl#2633</a></li>
<li>Fix output buffer overflow in cipher_update_inplace for AES
key-wrap-with-padding by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2638">rust-openssl/rust-openssl#2638</a></li>
<li>Release openssl 0.10.80 and openssl-sys 0.9.116 by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2639">rust-openssl/rust-openssl#2639</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.79...openssl-v0.10.80">https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.79...openssl-v0.10.80</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/35be7ae43b207fc0448a648a21e9156bc360c9af"><code>35be7ae</code></a>
Release openssl 0.10.80 and openssl-sys 0.9.116 (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2639">#2639</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/19eceb26f2404aae187e5444e65c404ebc1348a7"><code>19eceb2</code></a>
Fix output buffer overflow in cipher_update_inplace for AES
key-wrap-with-pad...</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/b460eb378c335610df5395a251408ad70bb60d42"><code>b460eb3</code></a>
Prefer Homebrew openssl@4 and stop looking for openssl@1.1 (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2633">#2633</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.79...openssl-v0.10.80">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.79&new-version=0.10.80)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-22 11:06:50 +02:00
dependabot[bot] 5042c14973 Bump openssl from 0.10.78 to 0.10.79 (#517)
Bumps [openssl](https://github.com/rust-openssl/rust-openssl) from
0.10.78 to 0.10.79.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-openssl/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.79</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump actions/cache from 5.0.4 to 5.0.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2610">rust-openssl/rust-openssl#2610</a></li>
<li>Try to fix OpenSSL 1.1.0l download by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2614">rust-openssl/rust-openssl#2614</a></li>
<li>Require &amp;mut BigNumContextRef for EcPointRef mul/invert by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2615">rust-openssl/rust-openssl#2615</a></li>
<li>Fix UB in EcGroupRef::generator on groups without a generator by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2617">rust-openssl/rust-openssl#2617</a></li>
<li>Replace <code>use libc::*;</code> with targeted imports in
openssl-sys by <a href="https://github.com/alex"><code>@​alex</code></a>
in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2618">rust-openssl/rust-openssl#2618</a></li>
<li>Add PKeyRef::is_a and KeyType for name-based key identification by
<a href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in
<a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2619">rust-openssl/rust-openssl#2619</a></li>
<li>Add PKey::{public,private}_key_from_raw_bytes_ex by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2620">rust-openssl/rust-openssl#2620</a></li>
<li>Bump MSRV to 1.80 by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2622">rust-openssl/rust-openssl#2622</a></li>
<li>Drop once_cell in favor of std::sync::{LazyLock, OnceLock} by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2623">rust-openssl/rust-openssl#2623</a></li>
<li>Add PKey::private_key_from_seed for ML-DSA/ML-KEM key import by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2621">rust-openssl/rust-openssl#2621</a></li>
<li>parallelize more builds in CI for cold caches by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2625">rust-openssl/rust-openssl#2625</a></li>
<li>Add PKeyRef::seed_into for ML-DSA/ML-KEM seed extraction by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2626">rust-openssl/rust-openssl#2626</a></li>
<li>Fix process abort when verify/PSK callbacks fire after SSL_CTX swap
by <a href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2624">rust-openssl/rust-openssl#2624</a></li>
<li>Bind OSSL_PARAM_modified and use it for seed_into by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2628">rust-openssl/rust-openssl#2628</a></li>
<li>Add PkeyCtxRef::set_context_string for ML-DSA by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2629">rust-openssl/rust-openssl#2629</a></li>
<li>Reject non-UTF-8 OCSP responder URLs in X509Ref::ocsp_responders by
<a href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2631">rust-openssl/rust-openssl#2631</a></li>
<li>Fix output buffer overflow for AES key-wrap-with-padding ciphers by
<a href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2630">rust-openssl/rust-openssl#2630</a></li>
<li>Release openssl 0.10.79 and openssl-sys 0.9.115 by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2632">rust-openssl/rust-openssl#2632</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79">https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/649f2d9e37f3aa701e20bd8ab5cd7eb5afa0a90f"><code>649f2d9</code></a>
Release openssl 0.10.79 and openssl-sys 0.9.115 (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2632">#2632</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/257f9b20c001b888986f93579f118fa2a57d4f45"><code>257f9b2</code></a>
Fix output buffer overflow for AES key-wrap-with-padding ciphers (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2630">#2630</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/d43e9179b1885fc66269a42361cc7a80f631ac8f"><code>d43e917</code></a>
Reject non-UTF-8 OCSP responder URLs in X509Ref::ocsp_responders (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2631">#2631</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/f46519c8694a3e121091dafe38aab77c2f756546"><code>f46519c</code></a>
Add PkeyCtxRef::set_context_string for ML-DSA (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2629">#2629</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/ad9ae312771f898749a9471549519d45eba6a033"><code>ad9ae31</code></a>
Bind OSSL_PARAM_modified and use it for seed_into (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2628">#2628</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/4e25c9be20dae1e78f1a3815950cd0973addae82"><code>4e25c9b</code></a>
Fix process abort when verify/PSK callbacks fire after SSL_CTX swap (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2624">#2624</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/3dd8f425ef34a069b5bec46f3971b67db1c295c7"><code>3dd8f42</code></a>
Add PKeyRef::seed_into for ML-DSA/ML-KEM seed extraction (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2626">#2626</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/2c5e5a8f1483d5ec85580c07f721de9057d58e69"><code>2c5e5a8</code></a>
parallelize more builds in CI for cold caches (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2625">#2625</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/668559171168538cd190574373abfc9e120263ca"><code>6685591</code></a>
Add PKey::private_key_from_seed for ML-DSA/ML-KEM key import (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2621">#2621</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/8f8fdce627fb3c553673b8c688d9f1dc10ea0cc8"><code>8f8fdce</code></a>
Drop once_cell in favor of std::sync::{LazyLock, OnceLock} (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2623">#2623</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.78&new-version=0.10.79)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 08:37:37 +02:00
kvpanch 8326aa3aed Update LLVM from 21 to 22 (#505) 2026-04-28 14:28:14 -04:00
dependabot[bot]andxermicus 72d47e4d26 Bump openssl from 0.10.77 to 0.10.78 (#508)
Bumps [openssl](https://github.com/rust-openssl/rust-openssl) from
0.10.77 to 0.10.78.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-openssl/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.78</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix Suite B flag assignments in verify.rs by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2592">rust-openssl/rust-openssl#2592</a></li>
<li>Use cvt_p for OPENSSL_malloc error handling by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2593">rust-openssl/rust-openssl#2593</a></li>
<li>Mark BIO_get_mem_data on AWS-LC to be unsafe by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2594">rust-openssl/rust-openssl#2594</a></li>
<li>Set timeout for package installation step by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2595">rust-openssl/rust-openssl#2595</a></li>
<li>Panic in Crypter::new when IV is required but not provided by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2596">rust-openssl/rust-openssl#2596</a></li>
<li>openssl 4 support by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2591">rust-openssl/rust-openssl#2591</a></li>
<li>Avoid panic for overlong OIDs by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2598">rust-openssl/rust-openssl#2598</a></li>
<li>Fix dangling stack pointer in custom extension add callback by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2599">rust-openssl/rust-openssl#2599</a></li>
<li>Add support for LibreSSL 4.3.x by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2603">rust-openssl/rust-openssl#2603</a></li>
<li>fix inverted bounds assertion in AES key unwrap by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2604">rust-openssl/rust-openssl#2604</a></li>
<li>Reject oversized length returns from password callback trampoline by
<a href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2605">rust-openssl/rust-openssl#2605</a></li>
<li>Validate callback-returned lengths in PSK and cookie trampolines by
<a href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2607">rust-openssl/rust-openssl#2607</a></li>
<li>Error for short out in MdCtxRef::digest_final() by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2608">rust-openssl/rust-openssl#2608</a></li>
<li>Check derive output buffer length on OpenSSL 1.1.x by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2606">rust-openssl/rust-openssl#2606</a></li>
<li>Release openssl v0.10.78 and openssl-sys v0.9.114 by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/rust-openssl/rust-openssl/pull/2609">rust-openssl/rust-openssl#2609</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.77...openssl-v0.10.78">https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.77...openssl-v0.10.78</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/a6debf535674c9a073f455158743e6ba094cf1b4"><code>a6debf5</code></a>
Release openssl v0.10.78 and openssl-sys v0.9.114 (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2609">#2609</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/09b425e5f59a2466d806e71a83a9a449c914c596"><code>09b425e</code></a>
Check derive output buffer length on OpenSSL 1.1.x (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2606">#2606</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/826c3888b77add418b394770e2b2e3a72d9f92fe"><code>826c388</code></a>
Error for short out in MdCtxRef::digest_final() (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2608">#2608</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/1d109020d98fff2fb2e45c39a373af3dff99b24c"><code>1d10902</code></a>
Validate callback-returned lengths in PSK and cookie trampolines (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2607">#2607</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/5af6895c907773699f37f583f409b862284062b1"><code>5af6895</code></a>
Reject oversized length returns from password callback trampoline (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2605">#2605</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/718d07ff8ff7be417d5b7a6a0047f1607520b3b6"><code>718d07f</code></a>
fix inverted bounds assertion in AES key unwrap (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2604">#2604</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/53cc69d2f3f0d7f19e46fe49c5ffb523785a3664"><code>53cc69d</code></a>
Add support for LibreSSL 4.3.x (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2603">#2603</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/0b41e793d6740ed2d6f2395a0c074d02568f9f66"><code>0b41e79</code></a>
Fix dangling stack pointer in custom extension add callback (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2599">#2599</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/cbdedf8105bfcce218fcdc09440d090431914710"><code>cbdedf8</code></a>
Avoid panic for overlong OIDs (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2598">#2598</a>)</li>
<li><a
href="https://github.com/rust-openssl/rust-openssl/commit/1fc51efa3f63e38a3139e201edf3395e5a10f8ba"><code>1fc51ef</code></a>
openssl 4 support (<a
href="https://redirect.github.com/rust-openssl/rust-openssl/issues/2591">#2591</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.77...openssl-v0.10.78">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.77&new-version=0.10.78)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-04-23 09:53:52 +02:00
dependabot[bot] ff610c284e Bump rand from 0.8.5 to 0.8.6 (#507)
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.8.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md">rand's
changelog</a>.</em></p>
<blockquote>
<h2>[0.8.6] - 2026-04-14</h2>
<p>This release back-ports a fix from v0.10. See also <a
href="https://redirect.github.com/rust-random/rand/issues/1763">#1763</a>.</p>
<h3>Changes</h3>
<ul>
<li>Deprecate feature <code>log</code> (<a
href="https://redirect.github.com/rust-random/rand/issues/1772">#1772</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/rust-random/rand/issues/1763">#1763</a>:
<a
href="https://redirect.github.com/rust-random/rand/pull/1763">rust-random/rand#1763</a>
<a
href="https://redirect.github.com/rust-random/rand/issues/1772">#1772</a>:
<a
href="https://redirect.github.com/rust-random/rand/pull/1772">rust-random/rand#1772</a></p>
<ul>
<li>Drop the experimental <code>simd_support</code> feature.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-random/rand/commit/5309f25bb5e7d21ac01c5b6f476badd06f9cdc3f"><code>5309f25</code></a>
0.8.6 (<a
href="https://redirect.github.com/rust-random/rand/issues/1772">#1772</a>):
update for recent nightly rustc and backport <a
href="https://redirect.github.com/rust-random/rand/issues/1764">#1764</a></li>
<li><a
href="https://github.com/rust-random/rand/commit/1126d03a5cbd725aad239efb0d537c9130a76b26"><code>1126d03</code></a>
When testing rustc 1.36, use compatible dependencies.</li>
<li><a
href="https://github.com/rust-random/rand/commit/143b60280f79a5f1992445b3df0e0599841f9821"><code>143b602</code></a>
Add Cargo.lock.msrv.</li>
<li><a
href="https://github.com/rust-random/rand/commit/9be86f2d8140139800989ac93399b9cd49108fb8"><code>9be86f2</code></a>
Fix cross build test.</li>
<li><a
href="https://github.com/rust-random/rand/commit/5e0d50d7706281ae67e69ff64105baf3c94d6ef8"><code>5e0d50d</code></a>
Drop simd_support.</li>
<li><a
href="https://github.com/rust-random/rand/commit/8ff02f0568d2f8fddda74b47613a3daaa5e2a879"><code>8ff02f0</code></a>
Upgrade cache action.</li>
<li><a
href="https://github.com/rust-random/rand/commit/4ad0cc34fc847d4d59ffdcdfbf189482601aa6b9"><code>4ad0cc3</code></a>
Don't test for unsupported target architecture.</li>
<li><a
href="https://github.com/rust-random/rand/commit/258e6d04a681321e0c4b16e3785063ed9b9e744d"><code>258e6d0</code></a>
Address warning.</li>
<li><a
href="https://github.com/rust-random/rand/commit/9f0e676362f9599941f00bccc5310135b7c19f89"><code>9f0e676</code></a>
Mark some internal traits as potentially unused.</li>
<li><a
href="https://github.com/rust-random/rand/commit/6f123c178eee4563876bdd50f4ac0621b21ce2b8"><code>6f123c1</code></a>
Workaround never constructed and never used warning.</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-random/rand/compare/0.8.5...0.8.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rand&package-manager=cargo&previous-version=0.8.5&new-version=0.8.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 09:32:37 +02:00
xermicus f887e75545 Release resolc v1.1.0 (#504)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-04-13 22:06:26 +02:00
xermicus 255f5cc31b Update dependencies (#503)
- Rust dependencies
- JS dependencies
- Retester submodule

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-04-13 14:59:24 +02:00
dependabot[bot]andxermicus 58e8c7aad6 Bump tar from 0.4.44 to 0.4.45 (#494)
Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.44 to
0.4.45.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/096e3d16d14fefac51bc4d94d616b21546ea8bcc"><code>096e3d1</code></a>
Bump to 0.4.45 (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/443">#443</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/17b1fd84e632071cb8eef9d3709bf347bd266446"><code>17b1fd8</code></a>
archive: Prevent symlink-directory collision chmod attack (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/442">#442</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/de1a5870e603758f430073688691165f21a33946"><code>de1a587</code></a>
archive: Unconditionally honor PAX size (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/441">#441</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/6071cbe74acefa8c8322809bfd43c825e5f16b60"><code>6071cbe</code></a>
ci: Consolidate workflows (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/439">#439</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/ad1fde9edfb9657d17666bbec2933119ce527359"><code>ad1fde9</code></a>
build-sys: Promote unused_code to an error</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/c8cb250e8bc3f28bd69406b396bb8a92b40012c1"><code>c8cb250</code></a>
tests: Squash a warning</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/638c495a480d2a50099d55f445ece9e5f544b49d"><code>638c495</code></a>
ci: Add xtask infra + reverse dependency testing (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/435">#435</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/32a9bbb26468cbdecbf73fe8eb249284d4a718ed"><code>32a9bbb</code></a>
tests: Add RandomReader to exercise partial-read resilience (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/436">#436</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/9c5df0bfd70d1b063516b90fca2cf2e0dbe8b758"><code>9c5df0b</code></a>
Fix GNU long-name extension stream corruption on validation error (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/434">#434</a>)</li>
<li><a
href="https://github.com/alexcrichton/tar-rs/commit/88b1e3b0da65b0c5b9750d1a75516145488f4793"><code>88b1e3b</code></a>
Fix docs typo in header.rs (<a
href="https://redirect.github.com/alexcrichton/tar-rs/issues/431">#431</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/alexcrichton/tar-rs/compare/0.4.44...0.4.45">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tar&package-manager=cargo&previous-version=0.4.44&new-version=0.4.45)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-03-25 11:15:51 +01:00
xermicus 073276696f recursive processes use the current executable by default (#484)
- Recursive processes spawn the currently running executable by default,
removing the annoyance of mixing different compiler builds during
contract compilation.
- Remove the unused `once_cell` dependency.

Signed-off-by: xermicus <bigcyrill@hotmail.com>
2026-02-22 18:14:21 +01:00
dependabot[bot]andxermicus a7ba288ff2 Bump keccak from 0.1.5 to 0.1.6 (#481)
Bumps [keccak](https://github.com/RustCrypto/sponges) from 0.1.5 to
0.1.6.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/RustCrypto/sponges/commit/a8936d9662ca92fd177d289580066ceabb937b0c"><code>a8936d9</code></a>
keccak v0.1.6</li>
<li>See full diff in <a
href="https://github.com/RustCrypto/sponges/compare/keccak-v0.1.5...keccak-v0.1.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=keccak&package-manager=cargo&previous-version=0.1.5&new-version=0.1.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-02-22 15:57:47 +01:00
0cd949aa66 Update code base to use LLVM 21 (#434)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
Co-authored-by: LJ <81748770+elle-j@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-02-06 12:23:48 -05:00
dependabot[bot]andxermicus 927eca8af5 Bump time from 0.3.45 to 0.3.47 (#471)
Bumps [time](https://github.com/time-rs/time) from 0.3.45 to 0.3.47.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/time-rs/time/releases">time's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.47</h2>
<p>See the <a
href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a>
for details.</p>
<h2>v0.3.46</h2>
<p>See the <a
href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">time's
changelog</a>.</em></p>
<blockquote>
<h2>0.3.47 [2026-02-05]</h2>
<h3>Security</h3>
<ul>
<li>
<p>The possibility of a stack exhaustion denial of service attack when
parsing RFC 2822 has been
eliminated. Previously, it was possible to craft input that would cause
unbounded recursion. Now,
the depth of the recursion is tracked, causing an error to be returned
if it exceeds a reasonable
limit.</p>
<p>This attack vector requires parsing user-provided input, with any
type, using the RFC 2822 format.</p>
</li>
</ul>
<h3>Compatibility</h3>
<ul>
<li>Attempting to format a value with a well-known format (i.e. RFC
3339, RFC 2822, or ISO 8601) will
error at compile time if the type being formatted does not provide
sufficient information. This
would previously fail at runtime. Similarly, attempting to format a
value with ISO 8601 that is
only configured for parsing (i.e. <code>Iso8601::PARSING</code>) will
error at compile time.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Builder methods for format description modifiers, eliminating the
need for verbose initialization
when done manually.</li>
<li><code>date!(2026-W01-2)</code> is now supported. Previously, a space
was required between <code>W</code> and <code>01</code>.</li>
<li><code>[end]</code> now has a <code>trailing_input</code> modifier
which can either be <code>prohibit</code> (the default) or
<code>discard</code>. When it is <code>discard</code>, all remaining
input is ignored. Note that if there are components
after <code>[end]</code>, they will still attempt to be parsed, likely
resulting in an error.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>More performance gains when parsing.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>If manually formatting a value, the number of bytes written was one
short for some components.
This has been fixed such that the number of bytes written is always
correct.</li>
<li>The possibility of integer overflow when parsing an owned format
description has been effectively
eliminated. This would previously wrap when overflow checks were
disabled. Instead of storing the
depth as <code>u8</code>, it is stored as <code>u32</code>. This would
require multiple gigabytes of nested input to
overflow, at which point we've got other problems and trivial
mitigations are available by
downstream users.</li>
</ul>
<h2>0.3.46 [2026-01-23]</h2>
<h3>Added</h3>
<ul>
<li>All possible panics are now documented for the relevant
methods.</li>
<li>The need to use <code>#[serde(default)]</code> when using custom
<code>serde</code> formats is documented. This applies
only when deserializing an <code>Option&lt;T&gt;</code>.</li>
<li><code>Duration::nanoseconds_i128</code> has been made public,
mirroring
<code>std::time::Duration::from_nanos_u128</code>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/time-rs/time/commit/d5144cd2874862d46466c900910cd8577d066019"><code>d5144cd</code></a>
v0.3.47 release</li>
<li><a
href="https://github.com/time-rs/time/commit/f6206b050fd54817d8872834b4d61f605570e89b"><code>f6206b0</code></a>
Guard against integer overflow in release mode</li>
<li><a
href="https://github.com/time-rs/time/commit/1c63dc7985b8fa26bd8c689423cc56b7a03841ee"><code>1c63dc7</code></a>
Avoid denial of service when parsing Rfc2822</li>
<li><a
href="https://github.com/time-rs/time/commit/5940df6e72efb63d246ca1ca59a0f836ad32ad8a"><code>5940df6</code></a>
Add builder methods to avoid verbose construction</li>
<li><a
href="https://github.com/time-rs/time/commit/00881a4da1bc5a6cb6313052e5017dbd7daa40f0"><code>00881a4</code></a>
Manually format macros everywhere</li>
<li><a
href="https://github.com/time-rs/time/commit/bb723b6d826e46c174d75cd08987061984b0ceb7"><code>bb723b6</code></a>
Add <code>trailing_input</code> modifier to <code>end</code></li>
<li><a
href="https://github.com/time-rs/time/commit/31c4f8e0b56e6ae24fe0d6ef0e492b6741dda783"><code>31c4f8e</code></a>
Permit <code>W12</code> in <code>date!</code> macro</li>
<li><a
href="https://github.com/time-rs/time/commit/490a17bf306576850f33a86d3ca95d96db7b1dcd"><code>490a17b</code></a>
Mark error paths in well-known formats as cold</li>
<li><a
href="https://github.com/time-rs/time/commit/6cb1896a600be1538ecfab8f233fe9cfe9fa8951"><code>6cb1896</code></a>
Optimize <code>Rfc2822</code> parsing</li>
<li><a
href="https://github.com/time-rs/time/commit/6d264d59c25e3da0453c3defebf4640b0086a006"><code>6d264d5</code></a>
Remove erroneous <code>#[inline(never)]</code> attributes</li>
<li>Additional commits viewable in <a
href="https://github.com/time-rs/time/compare/v0.3.45...v0.3.47">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=time&package-manager=cargo&previous-version=0.3.45&new-version=0.3.47)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-02-06 13:18:06 +01:00
dependabot[bot]andxermicus af1dd4e51e Bump git2 from 0.20.3 to 0.20.4 (#470)
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.20.3 to
0.20.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/git2-rs/blob/git2-0.20.4/CHANGELOG.md">git2's
changelog</a>.</em></p>
<blockquote>
<h2>0.20.4 - 2026-02-02</h2>
<p><a
href="https://github.com/rust-lang/git2-rs/compare/git2-0.20.3...git2-0.20.4">0.20.3...0.20.4</a></p>
<h3>Fixed</h3>
<ul>
<li>Fix undefined behavior when dereferencing empty <code>Buf</code>.
<a
href="https://redirect.github.com/rust-lang/git2-rs/pull/1213">#1213</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/git2-rs/commit/8852d7dabd38d0df6d4524e04a1c2ee520ac7203"><code>8852d7d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/git2-rs/issues/1214">#1214</a>
from weihanglo/backport-from-raw-parts</li>
<li><a
href="https://github.com/rust-lang/git2-rs/commit/0b274f76f70f717c3bda4be1f79ba8e1cb11afd4"><code>0b274f7</code></a>
Bump to 0.20.4</li>
<li><a
href="https://github.com/rust-lang/git2-rs/commit/73a5d5d7c49a7eb9d17c2ab6e40dafe3765ebf4d"><code>73a5d5d</code></a>
Add test for dereference of an empty Buf</li>
<li><a
href="https://github.com/rust-lang/git2-rs/commit/ce566831eb188b0fdb27962e154b8da6103071bf"><code>ce56683</code></a>
fix: check ptr nullity before calling from_raw_parts</li>
<li>See full diff in <a
href="https://github.com/rust-lang/git2-rs/compare/git2-0.20.3...git2-0.20.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=git2&package-manager=cargo&previous-version=0.20.3&new-version=0.20.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: xermicus <cyrill@parity.io>
2026-02-06 11:51:08 +01:00
dependabot[bot] b294bab014 Bump bytes from 1.11.0 to 1.11.1 (#469)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.11.0 to 1.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/bytes/releases">bytes's
releases</a>.</em></p>
<blockquote>
<h2>Bytes v1.11.1</h2>
<h1>1.11.1 (February 3rd, 2026)</h1>
<ul>
<li>Fix integer overflow in <code>BytesMut::reserve</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md">bytes's
changelog</a>.</em></p>
<blockquote>
<h1>1.11.1 (February 3rd, 2026)</h1>
<ul>
<li>Fix integer overflow in <code>BytesMut::reserve</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/bytes/commit/417dccdeff249e0c011327de7d92e0d6fbe7cc43"><code>417dccd</code></a>
Release bytes v1.11.1 (<a
href="https://redirect.github.com/tokio-rs/bytes/issues/820">#820</a>)</li>
<li><a
href="https://github.com/tokio-rs/bytes/commit/d0293b0e35838123c51ca5dfdf468ecafee4398f"><code>d0293b0</code></a>
Merge commit from fork</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/bytes/compare/v1.11.0...v1.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bytes&package-manager=cargo&previous-version=1.11.0&new-version=1.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/revive/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-05 19:24:45 +01:00
xermicus b080c1d86c resolc v1.0.0 (#465)
This marks a milestone: Smart contracts on Polkadot Asset Hub are live
and we release the first compiler version!

Signed-off-by: xermicus <bigcyrill@hotmail.com>
2026-01-29 19:17:08 +01:00
LJ c601377c2d Add integration test for deleting struct (#459)
Differentially tests the behavior of deleting a struct with a member
that do not occupy the full 32-byte slot. From [this
issue](https://github.com/paritytech/contract-issues/issues/118) it was
unclear whether the `delete` was expected to reset only the bytes
occupied or the entire slot. The current behavior of resetting the
entire slot is expected.
2026-01-20 14:34:27 +01:00
xermicus 50e4d47bc6 update Rust dependencies (#456)
Signed-off-by: xermicus <cyrill@parity.io>
2026-01-15 13:55:14 +01:00
xermicus 289af875db remove superfluous byte swap in linkersymbol builtin translation (#455)
- Remove the superfluous byte swap in the `linkersymbol` builtin
translation.
- Support testing the `linkersymbol` builtin translation in the runner
specs.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-01-15 12:43:46 +01:00
xermicus 285065632e remove the revive-explorer (#450)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-01-13 10:43:25 +01:00
xermicus 81ce306735 release v0.6.0 (#445)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2026-01-08 11:45:11 +01:00
xermicus e568a924ae update to polkadot-sdk unstable2507 (#431)
Support for `polkadot-sdk` release `unstable2507`. This release will be
deployed to Kusama and is supposed the first one on Polkadot.

---------

Signed-off-by: xermicus <cyrill@parity.io>
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-12-15 14:02:48 +01:00
LJandxermicus 0742227c5a Implement Yul to LLVM IR compilation benchmarks (#407)
# Description

Closes [#404](https://github.com/paritytech/revive/issues/404)

Adds compilation time benchmarks for:

* Parsing of Yul source code -> AST Object
* Lowering of AST Object -> LLVM IR (unoptimized)

The benchmarks can be run from the root via:

```sh
# Run all benchmarks in the revive-yul crate (parsing + lowering)
make bench-yul
```

HTML reports will be generated under `target/criterion`, and a summary
of the results at
[crates/yul/BENCHMARKS_PARSE_M4PRO.md](https://github.com/paritytech/revive/blob/lj/compilation-benchmarks-yul/crates/yul/BENCHMARKS_PARSE_M4PRO.md)
and
[crates/yul/BENCHMARKS_LOWER_M4PRO.md](https://github.com/paritytech/revive/blob/lj/compilation-benchmarks-yul/crates/yul/BENCHMARKS_LOWER_M4PRO.md)
(currently from running on a Mac M4 Pro).

---------

Co-authored-by: xermicus <cyrill@parity.io>
2025-11-25 12:00:06 +01:00
xermicus d97d094a8a Update the Rust dependencies (#420)
The `Cargo.lock` kept changing locally on all my hosts. Not sure why
exactly - maybe it got forgotten in a recent PR. I took it as an
opportunity to quickly update the Rust dependencies.

---------

Signed-off-by: xermicus <bigcyrill@hotmail.com>
2025-11-21 15:34:21 +01:00
LJ ad61b6e3c9 Implement resolc end-to-end compilation benchmarks (#406)
# Description

Closes [#403](https://github.com/paritytech/revive/issues/403)

Adds compilation time benchmarks for resolc end-to-end.

The benchmarks can be run from the root via:

```sh
make bench-resolc
```

HTML reports will be generated under `target/criterion`, and a summary
of the results at
[crates/resolc/BENCHMARKS_M4PRO.md](https://github.com/paritytech/revive/blob/lj/compilation-benchmarks/crates/resolc/BENCHMARKS_M4PRO.md)
(currently from running on a Mac M4 Pro).
2025-11-19 12:16:07 +01:00
xermicus 046455db06 release v0.5.0 (#401)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-11-03 16:10:20 +01:00
xermicus 42cac55be8 update cargo dependencies (#395)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-10-29 10:01:05 +01:00
xermicus f46bea6a96 llvm-context: do not trap zero length OOB heap access (#389)
Fixes https://github.com/paritytech/contract-issues/issues/120

---------

Signed-off-by: xermicus <cyrill@parity.io>
2025-10-15 22:39:42 +02:00
xermicus 2090830858 release 0.4.1 (#388)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-10-08 14:04:48 +02:00
xermicus 8240163be0 release resolc 0.4.0 (#384)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-10-06 09:12:34 +02:00
xermicus 94ec34c4d5 Separate compilation and linker phases (#376)
Separate between compilation and linker phases to allow deploy time
linking and back-porting era compiler changes to fix #91. Unlinked
contract binaries (caused by missing libraries or missing factory
dependencies in turn) are emitted as raw ELF object.

Few drive by fixes:
- #98
- A compiler panic on missing libraries definitions.
- Fixes some incosistent type forwarding in JSON output (empty string
vs. null object).
- Remove the unused fallback for size optimization setting.
- Remove the broken `--lvm-ir`  mode.
- CI workflow fixes.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
Signed-off-by: xermicus <bigcyrill@hotmail.com>
Signed-off-by: xermicus <cyrill@parity.io>
2025-09-27 20:52:22 +02:00
xermicus 9751481f6b the revive-explorer utility (#364)
A maintainable and more precise version of what was a hacky but useful
script, exploring the compilers YUL lowering unit.

It analyzes a given shared objects from the debug dump and outputs:
- The count of each YUL statement translated.
- A per YUL statement break-down of bytecode size contributed per.
- Estimated `yul-phaser` cost parameters.

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-07-22 09:17:55 +02:00
xermicus ed608699af release resolc v0.3.0 (#354)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-06-28 12:32:48 +02:00
xermicus 1fc3aa1554 release resolc v0.2.0 (#340)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-06-03 15:36:54 +02:00
xermicus 8a3c587bbe solc-json-interface: do not unconditionally skip serialization of custom keys (#337)
The data structure can be used to build the JSON input for `resolc` too.
In that case serializing of provided custom options should not be
dismissed.

Makes the memory settings struct more modular as a drive-by.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-06-03 08:17:54 +02:00
xermicus fa0ad68279 make resolc crate publishable (#334)
- Fetching the commit SHA must not panic if not executed in a git
repository.
- Remove the license printer.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-05-27 14:13:12 +02:00
xermicus 4d659ac2a6 release resolc v0.1.0 (#332)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-05-27 12:06:42 +02:00
xermicus ed9dc60417 bump dependencies (#331)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-05-27 11:24:15 +02:00
xermicus bd4e108bb0 resolc crate (#328)
- Factor the YUL crate out of `revive-solidity`.
- `revive-solidity` is in reality not a Solidity implementation but the
revive solidity compiler driver (`resolc`). By renaming we not only get
this straight but also a binary with the same name as the crate which
should be less confusing.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-05-27 09:48:43 +02:00
Cyrill Leutwiler 0e9e405f21 remove any git dependencies
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-05-09 17:26:20 +02:00
PG Herveou 0421869e4b Replace release 0.1.0-dev.15 with 0.1.0-dev.16 (#314)
add missing patch and rename release
2025-05-08 15:26:10 +02:00
PG Herveouandxermicus 459a786299 v0.1.0-dev.15 release (#311)
Co-authored-by: xermicus <cyrill@parity.io>
2025-05-08 14:09:55 +02:00
xermicus f6a412eef4 release resolc v0.1.0-dev.14 (#289)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-04-24 11:57:46 +02:00
xermicus 6e44488b4f revive-runner: add a utility binary for local contract execution (#284)
I had this in mind for a while but never implemented a standalone binary
so far because I always end up writing an integration test anyways.

However, using a standalone version of the pallet based on the
revive-runner crate is something people filing in bug reports do
anyways, for example:
https://github.com/paritytech/revive/issues/266
https://github.com/paritytech/contract-issues/issues/54
---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2025-04-22 15:34:51 +02:00