[BUG] Cannot compile new starter-template
rakanalh opened this issue · comments
Rakan Al-Huneiti commented
Bug Report
The starter template would not compile.
guest_code_for_quick_start: error[E0519]: the current crate is indistinguishable from one of its dependencies: it has the same crate-name `paste` and was compiled with the same `-C metadata` arguments. This will result in symbol conflicts between the two.
guest_code_for_quick_start: --> /home/rakan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rrs-lib-0.1.0/src/instruction_executor.rs:46:5
guest_code_for_quick_start: |
guest_code_for_quick_start: 46 | use paste::paste;
guest_code_for_quick_start: | ^^^^^
guest_code_for_quick_start:
guest_code_for_quick_start: error[E0519]: the current crate is indistinguishable from one of its dependencies: it has the same crate-name `paste` and was compiled with the same `-C metadata` arguments. This will result in symbol conflicts between the two.
guest_code_for_quick_start: --> /home/rakan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rrs-lib-0.1.0/src/instruction_string_outputter.rs:23:5
guest_code_for_quick_start: |
guest_code_for_quick_start: 23 | use paste::paste;
guest_code_for_quick_start: | ^^^^^
guest_code_for_quick_start:
guest_code_for_quick_start: error: cannot determine resolution for the macro `paste`
guest_code_for_quick_start: --> /home/rakan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rrs-lib-0.1.0/src/instruction_executor.rs:231:9
guest_code_for_quick_start: |
guest_code_for_quick_start: 231 | paste! {
guest_code_for_quick_start: | ^^^^^
guest_code_for_quick_start: ...
guest_code_for_quick_start: 346 | make_alu_op_fns! {add, |a, b| a.wrapping_add(b)}
guest_code_for_quick_start: | ------------------------------------------------ in this macro invocation
guest_code_for_quick_start: |
guest_code_for_quick_start: = note: import resolution is stuck, try simplifying macro imports
guest_code_for_quick_start: = note: this error originates in the macro `make_alu_op_reg_fn` which comes from the expansion of the macro `make_alu_op_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
guest_code_for_quick_start: error[E0046]: not all trait items implemented, missing: `process_add`, `process_sub`, `process_sll`, `process_slt`, `process_sltu`, `process_xor`, `process_srl`, `process_sra`, `process_or`, `process_and`, `process_addi`, `process_slli`, `process_slti`, `process_sltui`, `process_xori`, `process_srli`, `process_srai`, `process_ori`, `process_andi`, `process_beq`, `process_bne`, `process_blt`, `process_bltu`, `process_bge`, `process_bgeu`, `process_lb`, `process_lbu`, `process_lh`, `process_lhu`, `process_lw`, `process_sb`, `process_sh`, `process_sw`, `process_mul`, `process_mulh`, `process_mulhu`, `process_mulhsu`, `process_div`, `process_divu`, `process_rem`, `process_remu`
guest_code_for_quick_start: --> /home/rakan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rrs-lib-0.1.0/src/instruction_executor.rs:340:1
guest_code_for_quick_start: |
guest_code_for_quick_start: 340 | impl<'a, M: Memory> InstructionProcessor for InstructionExecutor<'a, M> {
guest_code_for_quick_start: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `process_add`, `process_sub`, `process_sll`, `process_slt`, `process_sltu`, `process_xor`, `process_srl`, `process_sra`, `process_or`, `process_and`, `process_addi`, `process_slli`, `process_slti`, `process_sltui`, `process_xori`, `process_srli`, `process_srai`, `process_ori`, `process_andi`, `process_beq`, `process_bne`, `process_blt`, `process_bltu`, `process_bge`, `process_bgeu`, `process_lb`, `process_lbu`, `process_lh`, `process_lhu`, `process_lw`, `process_sb`, `process_sh`, `process_sw`, `process_mul`, `process_mulh`, `process_mulhu`, `process_mulhsu`, `process_div`, `process_divu`, `process_rem`, `process_remu` in implementation
guest_code_for_quick_start: |
guest_code_for_quick_start: ::: /home/rakan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rrs-lib-0.1.0/src/lib.rs:29:5
guest_code_for_quick_start: |
guest_code_for_quick_start: 29 | fn process_add(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_add` from trait
guest_code_for_quick_start: 30 | fn process_sub(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_sub` from trait
guest_code_for_quick_start: 31 | fn process_sll(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_sll` from trait
guest_code_for_quick_start: 32 | fn process_slt(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_slt` from trait
guest_code_for_quick_start: 33 | fn process_sltu(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_sltu` from trait
guest_code_for_quick_start: 34 | fn process_xor(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_xor` from trait
guest_code_for_quick_start: 35 | fn process_srl(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_srl` from trait
guest_code_for_quick_start: 36 | fn process_sra(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_sra` from trait
guest_code_for_quick_start: 37 | fn process_or(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_or` from trait
guest_code_for_quick_start: 38 | fn process_and(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_and` from trait
guest_code_for_quick_start: 39 |
guest_code_for_quick_start: 40 | fn process_addi(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_addi` from trait
guest_code_for_quick_start: 41 | / fn process_slli(
guest_code_for_quick_start: 42 | | &mut self,
guest_code_for_quick_start: 43 | | dec_insn: instruction_formats::ITypeShamt,
guest_code_for_quick_start: 44 | | ) -> Self::InstructionResult;
guest_code_for_quick_start: | |_________________________________- `process_slli` from trait
guest_code_for_quick_start: 45 | fn process_slti(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_slti` from trait
guest_code_for_quick_start: 46 | fn process_sltui(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | --------------------------------------------------------------------------------------------- `process_sltui` from trait
guest_code_for_quick_start: 47 | fn process_xori(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_xori` from trait
guest_code_for_quick_start: 48 | / fn process_srli(
guest_code_for_quick_start: 49 | | &mut self,
guest_code_for_quick_start: 50 | | dec_insn: instruction_formats::ITypeShamt,
guest_code_for_quick_start: 51 | | ) -> Self::InstructionResult;
guest_code_for_quick_start: | |_________________________________- `process_srli` from trait
guest_code_for_quick_start: 52 | / fn process_srai(
guest_code_for_quick_start: 53 | | &mut self,
guest_code_for_quick_start: 54 | | dec_insn: instruction_formats::ITypeShamt,
guest_code_for_quick_start: 55 | | ) -> Self::InstructionResult;
guest_code_for_quick_start: | |_________________________________- `process_srai` from trait
guest_code_for_quick_start: 56 | fn process_ori(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_ori` from trait
guest_code_for_quick_start: 57 | fn process_andi(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_andi` from trait
guest_code_for_quick_start: ...
guest_code_for_quick_start: 62 | fn process_beq(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_beq` from trait
guest_code_for_quick_start: 63 | fn process_bne(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_bne` from trait
guest_code_for_quick_start: 64 | fn process_blt(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_blt` from trait
guest_code_for_quick_start: 65 | fn process_bltu(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_bltu` from trait
guest_code_for_quick_start: 66 | fn process_bge(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_bge` from trait
guest_code_for_quick_start: 67 | fn process_bgeu(&mut self, dec_insn: instruction_formats::BType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_bgeu` from trait
guest_code_for_quick_start: 68 |
guest_code_for_quick_start: 69 | fn process_lb(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_lb` from trait
guest_code_for_quick_start: 70 | fn process_lbu(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_lbu` from trait
guest_code_for_quick_start: 71 | fn process_lh(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_lh` from trait
guest_code_for_quick_start: 72 | fn process_lhu(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_lhu` from trait
guest_code_for_quick_start: 73 | fn process_lw(&mut self, dec_insn: instruction_formats::IType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_lw` from trait
guest_code_for_quick_start: 74 |
guest_code_for_quick_start: 75 | fn process_sb(&mut self, dec_insn: instruction_formats::SType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_sb` from trait
guest_code_for_quick_start: 76 | fn process_sh(&mut self, dec_insn: instruction_formats::SType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_sh` from trait
guest_code_for_quick_start: 77 | fn process_sw(&mut self, dec_insn: instruction_formats::SType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------ `process_sw` from trait
guest_code_for_quick_start: ...
guest_code_for_quick_start: 82 | fn process_mul(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_mul` from trait
guest_code_for_quick_start: 83 | fn process_mulh(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_mulh` from trait
guest_code_for_quick_start: 84 | fn process_mulhu(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | --------------------------------------------------------------------------------------------- `process_mulhu` from trait
guest_code_for_quick_start: 85 | fn process_mulhsu(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ---------------------------------------------------------------------------------------------- `process_mulhsu` from trait
guest_code_for_quick_start: 86 |
guest_code_for_quick_start: 87 | fn process_div(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_div` from trait
guest_code_for_quick_start: 88 | fn process_divu(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_divu` from trait
guest_code_for_quick_start: 89 | fn process_rem(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | ------------------------------------------------------------------------------------------- `process_rem` from trait
guest_code_for_quick_start: 90 | fn process_remu(&mut self, dec_insn: instruction_formats::RType) -> Self::InstructionResult;
guest_code_for_quick_start: | -------------------------------------------------------------------------------------------- `process_remu` from trait
Steps to Reproduce
cargo risczero new quick_start --guest-name guest_code_for_quick_start
cd quick_start
cargo run
Expected behavior
Should be able to run without compilation issues.
Your Environment
- risc0-zkvm version:
0.21.0
- Rust version:
rustc 1.76.0 (07dca489a 2024-02-04)
- Platform/OS:
Linux nixos 6.1.82 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar 15 18:27:50 UTC 2024 x86_64 GNU/Linux
Additional context
Erik Kaneda commented
I tried this but I can't reproduce it on my machine. I'm on macOS. I wonder if this is an issue with how some things are handled in NixOs..
Rakan Al-Huneiti commented
Spinned up a vagrant machine with Arch linux and could not reproduce either. Seems like NixOS specific :(