At one point I explored writing the interpreter in Rust, in hopes of making the implementation more robust, maintainable and portable. I even got a half-working prototype to run some opcodes. What ultimately stopped me was not the borrow checker, but the I/O facilities; Rust's std library as of today contains no equivalent of POSIX pread and pwrite functions, without which some opcode semantics can be rather cumbersome to implement (e.g. lockpos). I could resort to using POSIX-specific crates, but that would remove the portability advantage.
At one point I explored writing the interpreter in Rust, in hopes of making the implementation more robust, maintainable and portable. I even got a half-working prototype to run some opcodes. What ultimately stopped me was not the borrow checker, but the I/O facilities; Rust's
stdlibrary as of today contains no equivalent of POSIXpreadandpwritefunctions, without which some opcode semantics can be rather cumbersome to implement (e.g.lockpos). I could resort to using POSIX-specific crates, but that would remove the portability advantage.