为什么我在 2025 年编写 Scheme 实现(答案是异步 Rust)

  • Introduction to scheme-rs: An introduction to scheme-rs, a work-in-progress implementation of R6RS with seamless interoperability to async Rust.
  • Love for Rust: The author loves Rust and has used it for about ten years, believing it to be well-designed including async. But async Rust has poor debugging and iteration experience with slow compile times and inscrutable error messages.
  • Need for a glue language: Async Rust needs a proper glue language, and that's where scheme-rs comes in. It allows dynamic gluing of code and provides a REPL for debugging.
  • Choice of Scheme: Scheme is chosen as it has a small core and is extremely expressive, with an excellent macro system and homoiconic nature. It also has millions of lines of code already written.
  • Theoretical language Gouki: A theoretical language built upon Scheme with a stronger and more useful type system, sitting between scheme-rs and Rust.
  • Status of scheme-rs: It is a work-in-progress, missing some builtins like dynamic-wind, error handling, and records. The interface is a bit clunky, but the bones are there with proper tail calls and call-by-current-continuation, and an extremely robust macro system.
  • Re-architecture: The author spent the last month converting scheme-rs from an interpreter to a compiler to make it competitive with mature Scheme compilers like ChezScheme, although it significantly slowed performance.
  • Hope for the future: The author hopes to complete R6RS soon and focus on making the compiler produce the best code. He encourages others to look at scheme-rs and contribute if interested.
阅读 8
0 条评论