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 ` in `parse.y` +- [#6412](https://github.com/mruby/mruby/pull/6412) Distinguish the call frame of the generator with `OP_RETURN_BLK` +- [#6413](https://github.com/mruby/mruby/pull/6413) Add links to documentation in `README.md` +- [#6415](https://github.com/mruby/mruby/pull/6415) Fix numbered parameters when used as a singleton +- [#6416](https://github.com/mruby/mruby/pull/6416) Optimize the "new" method's iseq +- [#6419](https://github.com/mruby/mruby/pull/6419) Follow Ruby's behavior for numbered parameters in -> {} +- [#6420](https://github.com/mruby/mruby/pull/6420) Update `labeler.yml`: add label for the `tools` directory +- [#6422](https://github.com/mruby/mruby/pull/6422) Add annotations for function names defined in the preprocessor +- [#6423](https://github.com/mruby/mruby/pull/6423) Adding a serialized test task +- [#6427](https://github.com/mruby/mruby/pull/6427) Need to update `ci` variable after re-entry to VM +- [#6428](https://github.com/mruby/mruby/pull/6428) Change the limits of OP_ADDI and OP_SUBI from 0-127 to 0-255. +- [#6429](https://github.com/mruby/mruby/pull/6429) Fix numbered parameters when used as hash keys +- [#6432](https://github.com/mruby/mruby/pull/6432) Moving code in macro arguments out of macros +- [#6434](https://github.com/mruby/mruby/pull/6434) Added document "Layout of the mruby filesystem" +- [#6436](https://github.com/mruby/mruby/pull/6436) Make `rake doc:update-index` prettier friendly +- [#6437](https://github.com/mruby/mruby/pull/6437) Add more details to the pre-commit config +- [#6438](https://github.com/mruby/mruby/pull/6438) Remove unused `MRuby::Build#list_install_excludes` method +- [#6440](https://github.com/mruby/mruby/pull/6440) Fix `redo` keyword +- [#6442](https://github.com/mruby/mruby/pull/6442) Fixed wrong range condition in `OP_JMPUW` +- [#6443](https://github.com/mruby/mruby/pull/6443) Fix NODE_NEGATE for bigints +- [#6444](https://github.com/mruby/mruby/pull/6444) Add test cases for bigints +- [#6446](https://github.com/mruby/mruby/pull/6446) Omit the `_WIN64` definition check +- [#6447](https://github.com/mruby/mruby/pull/6447) Fixed `File.expand_path` +- [#6448](https://github.com/mruby/mruby/pull/6448) Suppress presym in `mruby/ext/io.h` file +- [#6449](https://github.com/mruby/mruby/pull/6449) Using presym in the `mruby-io/src/file_test.c` file +- [#6450](https://github.com/mruby/mruby/pull/6450) Change `MRB_WITH_IO_PREAD_PWRITE` configuration name +- [#6454](https://github.com/mruby/mruby/pull/6454) mruby-bigint: handle rhs bigint in int_mod and int_divmod functions +- [#6455](https://github.com/mruby/mruby/pull/6455) mruby-bigint: fix rounding behavior in mpz_mdiv and mpz_mdivmod functions +- [#6457](https://github.com/mruby/mruby/pull/6457) bigint: fix bug with division of a small number by a bigint +- [#6459](https://github.com/mruby/mruby/pull/6459) `FileTest` is a module +- [#6461](https://github.com/mruby/mruby/pull/6461) To create a release package file in draft +- [#6462](https://github.com/mruby/mruby/pull/6462) Properly cast the return value of `memchr()` +- [#6463](https://github.com/mruby/mruby/pull/6463) Add `level` argument to `File.dirname` +- [#6465](https://github.com/mruby/mruby/pull/6465) Add initial playstation portable crossbuild support +- [#6468](https://github.com/mruby/mruby/pull/6468) Fixed missing changes to `IB_FIND_BY_KEY()` parameter names +- [#6469](https://github.com/mruby/mruby/pull/6469) Add more `const` qualifier for `RProc` +- [#6472](https://github.com/mruby/mruby/pull/6472) Moved tests for `Integer#quo` +- [#6473](https://github.com/mruby/mruby/pull/6473) Hide `mpz_and()` symbol +- [#6473](https://github.com/mruby/mruby/pull/6473) Hide mpz_and() symbol +- [#6474](https://github.com/mruby/mruby/pull/6474) Avoid array object creation with “unknown keyword” error +- [#6475](https://github.com/mruby/mruby/pull/6475) Don't include deleted mruby-print +- [#6478](https://github.com/mruby/mruby/pull/6478) Fixed buffer overrun in function `chars2bytes()` +- [#6479](https://github.com/mruby/mruby/pull/6479) Reimplementation of `File.expand_path` method +- [#6482](https://github.com/mruby/mruby/pull/6482) Add `File.absolute_path?` method +- [#6487](https://github.com/mruby/mruby/pull/6487) Add Emscripten toolchain & build_config + +--- + +We have done 1,188 commits to 354 files with 20,650 additions and 21,537 deletions since mruby 3.3.0. For more detail of the updates, [see Commit Log](https://github.com/mruby/mruby/compare/3.3.0...3.4.0). + +Thanks to all the contributors who have worked on bug fixes and improvements in the release of `mruby 3.4.0`. diff --git a/downloads/index.html b/downloads/index.html index 359ed42..4981bf3 100644 --- a/downloads/index.html +++ b/downloads/index.html @@ -7,7 +7,7 @@

Downloads

- Current stable: mruby 3.3.0 + Current stable: mruby 3.4.0

diff --git a/index.html b/index.html index 7e4893c..0b16f73 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,7 @@

- Download 3.3.0 Source + Download 3.4.0 Source   or   Find on GitHub