Skip to content

cjcole/rusty_scheme

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rusty Scheme

A toy Scheme interpreter written in Rust, loosely based on the R5RS Specification with a bit of Racket thrown in as well.

It supports a small number of standard library functions, as well as:

  • Function and variable definition
  • Quote
  • Quasiquote/unquote
  • Apply & eval
  • Macros (not hygenic yet)
  • Let expressions
  • Unicode
  • REPL with history

Rusty Scheme currently uses the Rust stack and heap, implementing the standard library directly in Rust. I intend to refactor the interpret to manage its own stack and instruction pointer in order to support call-with-current-continuation, and may also develop a bytecode/VM version for comparison.

Requirements

  • Rust 0.12.0

Usage

Download and install Rust 0.12.0 from http://www.rust-lang.org/install.html.

Build and start REPL:

make && ./bin/rusty_scheme

Build & execute a Scheme file:

make && ./bin/rusty_scheme myprogram.scm

Build & run unit tests:

make test

About

A Scheme interpreter written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.4%
  • Makefile 0.6%