Skip to content
/ elv Public

A very basic Lisp + Erlang-style processes, on a virtual machine

License

Notifications You must be signed in to change notification settings

darius/elv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elv

A very basic Lisp with Erlang-style processes, on a virtual machine.

I wrote this many years ago, descended from https://github.com/darius/ichbins, but judged it a dead end. It's archived here for your entertainment: a tiny system showing a few aspects of Lisp and Erlang, depending only on C. (Well, plus the assembler in Python.)

Undocumented, but these lines should build and run it:

$ make
$ (cd tests; ./testallmeta)

The tests serve also as basic examples.

Although now the compiler is compiled by itself, when developing this system I didn't depend on this ability to bootstrap; instead there was a version of the compiler that ichbins could compile (older/elvc.scm) along with a parallel version (selvc.scm) that could take advantage of the extra features of itself and the VM. ichbins.scm itself and its bootstrapping process were also included in this repo. So were the corresponding variants of the test scripts. I've cut all that out as clutter (except for keeping an archive copy of elvc.scm in older/ so that the removed stuff can be reconstructed without undue effort). If you want to actively develop this system, as a weird challenge or learning experience or something, then it might be easiest to bring back the non-bootstrapped version of the compiler, just so then you can use gdb on its C-compiled output -- as the VM has no debugger. OTOH you might rather make debugging nicer on the VM! Whatevs.

(older/ retains a few other files useful when compiling via ichbins instead of bootstrapping. Move them back to their proper places then.)

About

A very basic Lisp + Erlang-style processes, on a virtual machine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published