Ur-Scheme: A GPL self-hosting compiler from a subset of R5RS Scheme
Ur-Scheme is a compact GPL compiler translating R5RS Scheme to Linux x86 assembly. Despite limitations, it offers speed, safety, and unique extensions. Inspired by Ghuloum, it simplifies compiler construction.
Read original articleUr-Scheme is a GPL self-hosting compiler that translates a subset of R5RS Scheme into fast Linux x86 assembly language. Despite its limitations, such as missing features and impracticality beyond basic functionality, it offers reasonable speed and safety. The compiler is small, portable, unit-tested, and comes with extensions not found in R5RS. Inspired by Abdulaziz Ghuloum's approach to compiler construction, the developer aimed to simplify the process and provide a learning tool. The compiler's origins lie in a project to bootstrap a metacompiler for Bicicleta, highlighting lessons learned about interpreters, compiler complexity, and starting with simple solutions. Despite bugs like unbuffered output and lack of a garbage collector, Ur-Scheme stands as a testament to creating a functional compiler in a compact form.
Related
The Pre-Scheme Restoration
The Pre-Scheme Restoration project, funded by NLnet foundation, aims to modernize the Pre-Scheme compiler, a subset of Scheme, for a new functional programming language. Led by Andrew Whatson, the project focuses on compatibility, tooling, and documentation.
My experience crafting an interpreter with Rust (2021)
Manuel Cerón details creating an interpreter with Rust, transitioning from Clojure. Leveraging Rust's safety features, he faced challenges with closures and classes, optimizing code for performance while balancing safety.
Programming in Unison
Unison is a MIT-licensed programming language emphasizing immutability and database-based code storage. It simplifies distributed programming, supports easy renaming, and enhances testability and security. Challenges include limited interoperability and tooling development.
Debian GNU/Hurd now can compile 71% of the packages from the Debian archive
Significant progress in the GNU/Hurd project in Q2 2024: AArch64 port of GNU Mach by Sergey Bugaev, GCC patches merged, new tests added, Debian GNU/Hurd enhancements, community engagement efforts.
RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)
A RISC-V emulator tailored for Sophgo SG2000 SoC now supports Pine64 Oz64 and Milk-V Duo SBCs. It emulates SG2000 memory map, UART controller, and 64 interrupts, enabling NuttX testing. Future plans include GPIO emulation.
Related
The Pre-Scheme Restoration
The Pre-Scheme Restoration project, funded by NLnet foundation, aims to modernize the Pre-Scheme compiler, a subset of Scheme, for a new functional programming language. Led by Andrew Whatson, the project focuses on compatibility, tooling, and documentation.
My experience crafting an interpreter with Rust (2021)
Manuel Cerón details creating an interpreter with Rust, transitioning from Clojure. Leveraging Rust's safety features, he faced challenges with closures and classes, optimizing code for performance while balancing safety.
Programming in Unison
Unison is a MIT-licensed programming language emphasizing immutability and database-based code storage. It simplifies distributed programming, supports easy renaming, and enhances testability and security. Challenges include limited interoperability and tooling development.
Debian GNU/Hurd now can compile 71% of the packages from the Debian archive
Significant progress in the GNU/Hurd project in Q2 2024: AArch64 port of GNU Mach by Sergey Bugaev, GCC patches merged, new tests added, Debian GNU/Hurd enhancements, community engagement efforts.
RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)
A RISC-V emulator tailored for Sophgo SG2000 SoC now supports Pine64 Oz64 and Milk-V Duo SBCs. It emulates SG2000 memory map, UART controller, and 64 interrupts, enabling NuttX testing. Future plans include GPIO emulation.