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
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
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 and Alexander Theißen
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
xermicus
93788e72e9
integration: additional mcopy test ( #245 )
...
Closes #237
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
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
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
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
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
xermicus
17a2d2f9f2
update README.md ( #223 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-21 10:51:40 +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 >
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
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 >
2025-02-11 15:51:52 +01:00
xermicus
374563bbe5
integration: add function pointer integration test ( #205 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-10 18:50:12 +01:00
xermicus
a921e425b4
CI: fix and pin geth ( #206 )
2025-02-10 17:39:44 +01:00
xermicus
60fc09f787
llvm-context: disable call re-entrancy for send and transfer ( #196 )
2025-02-06 16:49:50 +01:00
xermicus
157647d5c1
remove superfluous warning and clippy allows ( #194 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-05 12:44:29 +01:00
xermicus
35419e8202
solidity: update custom warnings and version validation ( #193 )
2025-02-05 11:42:35 +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
xermicus
9fb24b607d
disable werror ( #191 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-02-04 12:43:56 +01:00
xermicus
ba7310fdff
integration: bugfix blob cache ( #192 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-02-04 12:11:25 +01:00
xermicus
8ed689e7ec
solidity: various small resolc fixes ( #189 )
2025-02-03 16:16:54 +01:00
xermicus
bfda465c32
remove support for legacy evm assembly ( #186 )
2025-02-03 14:13:43 +01:00
xermicus
ab90af49df
Solidity: add --libraries to sources ( #187 )
...
* bugfix: add libraries to sources
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-01-31 18:08:11 +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
d8a72e580b
release resolc-0.1.0-dev.8 ( #170 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-17 17:00:25 +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
8ffe072fee
pin the LLVM version ( #166 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-16 10:45:43 +01:00
Cyrill Leutwiler
71fb3ab8d6
vet the Makefile ( #165 )
...
- Move the emscripten target flags into the target configuration.
- Improve the readability of the Makefile.
Signed-off-by: xermicus <cyrill@parity.io >
2025-01-15 22:26:56 +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
4fbfb97b9e
Fix the Wasm build cache ( #159 )
...
Follow-ups for https://github.com/paritytech/revive/pull/154
- Fix the cache in the Wasm build
- Remove a no longer needed script
- The Wasm build job uses parity-large
2025-01-15 11:36:59 +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
fde9edab10
Remove the docs Makefile targets ( #152 )
...
Documentation of the contracts stack was moved into a dedicated repository.
2025-01-10 11:36:51 +01:00
Cyrill Leutwiler
f49d145e9a
update the minium supported rust version to 1.81 ( #144 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-12-21 09:10:14 +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
Cyrill Leutwiler
d8752ec6b5
the basefee opcode ( #142 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-12-19 18:59:10 +01:00
Cyrill Leutwiler
6ad846a285
the base fee opcode ( #141 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-12-19 12:44:15 +01:00
Cyrill Leutwiler
3f9771f838
update and fix the linker ( #140 )
2024-12-18 23:11:06 +01:00
Cyrill Leutwiler
22070a824d
the gas limit opcode ( #139 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-12-18 20:31:42 +01:00
Cyrill Leutwiler
d299dd1a19
change getters to register version ( #138 )
2024-12-18 17:56:37 +01:00
Cyrill Leutwiler
14a598e840
implement the gas opcode ( #136 )
2024-12-18 17:19:32 +01:00
Cyrill Leutwiler
55ec0988e8
fix the CI runner version ( #137 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-18 17:03:29 +01:00
Cyrill Leutwiler
909de515c4
Allow arbitrary call data size ( #135 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-18 14:04:46 +01:00
Cyrill Leutwiler
2cb8f82266
calls: supply max ref_time and proof_size limits ( #133 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-10 16:31:44 +01:00
Cyrill Leutwiler
6f2f158ef1
fix new clippy lint ( #132 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-10 15:24:25 +01:00
Cyrill Leutwiler
4e5482bad2
fix the commit sha in the version ( #129 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-12-03 12:34:17 +01:00
Cyrill Leutwiler
0110258d81
release 0.1.0 dev.6 ( #128 )
2024-11-29 17:45:47 +01:00
Cyrill Leutwiler
f0d9d44dce
Implement the gasprice opcode ( #127 )
2024-11-29 17:14:27 +01:00
Cyrill Leutwiler
3f6cd115ee
update warnings ( #126 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-11-29 16:23:36 +01:00
Cyrill Leutwiler
7c00bbb0fc
remove unneeded utils ( #125 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-11-29 16:21:24 +01:00
Cyrill Leutwiler
423a494621
Switch target to 64bit and enable the zbb feature ( #120 )
2024-11-29 15:56:10 +01:00
Cyrill Leutwiler
08112e3449
Fix broken link in README.md
2024-11-29 10:39:42 +01:00
xermicus
84d47fa738
fix missing semicolon
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-11-22 16:14:07 +01:00
Cyrill Leutwiler
dbb47fd13e
experimental: support for debug info ( #118 )
...
Signed-off-by: wpt967 <matt.aw@parity.io >
Signed-off-by: xermicus <cyrill@parity.io >
2024-11-22 08:56:09 +01:00
Cyrill Leutwiler
87f2bcefb3
dump the elf shared object into the debug output directory ( #119 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-11-21 21:48:42 +01:00
Cyrill Leutwiler
89ddfb28c8
CI: ignore the broken test ( #116 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-11-21 12:22:15 +01:00
Cyrill Leutwiler
3232382d96
update dependencies ( #115 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-11-15 13:50:55 +01:00
Cyrill Leutwiler
6a120463c2
implement the blockhash opcode ( #114 )
2024-11-15 13:11:04 +01:00
Cyrill Leutwiler
c9dd347755
Add documentation portal ( #99 )
2024-11-14 14:21:48 +01:00
Cyrill Leutwiler
f947984671
update 64bit target flags ( #113 )
2024-11-14 10:29:21 +01:00
Cyrill Leutwiler
4cce4a729e
pre-release v0.1.0-dev.5 ( #110 )
2024-10-31 15:22:34 +01:00
Cyrill Leutwiler
9267a2af02
use the long revive version string in the contract metadata ( #109 )
2024-10-31 14:52:06 +01:00
Cyrill Leutwiler
173ace72cb
solidity: rename the revive metadata ( #106 )
...
Rename the revive metadata fields and includes the commit hash and LLVM version in the revive version (similar to what solc does).
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-31 13:00:35 +01:00
Cyrill Leutwiler
37ab2b6782
declare immutable globals during in declare ( #108 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-31 12:07:39 +01:00
Cyrill Leutwiler
43d2ef3ce9
implement the code size opcodes ( #107 )
2024-10-31 11:46:47 +01:00
Cyrill Leutwiler
68564f9866
display the git revision version information ( #105 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-30 14:28:00 +01:00
Cyrill Leutwiler
36d9317831
update the polkadot-sdk and polkavm dependencies ( #104 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-30 09:28:24 +01:00
Cyrill Leutwiler
5b3b90db83
support the origin opcode ( #103 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-29 18:40:25 +01:00
Cyrill Leutwiler
a4043ecde7
update LLVM target features ( #102 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-29 18:17:29 +01:00
Cyrill Leutwiler
f985f42370
update polkadot-sdk and inkwell dependencies ( #101 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-29 11:27:44 +01:00
Cyrill Leutwiler
e56feb95be
standard json output: skip serializing keys instead of emitting a null object ( #52 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-23 15:28:28 +02:00
Cyrill Leutwiler
995b115c5f
bump polkadot-sdk and polkavm ( #94 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-22 19:50:58 +02:00
Cyrill Leutwiler
82ae22c163
tidy up the runtime API crate ( #85 )
...
- remove unused runtime API imports and constants
- move runtime api symbols into the revive-runtime-api crate
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-17 10:55:27 +02:00
Cyrill Leutwiler
20e3560398
Makefile: remove duplicate workspace tests from the test target ( #90 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-17 10:22:04 +02:00
Cyrill Leutwiler
5bf31db660
bump polkavm and polkadot-sdk ( #87 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-15 10:46:20 +02:00
Cyrill Leutwiler
f0f344a139
disable sbrk and emulate EVM linear memory internally ( #76 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-14 15:20:00 +02:00
Cyrill Leutwiler
92a18460e4
support solc 0.8.28 ( #84 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-14 13:25:18 +02:00
Cyrill Leutwiler
e5233fc46e
revive-runner: consider non-reverted transactions as success ( #82 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-14 13:24:59 +02:00
Cyrill Leutwiler
705d1d7866
run signed_remainder test in differential mode ( #75 )
2024-10-10 19:26:04 +02:00
Cyrill Leutwiler
d5d419cefc
implement immutable variables codegen ( #70 )
2024-10-10 13:33:00 +02:00
Cyrill Leutwiler
8b7fe8e3d7
deny clippy warnings by default ( #73 )
2024-10-09 20:19:12 +02:00
xermicus
b344e0cff5
Revert "implement immutable variables codegen"
...
This reverts commit 0e6a6d12c3 .
2024-10-09 03:43:05 +02:00
xermicus
0e6a6d12c3
implement immutable variables codegen
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-09 03:37:56 +02:00
Cyrill Leutwiler
77fe683f18
remove the test encoding option ( #65 )
2024-10-04 09:59:27 +02:00