bytecodealliance / target-lexicon

Target "triple" support
Apache License 2.0
48 stars 42 forks source link

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

Open weikengchen opened 10 months ago

weikengchen commented 10 months ago

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.

https://github.com/rust-lang/rust/pull/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.

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

weikengchen commented 9 months ago

I am happy to say that the target has been merged in the upstream. https://github.com/rust-lang/rust/pull/117958

As a result, this PR might be ready now.

weikengchen commented 9 months ago

(cc @SchmErik on this one)

SchmErik commented 9 months ago

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

SchmErik commented 6 months ago

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