Bytecode VM, dynamic number package, and R7RS compliant Scheme implementation.
|
All checks were successful
per-push tests / build (push) Successful in 1m45s
per-push tests / test-frontend (push) Successful in 2m5s
per-push tests / test-utility (push) Successful in 2m12s
per-push tests / timed-decomposer-parse (push) Successful in 1m8s
per-push tests / test-backend (push) Successful in 1m17s
This commit adds addressing modes for boolean and character data. The Address enum is extended, along with its TryFrom<u8> implementation and its operand_size function. The access macro is extended to handle the new modes. The CONST instruction can now create Char and Bool data. The instructions.toml has information on the new addressing modes. Unit tests have been added to test new CONST logic. fixes: #41 Signed-off-by: Ava Affine <ava@sunnypup.io> |
||
|---|---|---|
| .forgejo/workflows | ||
| decomposer | ||
| hyphae | ||
| mycelium | ||
| organelle | ||
| snippets | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| readme.md | ||
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
Currently 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.
Currently the bytecode VM and its instruction set are next to implement.