Welcome to Minor Scheme

Minor Scheme is an implementation of the Scheme programming language. Its planned features include:

good performance, via: just-in-time and ahead-of-time compilers generating native machine code precise, generational garbage collection

full support for native system threads

full source-level debugging

a C API and a foreign function interface, for interfacing with C code

a module system which supports separate compilation and cross-compilation

a hygenic macro system

For more details, see the MinorDesign.

Current status

Not even an interpreter, yet, but almost everything needed for that:

a thread-safe generational GC

most of the basic Scheme datatypes, and some additions: booleans fixnums characters, strings, and symbols (all Unicode) pairs and vectors procedures wrapping C functions I/O ports hash tables that compare keys with eqv?

a cycle-safe reader and writer

a C API for accessing all the above

a test suite exercising that C API, from many threads

It should configure and build on Linux, and make check should compile the tests and run them. You can look at the test programs as coding examples for the C API.

I'll eventually put more details in the roadmap.

Things to look at

You can browse the sources​. Interesting files:

These are all thoroughly commented ("Looks like you wrote a book", says Lynn Winebarger).

Repository Access

Minor is under version control (in a ​Subversion repository) at

The Mailing List

The Minor ​mailing list carries discussion about Minor, and commit messages. Subscription and archives are open to the public.

Thanks for visiting!

Jim Blandy

​http://www.red-bean.com/jimb

Starting Points

For a complete list of local wiki pages, see TitleIndex.

Trac is brought to you by ​Edgewall Software, providing professional Linux and software development services to clients worldwide. Visit ​http://www.edgewall.com/ for more information.