453 Commits

Author SHA1 Message Date
xermicus 72515254fe rename llvm-context crate
Signed-off-by: xermicus <cyrill@parity.io>
2024-05-01 15:45:09 +02:00
xermicus 9b341853b4 update to polkavm with lazy execution
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-30 15:23:44 +02:00
xermicus 018d9f39fc measure erc20 code size
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-26 15:51:14 +02:00
xermicus 3d44685168 measure flipper code size
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-26 10:51:41 +02:00
xermicus 44ae9e77d5 clippies
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-26 10:39:56 +02:00
xermicus a85d1ef333 prevent confusing AlwaysInline and NoInline on O0
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-26 10:36:28 +02:00
Cyrill Leutwiler 45d53f2ee4 test for codesizes
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-04-25 17:39:49 +02:00
Cyrill Leutwiler 34c233207e add clippy to Makefile
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-04-25 15:10:02 +02:00
Cyrill Leutwiler ec46b211ab extensive benchmark results
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-04-24 23:19:41 +02:00
Cyrill Leutwiler df8ebb61ec Integrate benchmarks and differential tests against an EVM interpreter (#7) 2024-04-24 18:51:19 +02:00
xermicus bd10742ef8 allow solc v0.8.25
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-23 11:47:16 +02:00
xermicus 3468fd5abc allow configuration of the PVM stack size
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-22 14:16:36 +02:00
xermicus bd33566206 lld-sys: link against lto lib
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-19 18:52:34 +02:00
xermicus 5a6ef7a3da lto
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-19 18:51:33 +02:00
xermicus 7623f6f7fa Makefile: split up binary and npm installations
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-19 18:51:02 +02:00
xermicus 7bdf776ea4 Makefile: allow individual clean commands to fail
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-18 16:22:46 +02:00
Chris 3fbf2833c2 feat: streamline bin updates during developement (#5)
* feat: streamline bin updates during developement

Description
===========
This PR introduces a way for the 'zksolc' binary
to automatically be updated/copied to '.cargo/bin'
after each build to resolves the issue of having
to manually update the $PATH or each time keep
running `cargo install --path crates/solidity`,
which was a recurring annoyance during testing
and development.

Co-authored-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-04-18 16:00:44 +02:00
xermicus b3b4f4c9ae add sha1 contract function integration test
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-18 12:34:35 +02:00
xermicus cf4901f0a9 do not declare symbols that are already linked via the stdlib
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-18 12:33:46 +02:00
xermicus 21dd0abb8a add SPDX header to integration contracts
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-18 12:30:09 +02:00
xermicus b208daed7e implement the value opcode
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-17 18:05:51 +02:00
Chris 09b905415b feat: added npm workspaces support (#4)
Description
===========
  - Introduced npm workspaces to manage
    CLI tests from the root directory.
  - Enabled simplified npm dependency
    installation from the root.
  - Updated .gitignore to align with
    the new workspace structure.

Usage
=====

From the root directory

To install repo npm packages, run:
```
npm install && npm fund
```

To run related tests, run:
```
npm run test:cli
```
2024-04-17 12:49:10 +02:00
xermicus 99d22cde2f provide Solidity source for mstore8 tests
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-17 12:48:19 +02:00
xermicus bfcdb8afa9 implement byte stores and assert heap values to be either i256 or i8
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-17 12:44:54 +02:00
xermicus 40013b4f5c split up PVM instantiation
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-17 12:13:34 +02:00
xermicus 796d0c19bb integration: instantiate the module in prepare
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-16 20:06:34 +02:00
Cyrill Leutwiler 8a6d43bcd3 LLVM build script: Use LLVM 18 branch since compiler-rt fix got backported
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-04-16 07:55:06 +02:00
xermicus bd0c62f99c linker: suppress unused parameter warnings
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-15 16:12:05 +02:00
xermicus d6ae7daab1 use opaque pointer types everywhere
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-15 16:02:38 +02:00
xermicus 7aa27516e4 remove zkEVM extensions
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-15 15:22:23 +02:00
xermicus 3f9a90fe79 provide build script for LLVM
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-12 15:07:52 +02:00
xermicus 45a082d9a8 LLVM 18
Signed-off-by: xermicus <cyrill@parity.io>
2024-04-10 10:05:48 +02:00
xermicus ec952fd2cb add another msize test case
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-26 15:11:39 +01:00
xermicus 17832855e0 implement msize opcode
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-26 12:03:28 +01:00
xermicus 69800ae1b3 always allocate the total required heap size
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-26 12:03:04 +01:00
xermicus a67e6a94f5 use native stack alignment size
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-26 10:05:00 +01:00
xermicus 2865676323 add fibonacci implementations to integration tests
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-26 09:47:25 +01:00
Cyrill Leutwiler a76c5578cc bump Cargo.lock
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-03-25 15:59:49 +01:00
Cyrill Leutwiler a400286a3a integration: engine config as a dependency for testing against different backends
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-03-25 11:38:35 +01:00
xermicus 2327a58213 XLEN type helper
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-22 16:34:04 +01:00
xermicus c52a8d0f20 add common crate
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-22 16:19:18 +01:00
Cyrill Leutwiler 50f2dd9b74 Polkavm heap (#2)
Use PolkaVM heap
2024-03-22 12:41:41 +01:00
xermicus e83e4f04e6 add crate for custom isa extensions
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-20 10:59:02 +01:00
xermicus 6436e1956b always use build_gep wrapper
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-19 11:57:46 +01:00
xermicus 2b9e40225d implement calldatacopy
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-19 10:49:47 +01:00
xermicus 6d058a42ed suppress warnings about unused things
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-12 18:16:12 +01:00
xermicus d12fa073fd remove unused testdata
Signed-off-by: xermicus <cyrill@parity.io>
2024-03-12 12:07:02 +01:00
Cyrill Leutwiler cffa14a4d2 Emerge Yul recompiler (#1)
Provide a modified (and incomplete) version of ZKSync zksolc that can compile the most basic contracts
2024-03-12 12:06:02 +01:00
Cyrill Leutwiler d238d8f39e custom ir
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
2024-02-02 09:10:03 +01:00
xermicus 7a094f17c0 add more crates
Signed-off-by: xermicus <cyrill@parity.io>
2023-12-09 17:48:52 +01:00