Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add riscv32im-risc0-zkvm-elf target (corresp. rust-lang/rust PR 117958) #96

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

weikengchen
Copy link

This PR proposes adding the riscv32im-risc0-zkvm-elf target. Unlike the zkasm 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. Picking zkvm 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.

  • The target has been used in production and likely would become part of Rust soon.
  • We already have developers that suffer from target-lexicon not knowing this target---a developer (https://twitter.com/NitanshuL) working on using wasmer https://docs.rs/wasmer/latest/wasmer/ would not be able to proceed with this library because wasmer uses target-lexicon, and target-lexicon refuses to be built in an architecture that it does not know (a build.rs thing).

thread 'main' panicked at 'Invalid target name: 'riscv32im-risc0-zkvm-elf'', from target-lexicon-0.12.12/build.rs:52:54

@weikengchen
Copy link
Author

I am happy to say that the target has been merged in the upstream.
rust-lang/rust#117958

As a result, this PR might be ready now.

@weikengchen
Copy link
Author

(cc @SchmErik on this one)

@SchmErik
Copy link

@weikengchen yeah, it's been merged and will be a part of 1.77 so I think this is ready to go

@SchmErik
Copy link

Hi @sunfishcode this target triple has landed as a part of rust's tier 3 targets as of 1.77. I'm wondering if there's anything else that you need from our end in order to merge this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants