## What's going on here?
Seax is a VM for interpreting Lisp programs.
## Goals
+ A complete implementation of a simple Lisp
* Probably Scheme
* like Scheme, it's minimal, elegant, & still expressive
+ Modular/general purpose enough to interpret other languages
* there should be a modular API for front ends
+ Performant enough to support "Real Programs"
* Speed should be at least as good as Python
## Stretch goals
These are things that I would like to add, if there's time, but I may not be able to add all of them.
+ Foreign function interface
* so that you can make Real Software and I don't have to write a whole standard library
* probably into the C stdlib 'cause it's everwhere
* this will require some additional research
+ some kind of JIT compilation
* I don't know how feasible this is
* this will require additional research as well
+ Additional language frontends
* one or more
* this can include "toy languages" that are interesting but not really useful
* the goal is to demonstrate that the SECD architecture is capable of interpreting multiple programming languages
## Why Rust?
I'm using the Rust programming language. Here's why:
+ It's intended for systems programming
* reasonably good performance (not C but pretty close)
- compiled
- interesting approach to memory management (eliminates a lot of GC)
* access to low-level stuff
+ But it's not C
* modern syntax
* nice build system (Cargo)
+ I've wanted to learn it for a while