2025-05-21 14:58:42 -07:00
|
|
|
# Mycelium
|
|
|
|
|
|
|
|
|
|
Mycelium aims to provide an efficient compiled to intermediate bytecode implementation
|
|
|
|
|
of R7RS Scheme as well as a virtual machine that will execute such bytecode.
|
|
|
|
|
|
|
|
|
|
Two major use cases are at the forefront of mind when designing and implementing this
|
|
|
|
|
project: a POSIX shell interpreter as well as a compiled to bytecode language for
|
|
|
|
|
running on ESP32 devices.
|
|
|
|
|
|
|
|
|
|
## Current Status
|
2025-08-26 17:11:37 +00:00
|
|
|
The lexer and parser are implemented. On an X86 machine equipped with 64GB RAM
|
|
|
|
|
and an AMD Ryzen 7900 CPU this lexer and parser are capable of creating a fully
|
2025-05-21 14:58:42 -07:00
|
|
|
validated abstract syntax tree from approximately 11200 lines of handwritten scheme
|
|
|
|
|
in about 55 milliseconds on average.
|
|
|
|
|
|
2025-08-26 17:11:37 +00:00
|
|
|
|
|
|
|
|
HyphaeVM is mostly implemented. The instruction set is defined and implemented,
|
|
|
|
|
including extensibility interfaces and the VM layout. Additionally, instruction
|
|
|
|
|
encoding and decoding are implemented. Garbage collection is implemented (via
|
|
|
|
|
reference counting). Currently being implemented are datum encoding/decoding and
|
|
|
|
|
full program encoding/decoding. Yet to be approached are debugging routines, CLI
|
|
|
|
|
utilities, and concurrency features. However, Documentation has been written on
|
|
|
|
|
programming with HyphaeVM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The R7RS-Small Scheme to HyphaeVM compiler is not implemented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R7RS-Large is not implemented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Linux/Mac/Windows runtime and extended compiler is not implemented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation is not implemented.
|