Cyrill Leutwiler
498d68b7e6
wip
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-16 15:42:09 +02:00
xermicus
5003f3e9ac
llvm-context: alloca at the function entry if possible ( #283 )
...
Closes #48
Change the code size test to no longer emit debug info as to get a more
accurate picture.
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-15 15:22:24 +02:00
xermicus
431b5a2ce5
llvm-context: lazy handling of function arguments and immutable data ( #282 )
...
- Lazily load function arguments so that they can be passed as pointers.
- Lazily call the immutable store function to avoid storing zero sized
immutable data.
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-14 15:54:59 +02:00
xermicus
ad3315346c
release resolc-0.1.0-dev.13 ( #279 )
v0.1.0-dev.13
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
Alexander Samusev
9f5443b6d6
Remove path from release json and add sha256 ( #280 )
...
PR addresses
https://github.com/paritytech/revive/issues/162#issuecomment-2783173447
2025-04-08 08:18:35 +02:00
Alexander Samusev
0dafc779ce
ci: update release flow and publish list.json ( #276 )
...
This pull request adds changes described in **this comment**:
- `.github/scripts/json_generator.py` - a small script that generates
several json files for different platforms.
-
[generate_versions.yml](https://github.com/paritytech/revive/compare/as-release-json?expand=1#diff-2aee05b96020ac60943e6dfcb30597e53898f31542aeb570468b970d9a13a5a6 )
- the workflow that runs when release is published, creates info.json
files and pushes them into resolc-bin repo
- `js/build.js` is adjusted in order to set `RESOLC_WASM_URI` from env
variable
- ⚠️ Release workflow is changed:
- In PRs and main branch it'll only build artifacts
- Release will happen automatically only on the `v*` tag push. This is
needed for revive_web.js to have the necessary `RESOLC_WASM_URI`
- workflow will check that version in Cargo.toml is the same as the tag
when the new tag is pushed
cc https://github.com/paritytech/revive/issues/162
cc https://github.com/paritytech/devops/issues/3890
2025-04-07 13:39:56 +02:00
xermicus
7d8fa75a0f
storage keys and values should be big endian ( #277 )
...
Storage keys and values are big endian. Keeping them LE was a pre-mature
optimization because for the contract itself it this is a no-op and thus
not observable. However we should consider the storage layout as part of
the contract ABI. The endianness of transient storage values are still
kept as-is.
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-07 10:34:44 +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
dab29bc89b
bugfix missing byte swap for the create2 salt value ( #272 )
...
Found in https://github.com/paritytech/contract-issues/issues/45 , thanks
@albertov19 and @sekisamu
---------
Signed-off-by: xermicus <cyrill@parity.io >
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-03 15:20:22 +02:00
xermicus
313c033261
fix Rust 1.86.0 clippy ( #273 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-03 15:03:49 +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
8a98346a9c
Fix CI badge link ( #270 )
2025-04-01 07:52:39 +02:00
Alexander Samusev
1b4d2c6bb8
ci: modify release according to #162 ( #269 )
...
PR modifies release workflow according to changes requested in
https://github.com/paritytech/revive/issues/162#issuecomment-2751287953
2025-03-26 12:06:51 +01:00
xermicus
004b8ac16c
Update release.yml ( #265 )
...
The Release workflow used to work with a fetch-depth: 0 - not sure why this is required but yolo-ing it in for a test
2025-03-20 20:07:04 +01: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
Pavlo Khrystenko
36ea69b50f
Add --supported-solc-versions CLI command ( #260 )
...
### Description
Adds `--supported-solc-versions` cli command to return a semver range of
supported `solc` versions.
Is a hack until #162 is implemented.
---------
Co-authored-by: xermicus <cyrill@parity.io >
2025-03-19 16:07:48 +01:00
xermicus
2bbc5d713d
remove support for webkit ( #262 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-03-18 15:00:55 +01:00
xermicus
4a9b651235
Support solc v0.8.29 ( #261 )
...
No observable changes w.r.t. YUL compilation.
- Mark solc v0.8.29 as the latest supported version
- Add integration test for solc v0.8.29 specific feature
- Use the latest version on CI
- Drive-by fix linter complaints and a two types in the CI yaml files
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
Signed-off-by: xermicus <cyrill@parity.io >
2025-03-18 13:01:15 +01:00
Alexander Theißen
66f9a4d64f
Release Windows Version ( #251 )
...
With LLVM working only minor changes were necessary to get resolc
running on Windows.
Release in my branch here:
https://github.com/paritytech/revive-alex-workflowtest/releases/tag/v0.1.0-dev.12
v0.1.0-dev.12
2025-03-01 13:49:04 +01:00
xermicus
76f4cf71d6
ci: re-enable the machete ( #249 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-28 16:05:53 +01:00
xermicus
77e0344d80
llvm-context: remove dead code ( #247 )
...
- remove the __sha3 function symbol: this is provided by the pallet
- remove the storage address spaces: they are not mapped into memory
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2025-02-28 15:38:42 +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
93788e72e9
integration: additional mcopy test ( #245 )
...
Closes #237
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
llvm-18.1.8-revive.22f3ceb
2025-02-27 11:39:31 +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
84deb3a29d
integration: add function return type test ( #244 )
...
Closes #236
2025-02-27 10:37:37 +01:00
Evgeny Snitko
ee064671e0
Release archive path fix ( #241 )
2025-02-26 16:40:49 +01:00
xermicus
63dfd046e5
Update RELEASE.md ( #239 )
2025-02-26 09:38: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
Evgeny Snitko
7ffe64ed7c
CI improvements ( #230 )
...
- llvm artifacts search, download and extract now in `get-llvm` action
- `get-emsdk` action - clone, install, activate emsdk, so we don't need
to build `revive-builder` for this
- switch workflows to new actions
- `concurrency` for remaining workflows (cancel run if new run is
triggered)
- `target_commitish` for main release, fixes release commit
- Run release workflow in PR without creating a release if PR is labeled
with `release-test`
---------
Co-authored-by: cornholio <0@mcornholio.ru >
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
Co-authored-by: xermicus <cyrill@parity.io >
Co-authored-by: xermicus <bigcyrill@hotmail.com >
2025-02-25 14:33:59 +01:00
Yuri Volkov
f1bce4fe3f
llvm-builder testing workflow ( #164 )
...
Co-authored-by: xermicus <cyrill@parity.io >
2025-02-25 12:39:03 +01:00
xermicus
9efbb4c0b4
ci: temporarily disable the machete ( #233 )
2025-02-25 09:40:40 +01:00
xermicus
bcc8fa892c
update dependencies ( #229 )
2025-02-24 12:45:05 +01:00
Pavlo Khrystenko
89ec25da65
Add per file output selection for --standard-json mode and some other small foundry support bits. ( #228 )
2025-02-24 12:44:22 +01:00
xermicus
75a83af4da
ci: clippy ( #227 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-21 16:43:09 +01:00
xermicus
9c330ef8fc
llvm-builder: only run expensive tests on linux ( #226 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-21 16:38:44 +01:00
Yuri Volkov
687cec31ef
Using released LLVM in revive build ( #220 )
2025-02-21 16:30:26 +01:00
Yuri Volkov
48a019e0ad
Fix: add llvm- prefix to llvm version tag ( #225 )
...
Needed both for differentiating them from regular releases and for
filtering the tags in automation
llvm-18.1.8-revive.48a019e
2025-02-21 12:05:40 +01:00
xermicus
17a2d2f9f2
update README.md ( #223 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-21 10:51:40 +01:00
Yuri Volkov
6ad7908c5e
Using workflow_dispatch for LLVM releases ( #222 )
2025-02-20 20:00:33 +01:00
Yuri Volkov
840a736fc5
LLVM release workflows ( #207 )
...
Co-authored-by: xermicus <cyrill@parity.io >
2025-02-20 12:30:52 +01:00
xermicus
89cdfefab4
remove some dead code leftovers ( #218 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-19 10:41:32 +01:00
xermicus
6c2c633651
release resolc v0.1.0-dev.11 ( #214 )
...
Signed-off-by: xermicus <cyrill@parity.io >
v0.1.0-dev.11
2025-02-18 08:08:20 +01:00
xermicus
a73b0925c6
ci: do not run bun tests ( #215 )
2025-02-17 17:04:53 +01:00
xermicus
ee650cf03a
ci: use upstream evm for tests ( #213 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-17 11:33:30 +01:00
Evgeny Snitko
c2210442b6
Release workflow ( #201 )
...
Co-authored-by: xermicus <cyrill@parity.io >
2025-02-17 11:09:10 +01:00
xermicus
cb268850a9
llvm-context: remove the linear memory pointer indirection ( #211 )
2025-02-13 13:21:43 +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 >
v0.1.0-dev.10
2025-02-11 15:51:52 +01:00