Open cmichi opened 3 years ago
In addition what you already stated: Most features are also broken in parity-wasm
. I recently fixed multi-value support but especially simd128
needs some fixing. pallet-contracts
depends on parity-wasm
for instrumentation. It is not a big deal. But we need to keep in mind that fix crates need to be fixed first.
We should also don't allow any non finalized proposals for contracts because we need to stay backwards compatible. Here the list: https://github.com/WebAssembly/proposals
I've looked into how building contracts with the
simd128
target feature affects contract sizes. The results can be found here. This is thecargo-contract
branch I used for this: cmichi-build-contracts-with-simd-128.The results look promising, though it would require implementing this feature in
wasmi
, as well as follow-up work in thecontracts
pallet to e.g. determine weights.We should evaluate the other target features as well:
My branch from above can basically just be adapted with switching on other target features.
I've also tried
multivalue
, but unfortunately it's currently broken in rustc due to https://github.com/rust-lang/rust/issues/73755. In order to get an idea of the changes in contract size we should use an older rustc wheremultivalue
still works and build the contracts with it.