diff --git a/CODEOWNERS b/.github/CODEOWNERS
similarity index 100%
rename from CODEOWNERS
rename to .github/CODEOWNERS
diff --git a/Gemfile.lock b/Gemfile.lock
index faf2a54..f14c384 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,20 +1,23 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (7.1.3.2)
+ activesupport (7.2.2.1)
base64
+ benchmark (>= 0.3)
bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
+ concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
+ logger (>= 1.4.2)
minitest (>= 5.1)
- mutex_m
- tzinfo (~> 2.0)
- addressable (2.8.6)
- public_suffix (>= 2.0.2, < 6.0)
+ securerandom (>= 0.3)
+ tzinfo (~> 2.0, >= 2.0.5)
+ addressable (2.8.7)
+ public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
- bigdecimal (3.1.6)
+ benchmark (0.4.0)
+ bigdecimal (3.1.9)
coderay (1.1.3)
coffee-script (2.4.1)
coffee-script-source
@@ -22,35 +25,39 @@ GEM
coffee-script-source (1.12.2)
colorator (1.1.0)
commonmarker (0.23.10)
- concurrent-ruby (1.2.3)
- connection_pool (2.4.1)
- dnsruby (1.70.0)
+ concurrent-ruby (1.3.5)
+ connection_pool (2.5.0)
+ csv (3.3.0)
+ dnsruby (1.72.2)
simpleidn (~> 0.2.1)
- drb (2.2.0)
- ruby2_keywords
+ drb (2.2.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
- execjs (2.8.1)
- faraday (2.7.2)
- faraday-net_http (>= 2.0, < 3.1)
- ruby2_keywords (>= 0.0.4)
- faraday-net_http (3.0.2)
- ffi (1.15.5)
+ execjs (2.9.1)
+ faraday (2.10.1)
+ faraday-net_http (>= 2.0, < 3.2)
+ logger
+ faraday-net_http (3.1.1)
+ net-http
+ ffi (1.17.0)
+ ffi (1.17.0-x86_64-darwin)
forwardable-extended (2.6.0)
gemoji (4.1.0)
- git (1.19.1)
+ git (3.0.0)
+ activesupport (>= 5.0)
addressable (~> 2.8)
- rchardet (~> 1.8)
- github-pages (231)
+ process_executer (~> 1.3)
+ rchardet (~> 1.9)
+ github-pages (232)
github-pages-health-check (= 1.18.2)
- jekyll (= 3.9.5)
+ jekyll (= 3.10.0)
jekyll-avatar (= 0.8.0)
jekyll-coffeescript (= 1.2.2)
- jekyll-commonmark-ghpages (= 0.4.0)
+ jekyll-commonmark-ghpages (= 0.5.1)
jekyll-default-layout (= 0.1.5)
jekyll-feed (= 0.17.0)
jekyll-gist (= 1.5.0)
@@ -87,9 +94,10 @@ GEM
liquid (= 4.0.4)
mercenary (~> 0.3)
minima (= 2.5.1)
- nokogiri (>= 1.13.6, < 2.0)
+ nokogiri (>= 1.16.2, < 2.0)
rouge (= 3.30.0)
terminal-table (~> 1.4)
+ webrick (~> 1.8)
github-pages-health-check (1.18.2)
addressable (~> 2.3)
dnsruby (~> 1.60)
@@ -100,11 +108,12 @@ GEM
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
- i18n (1.14.1)
+ i18n (1.14.7)
concurrent-ruby (~> 1.0)
- jekyll (3.9.5)
+ jekyll (3.10.0)
addressable (~> 2.4)
colorator (~> 1.0)
+ csv (~> 3.0)
em-websocket (~> 0.5)
i18n (>= 0.7, < 2)
jekyll-sass-converter (~> 1.0)
@@ -115,6 +124,7 @@ GEM
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
+ webrick (>= 1.0)
jekyll-avatar (0.8.0)
jekyll (>= 3.0, < 5.0)
jekyll-coffeescript (1.2.2)
@@ -122,9 +132,9 @@ GEM
coffee-script-source (~> 1.12)
jekyll-commonmark (1.4.0)
commonmarker (~> 0.22)
- jekyll-commonmark-ghpages (0.4.0)
- commonmarker (~> 0.23.7)
- jekyll (~> 3.9.0)
+ jekyll-commonmark-ghpages (0.5.1)
+ commonmarker (>= 0.23.7, < 1.1.0)
+ jekyll (>= 3.9, < 4.0)
jekyll-commonmark (~> 1.4.0)
rouge (>= 2.0, < 5.0)
jekyll-default-layout (0.1.5)
@@ -218,34 +228,36 @@ GEM
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
+ logger (1.6.6)
mercenary (0.3.6)
mgem (0.3.0)
- mini_portile2 (2.8.5)
+ mini_portile2 (2.8.8)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
- minitest (5.22.2)
- mutex_m (0.2.0)
- nokogiri (1.16.2)
+ minitest (5.25.4)
+ net-http (0.4.1)
+ uri
+ nokogiri (1.18.8)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
- nokogiri (1.16.2-x86_64-darwin)
+ nokogiri (1.18.8-x86_64-darwin)
racc (~> 1.4)
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (5.0.4)
- racc (1.7.3)
+ process_executer (1.3.0)
+ public_suffix (5.1.1)
+ racc (1.8.1)
rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
+ rb-inotify (0.11.1)
ffi (~> 1.0)
- rchardet (1.8.0)
- rexml (3.2.6)
+ rchardet (1.9.0)
+ rexml (3.3.9)
rouge (3.30.0)
- ruby2_keywords (0.0.5)
rubyzip (2.3.2)
safe_yaml (1.0.5)
sass (3.7.4)
@@ -256,18 +268,17 @@ GEM
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
- simpleidn (0.2.1)
- unf (~> 0.1.4)
+ securerandom (0.4.1)
+ simpleidn (0.2.3)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- unf (0.1.4)
- unf_ext
- unf_ext (0.0.9.1)
unicode-display_width (1.8.0)
+ uri (0.13.2)
+ webrick (1.8.2)
yard (0.9.36)
yard-coderay (0.1.0)
coderay
diff --git a/_config.yml b/_config.yml
index 52d089b..056b011 100644
--- a/_config.yml
+++ b/_config.yml
@@ -16,7 +16,6 @@ plugins:
- jekyll-feed
- jekyll-sitemap
exclude:
- - CODEOWNERS
- Gemfile
- Gemfile.lock
- README.md
diff --git a/_posts/2025-04-20-mruby-3.4.0-released.markdown b/_posts/2025-04-20-mruby-3.4.0-released.markdown
new file mode 100644
index 0000000..f935f5b
--- /dev/null
+++ b/_posts/2025-04-20-mruby-3.4.0-released.markdown
@@ -0,0 +1,273 @@
+---
+layout: post
+title: "mruby 3.4.0 released"
+date: 2025-04-20 00:00:00
+categories: releases
+---
+
+# mruby 3.4.0
+
+We are announcing the first stable release of mruby 3.4 series - [mruby 3.4.0](https://github.com/mruby/mruby/releases/tag/3.4.0).
+
+Describes the new features and changes in mruby 3.4.
+The main changes in mruby 3.4 are also described in [doc/mruby3.4.md](https://github.com/mruby/mruby/blob/master/doc/mruby3.4.md).
+
+---
+
+# User visible changes in `mruby3.4` from `mruby3.3`
+
+"**_NOTE_**:" are changes to be aware of.
+
+# The language
+
+- mruby now supports `private` and `protected` visibitily ([b0db0bd](https://github.com/mruby/mruby/commit/b0db0bd))
+- Maximum length of inlined symbols reduced from 5 to 4 characters to provide space for visibility flags ([6442a01](https://github.com/mruby/mruby/commit/6442a01))
+- Many methods are made private according to CRuby visibility ([4a0e806](https://github.com/mruby/mruby/commit/4a0e806))
+- Generate OP_SSEND for `self.method` type calls ([111fe4b](https://github.com/mruby/mruby/commit/111fe4b))
+- `initialize` method will be always private ([eb8b412](https://github.com/mruby/mruby/commit/eb8b412))
+- Add new hooks `method_removed`, `method_undefined` ([9c74f6e](https://github.com/mruby/mruby/commit/9c74f6e))
+- Add new hooks `singleton_method_removed`, `singleton_method_undefined` ([0863c08](https://github.com/mruby/mruby/commit/0863c08))
+- Updated `OP_DEF` output from codedump ([3a3e877](https://github.com/mruby/mruby/commit/3a3e877))
+- Better handling of binary strings, e.g. String#b ([b0127f0](https://github.com/mruby/mruby/commit/b0127f0))
+- Hash `to_s` format has changed ([baeeb5e](https://github.com/mruby/mruby/commit/baeeb5e))
+- Some encoding related method such as `#force_encoding` ([e47b4ca](https://github.com/mruby/mruby/commit/e47b4ca)), `#b` ([b0127f0](https://github.com/mruby/mruby/commit/b0127f0))
+- Constant folding for `String#+` ([6687bdd](https://github.com/mruby/mruby/commit/6687bdd))
+- Remove Float bit-operation ([db8368f](https://github.com/mruby/mruby/commit/db8368f))
+- use SWAR technique for strlen performance ([cbb31e6](https://github.com/mruby/mruby/commit/cbb31e6))
+- use merge sort for `Array#sort` ([5bd63d6](https://github.com/mruby/mruby/commit/5bd63d6))
+
+# Changes in C API
+
+- pool.c renamed to mempool.c (and mrb_pool to mrb_mempool) ([49525fa](https://github.com/mruby/mruby/commit/49525fa))
+- mrb_pool_value renamed to mrb_irep_pool to reduce confusion ([62ef5db](https://github.com/mruby/mruby/commit/62ef5db))
+- rename BOXNIX_SET_VALUE to BOXNO_SET_VALUE ([#6397](https://github.com/mruby/mruby/pull/6397))
+- `MRB_FROZEN_P()` is replaced by `mrb_frozen_p()` ([c11d18e](https://github.com/mruby/mruby/commit/c11d18e))
+- rename `color` to `gc_color` ([0e79f6b](https://github.com/mruby/mruby/commit/0e79f6b), [1e36d76](https://github.com/mruby/mruby/commit/1e36d76))
+- add `obj->frozen` instead of flags `MRB_SET_FROZEN_FLAG`/`MRB_UNSET_FROZEN_FLAG` ([8276143](https://github.com/mruby/mruby/commit/8276143))
+
+# Build & Configuration
+
+- New Build Target: `test:run:serial`, `test:run:serial:lib`, `test:run:serial:bin` ([#6423](https://github.com/mruby/mruby/pull/6423))
+- New Platform: Playstation Portable ([#6022](https://github.com/mruby/mruby/pull/6465))
+- New Platform: emscripten ([#6487](https://github.com/mruby/mruby/pull/6487))
+- New Config: no-float (with MRB_NO_FLOAT) ([32200f1](https://github.com/mruby/mruby/commit/32200f1))
+
+# Changes in mrbgems
+
+- **mruby-print**: removed; if you do not use `mruby-io`, mruby use `#print` etc. in the core ([8c8bbd9](https://github.com/mruby/mruby/commit/8c8bbd9))
+- **mruby-enum-lazy**: Add Enumerable::Lazy#grep_v to mruby-enum-lazy ([#6171](https://github.com/mruby/mruby/pull/6171))
+- **mruby-io**: Add `level` argument to `File.dirname` ([#6463](https://github.com/mruby/mruby/pull/6463))
+- **mruby-io**: File.absolute_path? ([#6482](https://github.com/mruby/mruby/pull/6482))
+- **mruby-io**: File.absolute_path ([96113a2](https://github.com/mruby/mruby/commit/96113a2))
+- **mruby-toplevel-ext**: top-level public/private/protected moved to the core ([2a876d2](https://github.com/mruby/mruby/commit/2a876d2))
+- **mruby-metaprog**: method list methods now works according to the visibility ([9229da1](https://github.com/mruby/mruby/commit/9229da1))
+- **mruby-metaprog**: `public_instance_methods`, `private_instance_methods`, `protected_instance_methods` ([9e3e7b2](https://github.com/mruby/mruby/commit/9e3e7b2))
+- **mruby-encoding**: MRB_UTF8_STRING turned on automatically with this gem ([74bdae9](https://github.com/mruby/mruby/commit/74bdae9))
+
+# Fixed GitHub Issues
+
+- [#6173](https://github.com/mruby/mruby/issues/6173) Fails to build with tcc(Tiny C Compiler)
+- [#6156](https://github.com/mruby/mruby/issues/6156) '/LIBPATH' issue
+- [#6183](https://github.com/mruby/mruby/issues/6183) ".e".to_f returns NAN
+- [#6182](https://github.com/mruby/mruby/issues/6182) mrb_read_float() converts "0.3" with a small error compared to strtod()
+- [#6210](https://github.com/mruby/mruby/issues/6210) Unary minus seems broken
+- [#6255](https://github.com/mruby/mruby/issues/6255) Wrong number of characters in broken UTF-8 string
+- [#4038](https://github.com/mruby/mruby/issues/4038) Heap buffer overflow in OP_ENTER
+- [#6262](https://github.com/mruby/mruby/issues/6262) Unable to define == for objects when using Array#delete
+- [#6267](https://github.com/mruby/mruby/issues/6267) When MRB_UTF8_STRING is enabled, giving byte characters for String#index and String#split gives wrong results
+- [#6277](https://github.com/mruby/mruby/issues/6277) MSVC: can't use malloc() in string.c with WIN32_LEAN_AND_MEAN
+- [#6240](https://github.com/mruby/mruby/issues/6240) Differentiate between lib and lib64 in the build settings.
+- [#6304](https://github.com/mruby/mruby/issues/6304) Calling method_missing with only Kwargs passes arguments incorrectly
+- [#6317](https://github.com/mruby/mruby/issues/6317) mrb_gc_register() may cause GC and collect the object being protected
+- [#6307](https://github.com/mruby/mruby/issues/6307) Planned change patch for mrb_vm_exec()
+- [#6298](https://github.com/mruby/mruby/issues/6298) foo :bar {} is legal in mruby?
+- [#6326](https://github.com/mruby/mruby/issues/6326) Detect “Use-after-free” with address sanitizer
+- [#5358](https://github.com/mruby/mruby/issues/5358) static warning from getpwnam
+- [#6339](https://github.com/mruby/mruby/issues/6339) mrb_ary_delete() may refer to an invalid address (use-after-free)
+- [#6346](https://github.com/mruby/mruby/issues/6346) Block kwargs are passed as last positional arg when using yield
+- [#6365](https://github.com/mruby/mruby/issues/6365) powl() not available when compiling for Dreamcast
+- [#6369](https://github.com/mruby/mruby/issues/6369) 100x Performance Regression from 3.1
+- [#6270](https://github.com/mruby/mruby/issues/6270) NODE_ZSUPER from deeply nested blocks will result in a truncated digits for block index in OP_ARGARY
+- [#6297](https://github.com/mruby/mruby/issues/6297) Assigning to a block variable changes the actual block (thus affecting block_given? and yield)
+- [#6389](https://github.com/mruby/mruby/issues/6389) instance_exec named block args don't work properly
+- [#6388](https://github.com/mruby/mruby/issues/6388) Recent commit broke my windows build
+- [#6411](https://github.com/mruby/mruby/issues/6411) Wrong function unwinding when using return in a block
+- [#6439](https://github.com/mruby/mruby/issues/6439) OP_JMPUW does not call the ensure block when it jumps to the beginning of the begin block
+- [#6441](https://github.com/mruby/mruby/issues/6441) break inside while loop will execute the ensure block outside of the while loop
+- [#6453](https://github.com/mruby/mruby/issues/6453) Bigint: incorrect behavior of ^ operator
+- [#6452](https://github.com/mruby/mruby/issues/6452) Bigint: weird mod behavior
+- [#6451](https://github.com/mruby/mruby/issues/6451) Bigint: incorrect division behavior
+- [#6456](https://github.com/mruby/mruby/issues/6456) bigint: bug with division of a small number by a bigint
+- [#6466](https://github.com/mruby/mruby/issues/6466) mruby-bin-mruby using Kernel#p and Kernel#print in bintest fails test
+- [#6467](https://github.com/mruby/mruby/issues/6467) Heap-Use-After-Free due to Recursive group_by Calls
+- [#6471](https://github.com/mruby/mruby/issues/6471) Discrepancy in codegen for binary operations between master branch and 3.3.0
+- [#6477](https://github.com/mruby/mruby/issues/6477) heap-buffer-overflow in mrb_vm_exec
+- [#6485](https://github.com/mruby/mruby/issues/6485) Hash#rehash does not check if the hash is frozen
+- [#6483](https://github.com/mruby/mruby/issues/6483) Hash#default_proc= accepts arbitrary objects that are not callable
+- [#6491](https://github.com/mruby/mruby/issues/6491) Destroy existing string literals when composing string literals
+
+# Merged Pull Requests (User Visible Ones)
+
+- [#6171](https://github.com/mruby/mruby/pull/6171) Add Enumerable::Lazy#grep_v to mruby-enum-lazy
+- [#6174](https://github.com/mruby/mruby/pull/6174) Fix MRUBY_PACKAGE_DIR in mruby-config.bat
+- [#6175](https://github.com/mruby/mruby/pull/6175) Corrected strange conditional in mrb_vm_run()
+- [#6176](https://github.com/mruby/mruby/pull/6176) Stop assuming alias proc in CI_PROC_SET()
+- [#6177](https://github.com/mruby/mruby/pull/6177) gha: add macOS 14 to the build
+- [#6184](https://github.com/mruby/mruby/pull/6184) Remove the L_STOP label
+- [#6185](https://github.com/mruby/mruby/pull/6185) Added mrb_callinfo::u.keep_context for clarity
+- [#6186](https://github.com/mruby/mruby/pull/6186) Omit NULL check of e->cxt in OP_RETURN_BLK
+- [#6191](https://github.com/mruby/mruby/pull/6191) Speed up symbol equality comparison
+- [#6192](https://github.com/mruby/mruby/pull/6192) Fix `OP_STOP` with exception
+- [#6193](https://github.com/mruby/mruby/pull/6193) Fix wrong assertion in `OP_SENDB`.
+- [#6194](https://github.com/mruby/mruby/pull/6194) Simplify the calculation of the number of closures in `MRB_TT_FIBER`
+- [#6197](https://github.com/mruby/mruby/pull/6197) Fix int_xor to call flo_xor.
+- [#6201](https://github.com/mruby/mruby/pull/6201) tasks/doc.rake: standardize the `rake doc` error messages
+- [#6202](https://github.com/mruby/mruby/pull/6202) Remove the `.yardoc` folder with `rake doc:clean:api`
+- [#6204](https://github.com/mruby/mruby/pull/6204) Clean up the `.editorconfig` file
+- [#6209](https://github.com/mruby/mruby/pull/6209) Minor `.gitignore` clean up
+- [#6211](https://github.com/mruby/mruby/pull/6211) Minor `.gitignore` clean up; order entries
+- [#6216](https://github.com/mruby/mruby/pull/6216) Shared empty `iv_tbl` of module
+- [#6217](https://github.com/mruby/mruby/pull/6217) Strict declaration for `mrb_istruct_size()`
+- [#6219](https://github.com/mruby/mruby/pull/6219) Avoid assigning a fixed value in the loop
+- [#6220](https://github.com/mruby/mruby/pull/6220) Reorganize `mrb_cache_entry` and `mrb_method_t` types
+- [#6221](https://github.com/mruby/mruby/pull/6221) Arranging `each_backtrace()`
+- [#6222](https://github.com/mruby/mruby/pull/6222) Need to synchronize `dbg->regs` after VM call in `mrdb`
+- [#6224](https://github.com/mruby/mruby/pull/6224) `mrb_env_unshare()` to break the link to fiber
+- [#6225](https://github.com/mruby/mruby/pull/6225) Revert "Adjust environment when `mrb_exec_irep` happened."
+- [#6227](https://github.com/mruby/mruby/pull/6227) fix: `Array#shuffle(!)` result distribution
+- [#6228](https://github.com/mruby/mruby/pull/6228) Revert "`env` referred from top-level callinfo should not be unshared; fix #4019"
+- [#6230](https://github.com/mruby/mruby/pull/6230) Fix status of fiber after switched by exception raised
+- [#6231](https://github.com/mruby/mruby/pull/6231) Add a way to let other gems handle closing of fds in mruby-io
+- [#6232](https://github.com/mruby/mruby/pull/6232) Fold the code for freeing `env`
+- [#6233](https://github.com/mruby/mruby/pull/6233) Free stack memory at end of fiber
+- [#6235](https://github.com/mruby/mruby/pull/6235) fix `Array#delete` always firing the block when deleting `nil`
+- [#6236](https://github.com/mruby/mruby/pull/6236) unify the code for filter methods (and speed up `#reject!`)
+- [#6237](https://github.com/mruby/mruby/pull/6237) Stricter env objects to attach to ci
+- [#6238](https://github.com/mruby/mruby/pull/6238) Minimize zero initialization of the stack
+- [#6243](https://github.com/mruby/mruby/pull/6243) Fixed base64 decoding in `mruby-pack`
+- [#6244](https://github.com/mruby/mruby/pull/6244) Revise scope of role of `mrb_vm_run()`
+- [#6246](https://github.com/mruby/mruby/pull/6246) Fix typo in `test/t/hash.rb`
+- [#6249](https://github.com/mruby/mruby/pull/6249) Fix grammar in `src/vm.c`; `catched` -> `caught`
+- [#6250](https://github.com/mruby/mruby/pull/6250) Fix spelling
+- [#6251](https://github.com/mruby/mruby/pull/6251) Clean up root move `CODEOWNERS` to `.github` directory
+- [#6253](https://github.com/mruby/mruby/pull/6253) Allow recycling fibers by GC if not referenced directly
+- [#6256](https://github.com/mruby/mruby/pull/6256) Update documentation for `mrb_top_run()`
+- [#6257](https://github.com/mruby/mruby/pull/6257) fix some mrbconf.md typos
+- [#6260](https://github.com/mruby/mruby/pull/6260) Remove `exc_caught` from `mrb_vm_exec()`
+- [#6261](https://github.com/mruby/mruby/pull/6261) fix: `to_a` integer ranges with `begin > end` failing
+- [#6263](https://github.com/mruby/mruby/pull/6263) fix: `Array#delete` mistakenly calling block even if not passed
+- [#6264](https://github.com/mruby/mruby/pull/6264) Must pass keyword arguments for `Kernel#to_enum`
+- [#6265](https://github.com/mruby/mruby/pull/6265) Fixes `Dir.children` and `Dir.each_child`
+- [#6266](https://github.com/mruby/mruby/pull/6266) Passes the nonexistent key as a block argument in `Array#delete`
+- [#6273](https://github.com/mruby/mruby/pull/6273) Improvements to `mrb_protect_atexit()`
+- [#6275](https://github.com/mruby/mruby/pull/6275) Fixed `Binding#eval` that failed to assign to the same variable
+- [#6276](https://github.com/mruby/mruby/pull/6276) Always run `atexit` on the top-level call frame
+- [#6279](https://github.com/mruby/mruby/pull/6279) Include headers for malloc() explicitly; fix #6277
+- [#6280](https://github.com/mruby/mruby/pull/6280) Remove `MRB_ENV_CLOSED` flag
+- [#6281](https://github.com/mruby/mruby/pull/6281) Fixes local variables in `mruby-binding`.
+- [#6283](https://github.com/mruby/mruby/pull/6283) Simplify `uvenv()`
+- [#6288](https://github.com/mruby/mruby/pull/6288) Detach `env` of ci explicitly on atexit
+- [#6289](https://github.com/mruby/mruby/pull/6289) Simplify `OP_RETURN_BLK` and `OP_BREAK`
+- [#6290](https://github.com/mruby/mruby/pull/6290) Allow to change the output directory name of the `libmruby` file
+- [#6293](https://github.com/mruby/mruby/pull/6293) Changed the instruction table in `opcode.md`
+- [#6294](https://github.com/mruby/mruby/pull/6294) Optimise `mrb_iv_get`
+- [#6302](https://github.com/mruby/mruby/pull/6302) Minor cleanup in mrb_str_init
+- [#6303](https://github.com/mruby/mruby/pull/6303) mrb_str_aset_m() should return replace instead of str
+- [#6305](https://github.com/mruby/mruby/pull/6305) Protect keyword arguments in `prepare_missing()`
+- [#6308](https://github.com/mruby/mruby/pull/6308) Assume that `MRB_CATCH()` has `mrb->exc` set
+- [#6310](https://github.com/mruby/mruby/pull/6310) Doubling the call stack when extending it
+- [#6311](https://github.com/mruby/mruby/pull/6311) Added fast-path for positional arguments less than 15 in `OP_SEND`
+- [#6312](https://github.com/mruby/mruby/pull/6312) Omit error checking at `OP_RETURN`, `OP_RETURN_BLK` and `OP_BREAK`
+- [#6313](https://github.com/mruby/mruby/pull/6313) Fix wrong column number in opcode.md
+- [#6314](https://github.com/mruby/mruby/pull/6314) Optimize even?/odd? for big integers
+- [#6318](https://github.com/mruby/mruby/pull/6318) Shrink variables in `mrb_vm_exec()`
+- [#6320](https://github.com/mruby/mruby/pull/6320) Shrinking the code in `OP_BREAK` and `OP_RETURN_BLK`
+- [#6321](https://github.com/mruby/mruby/pull/6321) Avoid warnings in `lib/**/*.rb`
+- [#6322](https://github.com/mruby/mruby/pull/6322) Fix mrb_ro_data_p on Intel Mac
+- [#6324](https://github.com/mruby/mruby/pull/6324) Remove `localjump_error()`
+- [#6327](https://github.com/mruby/mruby/pull/6327) fix ncurses linking issues
+- [#6328](https://github.com/mruby/mruby/pull/6328) Fix use-after-free in `obj_free()` for env objects
+- [#6329](https://github.com/mruby/mruby/pull/6329) Fix use-after-free in `mrb_obj_alloc()`
+- [#6330](https://github.com/mruby/mruby/pull/6330) Add a precondition to call `mrb_env_unshare()`.
+- [#6331](https://github.com/mruby/mruby/pull/6331) Restore the GC arena with tests
+- [#6332](https://github.com/mruby/mruby/pull/6332) Must not depend on the “host” build to generate `mruby-compiler/core/y.tab.c`
+- [#6333](https://github.com/mruby/mruby/pull/6333) Reduce the number of branch instructions in the `heap_p()`
+- [#6335](https://github.com/mruby/mruby/pull/6335) Add `return_ci` in `CHECKPOINT_MAIN()` of `OP_RETURN`
+- [#6338](https://github.com/mruby/mruby/pull/6338) Need to place static proc objects into 8-byte alignments
+- [#6340](https://github.com/mruby/mruby/pull/6340) Fix use-after-free for `Array#<=>`
+- [#6341](https://github.com/mruby/mruby/pull/6341) Need to restore the GC arena after some function calls
+- [#6344](https://github.com/mruby/mruby/pull/6344) prefer using `mrb_yield` to call block arguments
+- [#6347](https://github.com/mruby/mruby/pull/6347) codegen.c,parse.y: remove flattening of `yield` arguments; fix #6346
+- [#6348](https://github.com/mruby/mruby/pull/6348) Cancel the warning disablement
+- [#6349](https://github.com/mruby/mruby/pull/6349) Perform GC before deleting directories
+- [#6350](https://github.com/mruby/mruby/pull/6350) Fixed character encoding conversion function mismatch
+- [#6351](https://github.com/mruby/mruby/pull/6351) Remove unnecessary `mrb_gc_arena_restore()`
+- [#6353](https://github.com/mruby/mruby/pull/6353) Fix use-after-free in `mrb_ary_delete()`
+- [#6356](https://github.com/mruby/mruby/pull/6356) Making splat argument objects invisible from Ruby side
+- [#6373](https://github.com/mruby/mruby/pull/6373) Add build config for Milk-V Duo (RISC-V Linux) board
+- [#6382](https://github.com/mruby/mruby/pull/6382) Make array objects invisible in `mrb_gc_register()`
+- [#6385](https://github.com/mruby/mruby/pull/6385) Small improvements for `mrb_gc_register()`
+- [#6386](https://github.com/mruby/mruby/pull/6386) Avoid calling `mrb_gv_set()` from `mrb_gc_unregister()`
+- [#6387](https://github.com/mruby/mruby/pull/6387) Small improvements for `mrb_gc_unregister()`
+- [#6390](https://github.com/mruby/mruby/pull/6390) Fix use-after-free by `mrb_gc_unregistor()`
+- [#6391](https://github.com/mruby/mruby/pull/6391) Fixed argument forwarding in `instance_exec`
+- [#6392](https://github.com/mruby/mruby/pull/6392) Fix argument forwarding in `mrb_exec_irep()`
+- [#6393](https://github.com/mruby/mruby/pull/6393) Follow-up to #6391
+- [#6395](https://github.com/mruby/mruby/pull/6395) Storing method-id inside Symbol#to_proc
+- [#6396](https://github.com/mruby/mruby/pull/6396) Milk-V Build Config: update GPIO gem URL
+- [#6397](https://github.com/mruby/mruby/pull/6397) boxing_no.h: rename BOXNIX_SET_VALUE -> BOXNO_SET_VALUE
+- [#6399](https://github.com/mruby/mruby/pull/6399) Add macOS 15 to the build
+- [#6405](https://github.com/mruby/mruby/pull/6405) `io_read`: use `%i` instead of `%d` in call to `mrb_raisef`
+- [#6407](https://github.com/mruby/mruby/pull/6407) Allow to exclude specific files in `rake install`
+- [#6408](https://github.com/mruby/mruby/pull/6408) Improve compliance with C++ standards
+- [#6410](https://github.com/mruby/mruby/pull/6410) Put `#include
- Current stable: mruby 3.3.0
+ Current stable: mruby 3.4.0
Downloads