New to mruby? Start here:
| Document | Description |
|---|---|
| Getting Started | Build mruby and run your first program |
| Language Features | Ruby subset supported by mruby |
| Limitations | Behavioral differences from CRuby |
| Document | Description |
|---|---|
| C API Reference | Values, classes, methods, error handling, fibers |
| GC Arena | Managing temporary objects in C extensions |
| Linking | Linking with libmruby |
| Amalgamation | Single-file build for easy integration |
| Precompiled Symbols | Compile-time symbol allocation |
| Document | Description |
|---|---|
| Compilation | Build system, cross-compilation, toolchains |
| Build Configuration | Compile-time macros (MRB_* flags) |
| mrbgems | Creating and managing gems |
| Memory | Allocator customization and heap regions |
| Document | Description |
|---|---|
| Debugger | Using mrdb for debugging |
| ROM Method Tables | Read-only method tables for constrained devices |
| Document | Description |
|---|---|
| Directory Structure | Source tree layout |
Start with Architecture for an overview, then dive into the subsystem you need:
| Document | Description |
|---|---|
| Architecture | Overview of object model, VM, GC, compiler |
| Virtual Machine | Dispatch loop, call frames, method lookup, fibers |
| Garbage Collector | Tri-color marking, write barriers, generational GC |
| Compiler Pipeline | Parser, code generator, IRep, binary format |
| Opcodes | VM instruction set reference |
| Value Boxing | How mrb_value encodes types |