Add riscv32im-risc0-zkvm-elf
target (corresp. rust-lang/rust PR 117958)
#96
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR proposes adding the
riscv32im-risc0-zkvm-elf
target. Unlike thezkasm
target which may be premature, the risc0 one has been used by developers, can be used to create ZK/blockchain applications for payments to email address (see https://pay.demos.bonsai.xyz/), and is currently undergoing the process of being part of Rust by satisfying the requirement of being a tier-3 target.rust-lang/rust#117958
(The remaining steps are mostly to sync up with the latest Rust main)
A formal document that describes this tier-3 target can also be found:
https://github.com/rust-lang/rust/blob/8db6f597169b32e7a970ffa66bec5e7dae35d8a8/src/doc/rustc/src/platform-support/riscv32im-risc0-zkvm-elf.md
The only change needed here is to add
zkvm
as a valid operating system. Pickingzkvm
as an operating system rather than an environment is to stay consistent with the Rust tier-3 target configuration as specified here:https://github.com/rust-lang/rust/pull/117958/files#diff-9d4db4407bd3a1d92dca3c693fd1fce5b9b11cb5726fe92d18aa4d7bd65caae1R12
I argue that adding this target into
target-lexicon
is timely, for two reasons.target-lexicon
not knowing this target---a developer (https://twitter.com/NitanshuL) working on usingwasmer
https://docs.rs/wasmer/latest/wasmer/ would not be able to proceed with this library becausewasmer
usestarget-lexicon
, andtarget-lexicon
refuses to be built in an architecture that it does not know (a build.rs thing).