We are announcing the first stable release of mruby 3.2 series - mruby 3.2.0.
Describes the new features and changes in mruby 3.2.
The main changes in mruby 3.2 are also described in doc/mruby3.2.md.
a::B = c
should evaluate a
then c
.*
, **
, &
can be passed for forwarding.mruby-bigint
gem.OP_ARYDUP
was renamed to OP_ARYSPLAT
. The instruction name
was changed but instruction number and basic behavior have not
changed (except that ARYDUP nil
makes []
).mruby
-b
only specifies the script is the binary. The files loaded by -r
are not affected by the option.mruby
now loads complied binary if the suffix is .mrb
.mrbc
--no-optimize
option to disable optimization.Class#subclasses
method.Module#undefined_instance_methods
method.mrb_vm_run()
may detach top-level local variables referenced from blocksWhen the mrb_vm_run()
function (including mrb_top_run()
) is called,
the previous top-level local variables referenced from blocks is detached under either of the following conditions.
stack_keep
parameter is given as 0.irep
to be executed is less than the number of previous top-level local variables.This change also affects API functions such as mrb_load_string()
and mrb_load_file()
.
The conditions under which the previous top-level local variables referenced from blocks is detached in these functions are as follows:
mrbc_context
pointer parameter, or the mrbc_context
pointer parameter is set to NULL
.mrbc_context
pointer is less than the number of previous top-level local variables.Intentional reliance on previous behavior may cause compatibility problems in your application.
Following CVEs are fixed.
We have done 1,243 commits to 270 files with 19,130 additions and 10,192 deletions since mruby 3.1.0. For more detail of the updates, see Commit Log.
Thanks to all the contributors who have worked on bug fixes and improvements in the release of mruby 3.2.0
.