mruby 3.2.0
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.
The language
- Now
a::B = cshould evaluateathenc. - Anonymous arguments
*,**,&can be passed for forwarding. - Multi-precision integer is available now via
mruby-bigintgem.
mruby VM and bytecode
OP_ARYDUPwas renamed toOP_ARYSPLAT. The instruction name was changed but instruction number and basic behavior have not changed (except thatARYDUP nilmakes[]).
Tools
mruby
-bonly specifies the script is the binary. The files loaded by-rare not affected by the option.mrubynow loads complied binary if the suffix is.mrb.
mrbc
- Add
--no-optimizeoption to disable optimization.
mrbgems
mruby-class-ext
- Add
Class#subclassesmethod. - Add
Module#undefined_instance_methodsmethod.
New bundled gems
- mruby-errno from [https://github.com/iij/mruby-errno.git]
- mruby-set from [https://github.com/yui-knk/mruby-set.git]
- mruby-dir from [https://github.com/iij/mruby-dir.git]
- mruby-data
Breaking Changes
mrb_vm_run() may detach top-level local variables referenced from blocks
When 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.
- If the
stack_keepparameter is given as 0. - If the number of variables in
irepto 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:
- If the function has no
mrbc_contextpointer parameter, or themrbc_contextpointer parameter is set toNULL. - If the number of variables held in the
mrbc_contextpointer is less than the number of previous top-level local variables.
Intentional reliance on previous behavior may cause compatibility problems in your application.
CVEs
Following CVEs are fixed.
- CVE-2022-0080
- CVE-2022-0240
- CVE-2022-0326
- CVE-2022-0631
- CVE-2022-0481
- CVE-2022-0525
- CVE-2022-0570
- CVE-2022-0614
- CVE-2022-0623
- CVE-2022-0630
- CVE-2022-0631
- CVE-2022-0632
- CVE-2022-0717
- CVE-2022-0890
- CVE-2022-1106
- CVE-2022-1212
- CVE-2022-1276
- CVE-2022-1286
- CVE-2022-1934
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.