Readme and early CI

This commit prepares the code to be uploaded to gitlab.
Included is a small readme and basic CI.

Signed-off-by: Ava Affine <ava@sunnypup.io>
This commit is contained in:
Ava Apples Affine 2025-05-21 14:58:42 -07:00
parent e4c6e0924a
commit 528a61749d
3 changed files with 45 additions and 0 deletions

28
.gitlab-ci.yml Executable file
View file

@ -0,0 +1,28 @@
default:
image: rustlang/rust:nightly
stages:
- build
- test
compile-library:
stage: build
script:
- cargo build --lib
compile-decomposer:
stage: build
script:
- cargo build --bin decomposer
unit-test-language-frontend:
stage: test
script:
- cargo test lexer
- cargo test parser
unit-test-number-package:
stage: test
script:
- cargo test number

View file

@ -19,6 +19,7 @@
#![feature(let_chains)] #![feature(let_chains)]
#![feature(iter_collect_into)] #![feature(iter_collect_into)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(core_float_math)]
pub mod sexpr; pub mod sexpr;
pub mod lexer; pub mod lexer;

View file

@ -0,0 +1,16 @@
# 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.