Skip to content
This repository was archived by the owner on Nov 6, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
2c9e494
starting the wasm converter
mrsmkl Jan 21, 2021
a38415c
setting up for testing
mrsmkl Jan 21, 2021
e81e13b
some jumping
mrsmkl Jan 22, 2021
84d0fcb
loop seems to work
mrsmkl Jan 22, 2021
6eabf2b
thinking about calls
mrsmkl Jan 25, 2021
87fad6e
simple call working
mrsmkl Jan 25, 2021
186c108
simple indirect calls
mrsmkl Jan 26, 2021
f6f092f
return function
mrsmkl Jan 26, 2021
e5d5a42
adding globals
mrsmkl Jan 27, 2021
73bc6e6
first memory ops work
mrsmkl Jan 27, 2021
77690a3
added all memory ops
mrsmkl Jan 28, 2021
ae9a32c
adding ops
mrsmkl Jan 28, 2021
5a28194
adding ops
mrsmkl Jan 28, 2021
8ae0be1
memory bounds check
mrsmkl Jan 28, 2021
d987e41
initializing memory
mrsmkl Feb 1, 2021
b7c1e91
some fixes
mrsmkl Feb 2, 2021
83282d7
testing jit
mrsmkl Feb 8, 2021
a35559c
cleanup
mrsmkl Feb 8, 2021
f04561b
changed register to tuple
mrsmkl Feb 8, 2021
339f470
should be working
mrsmkl Feb 8, 2021
3b3b5bb
testing hashing better
mrsmkl Feb 10, 2021
8661044
AVM gas metering
mrsmkl Feb 15, 2021
54db68b
converting buffers into codepointer table
mrsmkl Feb 18, 2021
f662c5f
generate buffers
mrsmkl Feb 18, 2021
b550906
adding new type for wasm codepoints
mrsmkl Feb 18, 2021
1d28078
implementing new versions of instructions
mrsmkl Feb 18, 2021
2dfffd9
need buffer literal?
mrsmkl Feb 22, 2021
7f1e260
compile and run wasm ops seem to work
mrsmkl Feb 22, 2021
24962ac
compile and run wasm ops seem to work
mrsmkl Feb 22, 2021
d9cc2a0
imports for reading/writing to buffer seem to work
mrsmkl Feb 23, 2021
b5667cf
imports with JIT
mrsmkl Feb 23, 2021
52f8672
adding noop
mrsmkl Mar 2, 2021
dda00d2
cherry pick this
mrsmkl Mar 2, 2021
679f31e
running stuff from wasm pack works
mrsmkl Mar 15, 2021
1ac63ec
debugging
mrsmkl Mar 22, 2021
a07062f
testing how fast is keccak hashing with wasm jit
mrsmkl Apr 14, 2021
22695f8
adding usegas env operation
mrsmkl Apr 15, 2021
193b406
added files
mrsmkl Apr 15, 2021
0e91558
adding these
mrsmkl Apr 15, 2021
eb02c73
saving
mrsmkl Apr 15, 2021
e327f3b
more benchmarking
mrsmkl Apr 19, 2021
1c1dc90
fixed rot
mrsmkl Apr 22, 2021
99ac61d
seems to work
mrsmkl Apr 23, 2021
cc09ba0
adding read vector to JIT
mrsmkl Apr 26, 2021
a4540fb
write io in JIT
mrsmkl Apr 26, 2021
b407d41
read/write vec for AVM
mrsmkl Apr 26, 2021
6ac25fd
instruction to create wasm codepoint
mrsmkl Apr 26, 2021
ceab0bf
merge
mrsmkl Apr 29, 2021
eb054e3
optimize jump table
mrsmkl May 3, 2021
a29fd07
adding extra function
mrsmkl May 5, 2021
a534968
read params from file
mrsmkl May 5, 2021
142791a
running tests working somehow
mrsmkl May 6, 2021
a7a480d
get expected value too
mrsmkl May 6, 2021
a760bce
fixing arith ops
mrsmkl May 7, 2021
9e4f7ac
fixed memory issue
mrsmkl May 7, 2021
903edc5
better handling of unreachable
mrsmkl May 7, 2021
b6ceea6
some mfixes
mrsmkl May 10, 2021
8bc23c3
progressing on test suite
mrsmkl May 12, 2021
8efbc85
test suite working
mrsmkl May 12, 2021
231c269
test suite working
mrsmkl May 12, 2021
53ee19d
better error handling
mrsmkl May 12, 2021
e298a0f
division by zero
mrsmkl May 17, 2021
a417b6a
updating compiler code
mrsmkl May 24, 2021
3fc41f1
some fixes from wasm version of the compiler
mrsmkl May 24, 2021
a837a01
jump table instruction didnt help
mrsmkl May 26, 2021
d04e613
hashing the buffer takes a long time
mrsmkl May 26, 2021
4fb7c00
optimized memory instructions
mrsmkl May 26, 2021
1157e9f
read from file
mrsmkl May 26, 2021
46d689f
simplify buffers, no gas computation
mrsmkl May 27, 2021
6ad23b0
stack change, didnt make a difference
mrsmkl Jun 2, 2021
0ac46aa
reverted jump table
mrsmkl Jun 2, 2021
8235c67
instructions for making codesegments
mrsmkl Jun 8, 2021
2cdf1d3
construct jump table
mrsmkl Jun 8, 2021
943d0bc
testing the constructed program
mrsmkl Jun 10, 2021
c363cbc
format
mrsmkl Jun 10, 2021
0a78cfc
added JIT env functions
mrsmkl Jun 10, 2021
3707976
looks like JIT env works
mrsmkl Jun 10, 2021
55e3e7a
reverted new buffer instructions
mrsmkl Jun 14, 2021
c88b9ed
more debugging
mrsmkl Jun 21, 2021
bdca6e3
simplify immeds
mrsmkl Jun 28, 2021
7ad067c
benchmarking rlp
mrsmkl Jul 2, 2021
b4664d5
reading directly from tuple
mrsmkl Jul 13, 2021
5c9dd46
jit working
mrsmkl Jul 13, 2021
2afa7af
AVM code for getting data from tuple
mrsmkl Jul 13, 2021
f951121
avm code for reading from tuples seems to work
mrsmkl Jul 13, 2021
591a048
cleanup
mrsmkl Jul 19, 2021
7679103
revert fast buffers
mrsmkl Jul 19, 2021
58af9f5
testing
mrsmkl Jul 19, 2021
c02c083
add hashing buffers back
mrsmkl Jul 19, 2021
73c0a22
Revert "stack change, didnt make a difference"
mrsmkl Jul 19, 2021
910136f
tests working
mrsmkl Jul 19, 2021
cd18542
adding more benchmarks
mrsmkl Jul 19, 2021
1a49ad6
working better
mrsmkl Jul 19, 2021
9bba4d9
cleanup warnings
mrsmkl Jul 26, 2021
fe114e8
all tests working
mrsmkl Jul 26, 2021
4411acc
rust compiles
mrsmkl Jul 26, 2021
f3b554c
tests working
mrsmkl Jul 26, 2021
498f067
fmt
mrsmkl Aug 9, 2021
77db32f
adding wasm file
mrsmkl Aug 9, 2021
e002a7c
adding wasm file
mrsmkl Aug 9, 2021
6e33e82
fixed wasm-run.mexe generation
mrsmkl Aug 23, 2021
3150c30
merge, also trying to change buffer literals
mrsmkl Aug 25, 2021
3142184
upgrade doesnt work
mrsmkl Aug 25, 2021
16f5cd1
upgrade working
mrsmkl Aug 25, 2021
da474dd
test suite working
mrsmkl Aug 25, 2021
e0c8f15
more clean up
mrsmkl Sep 6, 2021
c391197
moved jit stuff to separate file
mrsmkl Sep 6, 2021
e8904cf
add bounds checks
mrsmkl Sep 6, 2021
b0e6417
adding simple wasm test
mrsmkl Sep 13, 2021
06a730a
merge
mrsmkl Sep 27, 2021
ca4a3b9
adding extra files
mrsmkl Sep 27, 2021
d3c3b21
format
mrsmkl Sep 27, 2021
ebe0a05
trying to get ci running
mrsmkl Sep 27, 2021
80ad174
evm tests not working?
mrsmkl Oct 8, 2021
df84388
merge
mrsmkl Oct 8, 2021
34ca38c
updating rlp.wasm
mrsmkl Oct 8, 2021
b589a02
lint
mrsmkl Oct 11, 2021
9a49f78
adding wasm modules here
mrsmkl Oct 11, 2021
950ab62
better usegas
mrsmkl Oct 11, 2021
4c3b7c6
cleanup
mrsmkl Oct 11, 2021
dd3b40e
merge
mrsmkl Oct 11, 2021
1cc4242
format
mrsmkl Oct 11, 2021
f435e93
remove errors
mrsmkl Oct 11, 2021
54359eb
update replay tests
mrsmkl Oct 11, 2021
eb22ca7
wasmer wont compile wo warnings
mrsmkl Oct 11, 2021
6446ce3
trying to get Go tests working...
mrsmkl Oct 11, 2021
164caa7
upgrade should now work
mrsmkl Oct 11, 2021
0217db8
update mexes
mrsmkl Oct 11, 2021
c2aff80
try to run test suite in CI
mrsmkl Oct 15, 2021
95e2261
something wrong with yml?
mrsmkl Oct 15, 2021
0db2721
checking this
mrsmkl Oct 15, 2021
57d8c11
merge
mrsmkl Oct 15, 2021
2a32f57
trying to run wasm suite again
mrsmkl Oct 15, 2021
90d501d
script name
mrsmkl Oct 15, 2021
3a4545f
forgot to add the script
mrsmkl Oct 15, 2021
aefee5b
update logs
mrsmkl Oct 15, 2021
27f958f
added the json files
mrsmkl Oct 15, 2021
0eb929e
adding wasm files
mrsmkl Oct 15, 2021
de6ecb8
fixing loops
mrsmkl Oct 15, 2021
f02c2ef
adding type checks
mrsmkl Oct 15, 2021
dab6521
format
mrsmkl Oct 15, 2021
0bee548
tuple bounds checks
mrsmkl Oct 15, 2021
58b011a
format
mrsmkl Oct 15, 2021
8c88f90
clean up mini files
mrsmkl Oct 18, 2021
0f935fb
cleanup
mrsmkl Oct 18, 2021
729d53f
fmt
mrsmkl Oct 18, 2021
2e28162
more cleanup
mrsmkl Oct 18, 2021
7c947c4
update mexes
mrsmkl Oct 18, 2021
9565b03
warning
mrsmkl Oct 18, 2021
6933483
need to check that is tuple
mrsmkl Oct 18, 2021
6718bfe
changed wasm test mexe
mrsmkl Oct 22, 2021
e0e2a3f
add unreachable test file
mrsmkl Oct 22, 2021
03930e6
merge
mrsmkl Oct 22, 2021
74d92d2
fix warnings
mrsmkl Oct 22, 2021
67c202a
adding more checks
mrsmkl Oct 25, 2021
48095a1
remove wextra
mrsmkl Oct 25, 2021
6ad34c5
check env function types
mrsmkl Oct 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
74 changes: 67 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,46 @@ jobs:
fail_ci_if_error: true
verbose: false

wasm:
name: Run Wasm test suite
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
rust: [stable]
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
libasound2-dev libudev-dev build-essential pkg-config libssl-dev

- name: Install rust ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: ${{ matrix.rust == 'nightly' && 'llvm-tools-preview' || '' }}

- name: Cache rust build products
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ matrix.os }}-cargo-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ matrix.os }}-cargo-${{ matrix.rust }}-

- name: Run test suite
run: bash ./wasm-suite/run-tests.sh

node:
name: Node integration test
runs-on: ubuntu-latest
Expand All @@ -126,8 +166,10 @@ jobs:

- name: Install dependencies
run: |
# apt-get update && apt-get -y install sudo
# sudo apt install -y software-properties-common curl git
sudo add-apt-repository -y ppa:longsleep/golang-backports
sudo apt-get update && sudo apt-get install -y \
sudo apt-get install -y \
autoconf automake cmake libboost-dev libboost-filesystem-dev libgmp-dev \
librocksdb-dev libssl-dev libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev \
liblz4-dev libzstd-dev libtool golang-go clang-format cmake
Expand All @@ -138,11 +180,28 @@ jobs:
# cd rocksdb && make shared_lib && sudo make install
#
curl -sSL "https://github.com/gotestyourself/gotestsum/releases/download/v1.7.0/gotestsum_1.7.0_linux_amd64.tar.gz" | sudo tar -xz -C /usr/local/bin gotestsum
# build wasmer
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
git clone https://github.com/wasmerio/wasmer
cd wasmer
git checkout ec36089cbf4a65b768501ba38f3d63baad6badf3
export ENABLE_LLVM=0
export RUSTFLAGS=
make build-wasmer
make build-capi
make package-capi
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/include/wasmer
sudo cp package/lib/* /usr/local/lib
sudo cp package/include/* /usr/local/include/wasmer

- name: Clone Arbitrum
run: |
git clone --recursive https://github.com/OffchainLabs/arbitrum.git
cd arbitrum && git submodule update --init --recursive
git clone --recursive https://github.com/mrsmkl/arbitrum.git
cd arbitrum
git checkout mrsmkl/wasm-onestepproof
git submodule update --init --recursive

- name: Copy over this branch's ArbOS
run: |
Expand All @@ -153,9 +212,10 @@ jobs:

- name: Build Arbitrum
run: |
mkdir arbitrum/packages/arb-avm-cpp/debug/
mkdir arbitrum/packages/arb-avm-cpp/build/
cd $_
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -DCMAKE_BUILD_TYPE=Release
sudo ldconfig
make -j

- name: Test Node's C++ Database
Expand All @@ -165,9 +225,9 @@ jobs:
- name: Test Node's Core
run: |
cd arbitrum/packages/arb-node-core/
gotestsum --format testname | tee issues | grep FAIL
gotestsum --format testname

- name: Test Node's RPC
run: |
cd arbitrum/packages/arb-rpc-node/
gotestsum --format testname | tee issues | grep FAIL
gotestsum --format testname
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Generated by Cargo
# will have compiled files and executables
/target/
**/target/

# These are backup files generated by rustfmt
**/*.rs.bk
Expand All @@ -20,6 +20,11 @@ arb_os/contractTemplates.mini
.idea
evm-tests/.travis.yml
evm-test-logs/*
wasm-tests/*.wasm
wasm-suite/*.wasm
wasm-suite/*.json
wasm-suite/*.wat
**.cov
**.bkp
**~
lcov.info
Expand Down
Loading