Files
mruby-mruby/mrbgems/mruby-compiler
Yukihiro "Matz" Matsumoto a4754c03b0 mruby-compiler: complete NODE_CASE migration to variable-sized nodes
Replace cons-list based case statement implementation with variable-sized
nodes for improved memory efficiency. The new implementation maintains
identical register allocation behavior using the original's proven
"nil-first, align-last" strategy.

Key changes:
- Convert new_case() to create variable-sized mrb_ast_case_node directly
- Replace codegen_case() with gen_case_var() using array iteration
- Apply original register allocation logic to new node structure
- Fix else clause handling in jump dispatch logic

Supports all case statement variants:
- Bare case statements (case when condition)
- Case with values (case expr when condition)
- UPVAR combinations with closure variables
- Splat operations (*case)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 19:46:11 +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