YUL and EVM assembly recompiler to LLVM, targetting RISC-V on PolkaVM.
Frontend and code generator are based of ZKSync zksolc
.
This is experimental software in active development and not ready just yet for production usage.
Discussion around the development is hosted on the Polkadot Forum.
TL;DR installing the resolc
Solidity frontend executable:
bash build-llvm.sh
export PATH=${PWD}/llvm18.0/bin:$PATH
make install-bin
resolc --version
revive
requires a build of LLVM 18.1.4 or later including compiler-rt
. Use the provided build-llvm.sh build script to compile a compatible LLVM build locally in $PWD/llvm18.0
(don't forget to add that to $PATH
afterwards).
Please consult the Makefile targets to learn how to run tests and benchmarks.
Ensure that your branch passes make test
locally when submitting a pull request.
revive
uses solc, the Ethereum Solidity compiler, as the Solidity frontend to process smart contracts written in Solidity. The YUL IR code (or legacy EVM assembly as a fallback for older solc
versions) emitted by solc
is then translated to LLVM IR, targetting a runtime similar to Polkadots contracts
pallet.