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
LJ
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 Herveou
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
xermicus
ad3315346c
release resolc-0.1.0-dev.13 ( #279 )
2025-04-08 09:10:13 +02:00
dependabot[bot]
516f79ee0f
Bump tokio from 1.43.0 to 1.44.2 ( #281 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.43.0 to 1.44.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases ">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.44.2</h2>
<p>This release fixes a soundness issue in the broadcast channel. The
channel
accepts values that are <code>Send</code> but <code>!Sync</code>.
Previously, the channel called
<code>clone()</code> on these values without synchronizing. This release
fixes the channel
by synchronizing calls to <code>.clone()</code> (Thanks Austin Bonander
for finding and
reporting the issue).</p>
<h3>Fixed</h3>
<ul>
<li>sync: synchronize <code>clone()</code> call in broadcast channel (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7232 ">#7232</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7232 ">#7232</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7232 ">tokio-rs/tokio#7232</a></p>
<h2>Tokio v1.44.1</h2>
<h1>1.44.1 (March 13th, 2025)</h1>
<h3>Fixed</h3>
<ul>
<li>rt: skip defer queue in <code>block_in_place</code> context (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7216 ">#7216</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7216 ">#7216</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7216 ">tokio-rs/tokio#7216</a></p>
<h2>Tokio v1.44.0</h2>
<h1>1.44.0 (March 7th, 2025)</h1>
<p>This release changes the <code>from_std</code> method on sockets to
panic if a blocking socket is provided. We determined this change is not
a breaking change as Tokio is not intended to operate using blocking
sockets. Doing so results in runtime hangs and should be considered a
bug. Accidentally passing a blocking socket to Tokio is one of the most
common user mistakes. If this change causes an issue for you, please
comment on <a
href="https://redirect.github.com/tokio-rs/tokio/issues/7172 ">#7172</a>.</p>
<h3>Added</h3>
<ul>
<li>coop: add <code>task::coop</code> module (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7116 ">#7116</a>)</li>
<li>process: add <code>Command::get_kill_on_drop()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7086 ">#7086</a>)</li>
<li>sync: add <code>broadcast::Sender::closed</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6685 ">#6685</a>,
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7090 ">#7090</a>)</li>
<li>sync: add <code>broadcast::WeakSender</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7100 ">#7100</a>)</li>
<li>sync: add <code>oneshot::Receiver::is_empty()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7153 ">#7153</a>)</li>
<li>sync: add <code>oneshot::Receiver::is_terminated()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7152 ">#7152</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>fs: empty reads on <code>File</code> should not start a background
read (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7139 ">#7139</a>)</li>
<li>process: calling <code>start_kill</code> on exited child should not
fail (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7160 ">#7160</a>)</li>
<li>signal: fix <code>CTRL_CLOSE</code>, <code>CTRL_LOGOFF</code>,
<code>CTRL_SHUTDOWN</code> on windows (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7122 ">#7122</a>)</li>
<li>sync: properly handle panic during mpsc drop (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7094 ">#7094</a>)</li>
</ul>
<h3>Changes</h3>
<ul>
<li>runtime: clean up magic number in registration set (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7112 ">#7112</a>)</li>
<li>coop: make coop yield using waker defer strategy (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7185 ">#7185</a>)</li>
<li>macros: make <code>select!</code> budget-aware (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7164 ">#7164</a>)</li>
<li>net: panic when passing a blocking socket to <code>from_std</code>
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7166 ">#7166</a>)</li>
<li>io: clean up buffer casts (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7142 ">#7142</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tokio/commit/ec4b1d7215a3e1e91797ad3fb6ba0f7c7f3d2566 "><code>ec4b1d7</code></a>
chore: forward port 1.43.x</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/e3c3a56718d201fb7bb430567f05fbb64b2ef082 "><code>e3c3a56</code></a>
Merge branch 'tokio-1.43.x' into forward-port-1.43.x</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/a7b658c35bd40f6811e557aeb97cbb361b612c56 "><code>a7b658c</code></a>
chore: prepare Tokio v1.43.1 release</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/c1c8d1033d637d7027fdc137ec8008c5801cbc0d "><code>c1c8d10</code></a>
Merge remote-tracking branch 'origin/tokio-1.38.x' into
forward-port-1.38.x</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/aa303bc2051f7c21b48bb7bfcafe8fd4f39afd21 "><code>aa303bc</code></a>
chore: prepare Tokio v1.38.2 release</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/7b6ccb515ff067151ed62db835f735e5653f8784 "><code>7b6ccb5</code></a>
chore: backport CI fixes</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/4b174ce2c95fe1d1a217917db93fcc935e17e0da "><code>4b174ce</code></a>
sync: fix cloning value when receiving from broadcast channel</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/d413c9c02af8f2b4fea14b769b86484b12f46595 "><code>d413c9c</code></a>
chore: prepare Tokio v1.44.1 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7217 ">#7217</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/addbfb9204be25a8621feb3f20b44a7c1f00edbd "><code>addbfb9</code></a>
rt: skip defer queue in <code>block_in_place</code> context (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7216 ">#7216</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/8182ecf2628d5e80dac52b8ed1ea466dbb0925b9 "><code>8182ecf</code></a>
chore: prepare Tokio v1.44.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7202 ">#7202</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.43.0...tokio-1.44.2 ">compare
view</a></li>
</ul>
</details>
<br />
[](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>
Co-authored-by: xermicus <cyrill@parity.io >
2025-04-08 08:26:06 +02:00
dependabot[bot]
80f94b5c76
Bump openssl from 0.10.71 to 0.10.72 ( #278 )
...
Bumps [openssl](https://github.com/sfackler/rust-openssl ) from 0.10.71
to 0.10.72.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sfackler/rust-openssl/releases ">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.72</h2>
<h2>What's Changed</h2>
<ul>
<li>make set_rsa_oaep_md visible to boringssl config by <a
href="https://github.com/frncs-rss "><code>@frncs-rss</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2372 ">sfackler/rust-openssl#2372</a></li>
<li>Fix typo in openssl-sys build script by <a
href="https://github.com/rushilmehra "><code>@rushilmehra</code></a> in
<a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2375 ">sfackler/rust-openssl#2375</a></li>
<li>Unify the two BoringSSL codepaths a bit and simplify init by <a
href="https://github.com/davidben "><code>@davidben</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2377 ">sfackler/rust-openssl#2377</a></li>
<li>pkey_ctx: Fix link to the corresponding OpenSSL function by <a
href="https://github.com/Jakuje "><code>@Jakuje</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2378 ">sfackler/rust-openssl#2378</a></li>
<li>fix test on MSRV by <a
href="https://github.com/alex "><code>@alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2383 ">sfackler/rust-openssl#2383</a></li>
<li>Add support for AWS-LC to openssl and openssl-sys crates by <a
href="https://github.com/skmcgrail "><code>@skmcgrail</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/1805 ">sfackler/rust-openssl#1805</a></li>
<li>Enable additional capabilities for AWS-LC by <a
href="https://github.com/skmcgrail "><code>@skmcgrail</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2386 ">sfackler/rust-openssl#2386</a></li>
<li>Use --experimental with bindgen-cli with aws-lc build by <a
href="https://github.com/skmcgrail "><code>@skmcgrail</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2389 ">sfackler/rust-openssl#2389</a></li>
<li>Fixed two UAFs and bumped versions for release by <a
href="https://github.com/alex "><code>@alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2390 ">sfackler/rust-openssl#2390</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jakuje "><code>@Jakuje</code></a> made
their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2378 ">sfackler/rust-openssl#2378</a></li>
<li><a href="https://github.com/skmcgrail "><code>@skmcgrail</code></a>
made their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/1805 ">sfackler/rust-openssl#1805</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72 ">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/87085bd67896b7f92e6de35d081f607a334beae4 "><code>87085bd</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2390 ">#2390</a>
from alex/uaf-fix</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/d1a12e21573e95727b2e38b8b65273cb389be7e4 "><code>d1a12e2</code></a>
Fixed two UAFs and bumped versions for release</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/7c7b2e6c9f95e77e56ab37af70b16de75beff387 "><code>7c7b2e6</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2389 ">#2389</a>
from skmcgrail/aws-lc-follow-up</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/34a477bff20cbe43492915338d3c12597430c345 "><code>34a477b</code></a>
Use --experimental with bindgen-cli with aws-lc build</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/d4bf0710640e4725b8b237968040aef3e5f4ab9a "><code>d4bf071</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2386 ">#2386</a>
from skmcgrail/aws-lc-follow-up</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/a86bf670c4cba3ee5531838b52419356791d966e "><code>a86bf67</code></a>
Remove comment</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/705dbfb2ee3f2d7151ff313d840bf558435d4379 "><code>705dbfb</code></a>
Fix test</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/e0df413d46a89303c42e15bf7d4566193b242466 "><code>e0df413</code></a>
Skip final call for LibreSSL 4.1.0 for CCM mode</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/2f1164b5e838d3665dd10a9fac19e22174289ea3 "><code>2f1164b</code></a>
Enable additional capabilities for AWS-LC</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/dde9ffb36071249ff98474eec853fd830aea44f5 "><code>dde9ffb</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/1805 ">#1805</a>
from skmcgrail/aws-lc-support-final</li>
<li>Additional commits viewable in <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72 ">compare
view</a></li>
</ul>
</details>
<br />
[](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>
2025-04-05 12:25:52 +02:00
xermicus
87c1d7a8be
Suport passing arbitrary llvm arguments ( #271 )
...
- Support for passing LLVM command line options via the prcoess input or
providing one or more `--llvm-arg='..'` resolc CLI flag. This allows
more fine-grained control over the LLVM backend configuration.
- Make LLVM initialization idempotent.
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-03 13:21:00 +02:00
xermicus
497dae2494
factor out solc JSON interface crate ( #264 )
...
The differential testing framework will make a second consumer. There
seems to be no re-usable Rust crate for this. But we already have
everything here, just needs a small refactor to make it fully re-usable.
- Mostly decouple the solc JSON-input-output interface types from the
`solidity` frontend crate
- Expose the JSON-input-output interface types in a dedicated crate
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-03-20 17:11:40 +01:00
Alexander Theißen
2fb8beee62
Build LLVM for Windows ( #248 )
...
This PR changes the CI build scripts to also build LLVM for windows.
**It doesn't build `revive` itself for windows**. This will come in a
follow up. But once we have a LLVM binary release the turn around time
will be much quicker for experimenting with the revive windows build.
I manually uploaded the release those changes produce
[here](https://github.com/paritytech/revive-alex-workflowtest/releases/tag/llvm-18.1.8-revive.22f3ceb ).
This enables this PR's CI to find the proper release. This is necessary
because I am also making changes to the folder structure and artifact
naming that the other CI jobs are depending on.
Releases generated from this branch can be inspected here:
https://github.com/paritytech/revive-alex-workflowtest/releases/tag/v0.1.0-dev.12
Summary of changes:
- Change `llvm-builder` to use MSVC toolchain on windows
- Fix `llvm-builder` to work with `.exe` files
- Unify the llvm release jobs into a single one. This removed a lot of
copy pasted code and also speeds up the build by giving each their own
runner.
- Use the LLVM target triple to name the binary releases instead of an
ad-hoc naming convention
- Remove the nested folder hierarchy inside the llvm release. Its just
now a single folder `llvm-<target>` that contains the toolchain.
- Give jobs and workflows consistent names
- Replace all runners bei their `*-latest` counterpart
- Only use `parity-large` to build llvm now. All other jobs use github
runners
2025-02-28 15:06:03 +01:00
xermicus
296a226d0b
integration: add delegate call corner case test ( #243 )
...
Closes #235
---------
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-27 11:10:00 +01:00
xermicus
08f341ccc1
release resolc v0.1.0-dev.12 ( #238 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-26 09:36:28 +01:00
xermicus
a07968205b
llvm-context: modularize compiler builtin functions ( #234 )
...
- Add the revive runtime function interface to minimize boiler plate
code.
- Outline heavily repeated code into dedicated functions to bring down
code size.
- The code size tests builds optimized for size.
- Function attributes are passed as slices.
This significantly brings down the code size for all OpenZeppelin wizard
contracts (using all possible features) compiled against OpenZeppelin
`v5.0.0` with size optimizations.
|contract|| `-Oz` main | `-Oz` PR || `-O3` main | `-O3` PR |
|-|-|-|-|-|-|-|
|erc1155.sol||100K|67K||114K|147K|
|erc20.sol||120K|90K||160K|191K|
|erc721.sol||128K|101K||178K|214K|
|governor.sol||226K|165K||293K|349K|
|rwa.sol||116K|85K||154K|185K|
|stable.sol||116K|86K||155K|192K|
On the flip side this introduces a heavy penalty for cycle optimized
builds. Setting the no-inline attributes for cycle optimized builds
helps a lot but heavily penalizes runtime speed (LLVM does not yet
inline everything properly - to be investigated later on).
Next steps:
- Modularize more functions
- Refactor the YUL function arguments to use pointers instead of values
- Afterwards check if LLVM still has trouble inline-ing properly on O3
or set the no-inline attribute if it does not penalize runtime
performance too bad.
2025-02-25 16:47:01 +01:00
xermicus
bcc8fa892c
update dependencies ( #229 )
2025-02-24 12:45:05 +01:00
xermicus
6c2c633651
release resolc v0.1.0-dev.11 ( #214 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-18 08:08:20 +01:00
xermicus
f3a86588f3
update dependencies ( #210 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-12 13:12:09 +01:00
xermicus
7233738f45
release resolc v0.1.0-dev.10 ( #209 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-11 15:51:52 +01:00
xermicus
a921e425b4
CI: fix and pin geth ( #206 )
2025-02-10 17:39:44 +01:00
xermicus
de3e7bf253
integration: add create2 test case with duplicate salt ( #188 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-04 14:04:14 +01:00
dependabot[bot]
4ef495beea
Bump openssl from 0.10.68 to 0.10.70 ( #190 )
...
Bumps [openssl](https://github.com/sfackler/rust-openssl ) from 0.10.68 to 0.10.70.
- [Release notes](https://github.com/sfackler/rust-openssl/releases )
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.70 )
---
updated-dependencies:
- dependency-name: openssl
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-04 07:28:29 +01:00
xermicus
bfda465c32
remove support for legacy evm assembly ( #186 )
2025-02-03 14:13:43 +01:00
xermicus
1a8a7926e9
implement the coinbase opcode ( #179 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-29 15:24:45 +01:00
xermicus
bec5d60b7c
release resolc-0.1.0-dev.9 ( #178 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-29 12:49:54 +01:00
xermicus
3608a5a143
runtime-api: pass call arguments in registers instead of spilling to stack ( #174 )
...
Companion to paritytech/polkadot-sdk#7319
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-28 12:45:54 +01:00
Cyrill Leutwiler
fe1b3258d2
bump crate versions ( #171 )
...
- bump crate versions
- point out the supported polkadot sdk version in the changelog
2025-01-17 17:29:38 +01:00
Cyrill Leutwiler
bd1a22a702
update polkavm to 0.19 ( #167 )
...
paritytech/polkadot-sdk#7203 companion:
- Update the polkavm dependency to the latest version.
- Update the polkadot-sdk to the latest version.
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-17 16:59:45 +01:00
Cyrill Leutwiler
cec283986f
llvm-builder: do not build clang by default ( #168 )
...
We only need LLD for cross compilation. This significantly reduces the LLVM build times in a cross compilation scenario. Update the README as a drive-by.
2025-01-17 16:03:04 +01:00
Cyrill Leutwiler
3e7579580b
vet workspace dependencies ( #163 )
...
- Update the used workspace dependencies.
- Remove the unused workspace dependencies.
- Add the machete CI workflow.
2025-01-15 20:14:54 +01:00
Cyrill Leutwiler
ad805543b3
call and create set uncapped resource limits ( #161 )
...
- polkadot-sdk#6890 companion
- Adjust the gas price constant for the required polkadot-sdk version as a drive-by
2025-01-15 17:32:31 +01:00
Cyrill Leutwiler
7f81f37e0c
revive llvm builder utility ( #154 )
...
Pre-eliminary support for LLVM releases and resolc binary releases by streamlining the build process for all supported hosts platforms.
- Introduce the revive-llvm-builder crate with the revive-llvm builder utilty.
- Do not rely on the LLVM dependency in $PATH to decouple the system LLVM installation from the LLVM host dependency.
- Fix the emscripten build by decoupling the host and native LLVM dependencies. Thus allowing a single LLVM emscripten release that can be used on any host platform.
- An example Dockerfile building an alpine container with a fully statically linked resolc ELF binary.
- Remove the Debian builder utilities and workflow.
2025-01-13 15:58:27 +01:00
Cyrill Leutwiler
952c5cc894
resolc-0.1.0-dev.7 ( #143 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-20 14:33:08 +01:00