diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 000000000..13febf02b --- /dev/null +++ b/doc/README.md @@ -0,0 +1,67 @@ +# mruby Documentation + +## Getting Started + +New to mruby? Start here: + +| Document | Description | +| -------- | ----------- | +| [Getting Started](guides/getting-started.md) | Build mruby and run your first program | +| [Language Features](guides/language.md) | Ruby subset supported by mruby | +| [Limitations](limitations.md) | Behavioral differences from CRuby | + +## Guides (for embedders and gem authors) + +### Embedding mruby in C + +| Document | Description | +| -------- | ----------- | +| [C API Reference](guides/capi.md) | Values, classes, methods, error handling, fibers | +| [GC Arena](guides/gc-arena-howto.md) | Managing temporary objects in C extensions | +| [Linking](guides/link.md) | Linking with `libmruby` | +| [Amalgamation](guides/amalgamation.md) | Single-file build for easy integration | +| [Precompiled Symbols](guides/symbol.md) | Compile-time symbol allocation | + +### Building and Configuring + +| Document | Description | +| -------- | ----------- | +| [Compilation](guides/compile.md) | Build system, cross-compilation, toolchains | +| [Build Configuration](guides/mrbconf.md) | Compile-time macros (`MRB_*` flags) | +| [mrbgems](guides/mrbgems.md) | Creating and managing gems | +| [Memory](guides/memory.md) | Allocator customization and heap regions | + +### Tools + +| Document | Description | +| -------- | ----------- | +| [Debugger](guides/debugger.md) | Using `mrdb` for debugging | +| [ROM Method Tables](guides/rom-method-table.md) | Read-only method tables for constrained devices | + +### Reference + +| Document | Description | +| -------- | ----------- | +| [Directory Structure](guides/hier.md) | Source tree layout | + +## Internals (for mruby contributors) + +Start with [Architecture](internal/architecture.md) for an overview, +then dive into the subsystem you need: + +| Document | Description | +| -------- | ----------- | +| [Architecture](internal/architecture.md) | Overview of object model, VM, GC, compiler | +| [Virtual Machine](internal/vm.md) | Dispatch loop, call frames, method lookup, fibers | +| [Garbage Collector](internal/gc.md) | Tri-color marking, write barriers, generational GC | +| [Compiler Pipeline](internal/compiler.md) | Parser, code generator, IRep, binary format | +| [Opcodes](internal/opcode.md) | VM instruction set reference | +| [Value Boxing](internal/boxing.md) | How `mrb_value` encodes types | + +## Release Notes + +- [mruby 3.4](mruby3.4.md) +- [mruby 3.3](mruby3.3.md) +- [mruby 3.2](mruby3.2.md) +- [mruby 3.1](mruby3.1.md) +- [mruby 3.0](mruby3.0.md)