maru

Maru - a tiny self-hosting lisp dialect

18 articles 217 View on GitHub ↗
18 articles
How the Maru Bootstrap Isolates Host and Target Environments: A Three-Stage Architecture

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.

architecture
Feb 25, 2026
Memory Layout of Maru Heap Objects: A Deep Dive into the GC Header Structure

Explore the Maru heap object memory layout. Understand the GC header structure and how it manages size, type, and GC state for efficient garbage collection.

deep-dive
Feb 25, 2026
How Variables Are Resolved at Compile Time in Maru

Discover how Maru resolves variables at compile time by transforming identifiers into concrete objects with fixed stack indices for efficient memory access.

internals
Feb 25, 2026
How Maru Compiles Standalone ELF Binaries: A Complete Technical Guide

Learn how Maru compiles standalone ELF binaries directly to disk, bypassing external toolchains like GCC and LD. Get a complete technical guide.

deep-dive
Feb 25, 2026
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.

deep-dive
Feb 25, 2026
How Maru’s Bootstrap Process Handles Type ID Changes

Discover how Maru's bootstrap process ensures stability by dynamically mapping type IDs between host and slave VMs. Learn how Maru handles type ID changes.

internals
Feb 25, 2026
Statistical Profiler Implementation in Maru: Platform-Specific Deep Dive

Explore Maru's statistical profiler implementation. Discover how it uses SIGVTALRM to sample execution with Linux syscall or libc wrappers for diverse build environments.

deep-dive
Feb 25, 2026
How the Maru Compiler Emits Literal Objects into the Read-Only Segment

Discover 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.

internals
Feb 25, 2026
What Is Level-Shifting in the Maru Compiler? A Deep Dive into Self-Hosting Compilation

Discover 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.

deep-dive
Feb 25, 2026
How Maru Handles Closure Compilation: From Lambda to Runtime Object

Discover how Maru compiles closures. Learn how it creates runtime closure values with machine code labels and captured contexts for efficient indirect invocation.

internals
Feb 25, 2026
Understanding the Structure of Maru's VM: Architecture and Execution Pipeline

Explore Maru's VM architecture and execution pipeline. Understand its four layers and the expand-encode-eval process for efficient Lisp code execution.

architecture
Feb 25, 2026
How the Maru LLVM Backend Emits Code: A Deep Dive into emit-llvm.l

Discover how the Maru LLVM backend emits code by printing textual LLVM-IR directly from compilation buffers. Learn about its efficient three stage pipeline.

deep-dive
Feb 25, 2026

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →