Bytecode VM, dynamic number package, and R7RS compliant Scheme implementation.
Find a file
Ava Affine ddb49788af
All checks were successful
per-push tests / build (push) Successful in 47s
per-push tests / test-utility (push) Successful in 53s
per-push tests / test-frontend (push) Successful in 59s
per-push tests / test-backend (push) Successful in 43s
per-push tests / timed-decomposer-parse (push) Successful in 51s
String Instructions
The following instructions are modified to act on strings:
- INDEX: Now pulls a char out at index
- SUBSL: Now pulls a substring out of a source string
- INSER: Now inserts a char into a string at index
- LENGTH: Now returns length of a string

In addition to the above instructions, additional instructions
are now implemented to handle strings:
- CONCAT: appends a string onto another string
- S_APPEND: appends a char on to the end of a string

Fixes: #38

Signed-off-by: Ava Affine <ava@sunnypup.io>
2025-07-29 18:19:16 +00:00
.forgejo/workflows add garbage collection tests to CI 2025-07-28 23:04:49 +00:00
decomposer normalize edition to 2024 2025-07-24 19:28:25 +00:00
hyphae String Instructions 2025-07-29 18:19:16 +00:00
mycelium HyphaeVM Garbage Collection 2025-07-25 22:27:51 -07:00
organelle HyphaeVM Garbage Collection 2025-07-25 22:27:51 -07:00
snippets HyphaeVM - WIP 2025-07-24 19:26:31 +00:00
.gitignore Lexer and S-Expression data types 2025-05-07 09:19:33 -07:00
.gitlab-ci.yml HyphaeVM - WIP 2025-07-24 19:26:31 +00:00
Cargo.lock HyphaeVM Garbage Collection 2025-07-25 22:27:51 -07:00
Cargo.toml Clean up project structure 2025-07-24 19:44:43 +00:00
LICENSE Lexer and S-Expression data types 2025-05-07 09:19:33 -07:00
readme.md Readme and early CI 2025-05-21 15:10:44 -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

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.