mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
f6f8124406
The direct literal generation optimization for parallel assignment was using the RHS count as the loop bound but only filling registers for LHS variables. When RHS has more elements than LHS (e.g., `a,=1,2`), this caused uninitialized register indices to be used, generating garbage opcodes that crashed the VM. Fix by counting LHS variables and only applying the optimization when LHS and RHS counts match exactly. Co-authored-by: Claude <noreply@anthropic.com>
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.
mrbcexecutable: A command-line tool for compiling.rbfiles into.mrbbytecode 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