Files
mruby-mruby/mrbgems/mruby-compiler
Yukihiro "Matz" Matsumoto ac02635ba5 mruby-compiler: add infrastructure for variable-sized ast nodes
This commit introduces the core infrastructure for variable-sized AST
nodes, designed to improve memory efficiency. The previous fixed-size
nodes are replaced by nodes that can store data inline, such as
strings and integers, reducing pointer indirection and memory overhead.

Key changes include:
- A generic variable-sized node header (`mrb_ast_var_header`).
- A size-class-based memory allocation system for these nodes.
- Implementation of variable-sized nodes for core types: symbols,
  strings, integers, and variables (lvar, gvar, ivar, cvar).
- Integration into the parser and code generator, controlled by a
  feature flag.
- Centralized and improved type-casting macros for AST nodes.

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-03 19:46:03 +09:00
..
2025-07-02 07:14:04 +09:00

mruby-compiler

This mrbgem provides the mruby compiler, which is responsible for parsing Ruby code and generating mruby bytecode.

Functionality

The mruby-compiler gem includes the following components:

  • Parser: Translates Ruby source code into an abstract syntax tree (AST).
  • Code Generator: Traverses the AST to produce executable mruby bytecode.
  • mrbc executable: A command-line tool for compiling .rb files into .mrb bytecode files.

Usage

The mrbc (mruby-bin-mrbc) executable will generate compiled binary from Ruby programs via this gem.

Example of using mrbc:

# Compile a Ruby script to bytecode
bin/mrbc my_script.rb

# Run the compiled script
bin/mruby my_script.mrb