maru
Maru - a tiny self-hosting lisp dialect
Learn how the Maru bootstrap isolates host and target environments using a three-stage architecture. Explore exclusive environment objects and global pointer rebinding to prevent host primitive leakage.
Memory Layout of Maru Heap Objects: A Deep Dive into the GC Header StructureExplore the Maru heap object memory layout. Understand the GC header structure and how it manages size, type, and GC state for efficient garbage collection.
How Variables Are Resolved at Compile Time in MaruDiscover how Maru resolves variables at compile time by transforming identifiers into concrete objects with fixed stack indices for efficient memory access.
How Maru Compiles Standalone ELF Binaries: A Complete Technical GuideLearn how Maru compiles standalone ELF binaries directly to disk, bypassing external toolchains like GCC and LD. Get a complete technical guide.
What Is the Difference Between the libc and Linux Platforms in Maru?Understand the core differences between Maru's libc and Linux platforms. Learn how libc uses host C library while Linux uses raw kernel syscalls for system operations.
How Maru’s Bootstrap Process Handles Type ID ChangesDiscover how Maru's bootstrap process ensures stability by dynamically mapping type IDs between host and slave VMs. Learn how Maru handles type ID changes.
Statistical Profiler Implementation in Maru: Platform-Specific Deep DiveExplore Maru's statistical profiler implementation. Discover how it uses SIGVTALRM to sample execution with Linux syscall or libc wrappers for diverse build environments.
How the Maru Compiler Emits Literal Objects into the Read-Only SegmentDiscover how the Maru compiler emits literal objects into the read-only segment using emit-objectC-string, generating assembler directives and omitting heap header fields for efficient memory management.
What Is Level-Shifting in the Maru Compiler? A Deep Dive into Self-Hosting CompilationDiscover level-shifting in the Maru compiler. Learn how it transforms high-level Maru S-expressions into executable machine code, LLVM bitcode, or C for self-hosting compilation.
How Maru Handles Closure Compilation: From Lambda to Runtime ObjectDiscover how Maru compiles closures. Learn how it creates runtime closure values with machine code labels and captured contexts for efficient indirect invocation.
Understanding the Structure of Maru's VM: Architecture and Execution PipelineExplore Maru's VM architecture and execution pipeline. Understand its four layers and the expand-encode-eval process for efficient Lisp code execution.
How the Maru LLVM Backend Emits Code: A Deep Dive into emit-llvm.lDiscover how the Maru LLVM backend emits code by printing textual LLVM-IR directly from compilation buffers. Learn about its efficient three stage pipeline.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →