mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
4fc81e8ea0
The p_value grammar rule passed raw tSTRING token (a (len . str) cons cell) directly to new_pat_value() without wrapping it as a proper AST node. When codegen processed this malformed node, it read the length field as the node type, causing misinterpretation and crash. Wrap tSTRING with new_str(p, list1($1)) to create a proper NODE_STR, consistent with how the primary:string rule handles strings. Found by ClusterFuzz (oss-fuzz/mruby_fuzzer). 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