Some checks failed
per-push tests / test-frontend (push) Blocked by required conditions
per-push tests / timed-decomposer-parse (push) Blocked by required conditions
per-push tests / test-utility (push) Blocked by required conditions
per-push tests / test-backend (push) Blocked by required conditions
per-push tests / build (push) Has been cancelled
This commit adds logic to serialize and deserialize datum, as well as the start of some total binary format. It implements serialize and deserialize routines per datum type. Tests are included for comples cases. Similar code existed in the organelle package which was then centralized here. Additionally: this commit makes release target binaries smaller and faster Signed-off-by: Ava Affine <ava@sunnypup.io>
35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# 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
|
|
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
|
|
validated abstract syntax tree from approximately 11200 lines of handwritten scheme
|
|
in about 55 milliseconds on average.
|
|
|
|
|
|
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.
|