Conversation
e842e49 to
d870f31
Compare
|
@marcinbugaj in general no objections. |
I'm wondering if this suggesting leans more towards just standardizing the memory layout? |
There are two widely different aspects: efficiency and compatibility. In our case, for debugging we have made zkvm-specific script and the Linux script that preserves sections and important symbols of the zkvm script. The latter is very good for gdb, lldb, whatever, and speeds up development a lot. |
|
The silent assumption of mine was that a guest application source code can be compiled for Linux with stock toolchain (for C and Rust). That implies that no custom linker script for Linux is needed. That is achievable as long as zkVMs provide Linux implementations of precompiles library and IO library (#8). Perhaps we could standardize it in a separate PR saying that "zkVMs must provide precompiles library and IO library that works on Linux so that any application targeting zkVM can be compiled without source code modification for Linux". That proposal could be called "Testing and Linux guest program portability". @kevaundray , @maximmenshikov what's your take on that? |
Would this mean that zkVMs will need to move their ecall syscall numbers down to not collide with linux syscalls? (For the zkVMs that use ecall) |
No. An application code won't use syscalls. That's because we agreed to riscv64im-unknown-none-elf which doesn't use syscalls for IO, memory allocation etc. Syscalls can be used as an internal implementation of IO library or precompiles library. These are provided by zkVMs and would be different for zkVM and host (x86). Actually there could be a generic implementation of these libraries for host. |
|
@maximmenshikov , @kevaundray here is a document that covers compatibility and testing: https://github.com/eth-act/zkvm-standards/pull/12/files |
82358f3 to
7173f7d
Compare
7173f7d to
55d85fa
Compare
|
No objections from me |
No description provided.