Ring is a minimal self-hosted Lisp implementation comprised of two main components:

  1. StoneRing: A subset of Lisp compiler that translates to Assembly (NASM), implemented in Scheme(Gauche) and IronRing.
  2. IronRing: A Lisp interpreter built within StoneRing.

This project draws heavy influence from Maru, while its object representation and implementation simplicity are inspired by Ribbit Scheme, PicoLisp, and uLisp.

Motivation

The core motivation behind this project is exploring a straightforward method for achieving self-hosted Lisp implementation.

Unlike other approaches such as utilizing an object system like Maru or type inference as seen in prescheme, StoneRing Compiler simplifies the process by employing s-expression conversion and adopting BCPL/Forth-like semantics.

To circumvent intricate register allocation, it emits code resembling that of a stack machine.

Current Status

The proof of concept has been successfully completed.

Key Features