leviongit
88e356e7da
remove redundant mrb_hash_get call
...
`mrb_hash_delete` returns the removed element (which is guaranteed to
exist due to the `mrb_hash_key_p` check), this prevents the hash from
being searched twice.
2026-03-20 21:20:18 +01:00
leviongit
95ece95e37
prefer marking the procs implementing attr_reader methods as noarg
...
this commit works on #6752 so it doesn't require a call to
`mrb_get_args`
2026-03-20 19:14:54 +01:00
dearblue
98d763603c
Further optimize Array#product
...
Replace `__product_group` method with `__product_generate` and `__product_next`.
This change eliminates the need for Ruby to perform internal state calculations, allowing it to simply receive the results.
2026-03-20 21:13:52 +09:00
Yukihiro "Matz" Matsumoto
01ce2f8c71
Merge pull request #6747 from katafrakt/handle-hash-default-arg
2026-03-20 16:44:27 +09:00
Yukihiro "Matz" Matsumoto
f08dede1d9
Merge pull request #6752 from khasinski/fix-attr-reader-arity
2026-03-20 16:40:45 +09:00
Yukihiro "Matz" Matsumoto
3bfe703f80
Merge pull request #6750 from dearblue/array.product
2026-03-20 10:24:10 +09:00
Yukihiro "Matz" Matsumoto
e82fa70004
Merge pull request #6749 from hasumikin/fix/microcontroller-profile
2026-03-20 10:22:32 +09:00
Yukihiro "Matz" Matsumoto
8d53f65b96
Merge pull request #6748 from jbampton/clean-up-workflows
2026-03-20 10:21:45 +09:00
Chris Hasiński
c0b1e87c09
Fix attr_reader-generated methods accepting extra arguments
...
attr_reader-generated getter methods silently ignored any arguments
passed to them. CRuby raises ArgumentError in this case.
Add mrb_get_args(mrb, "") to enforce zero arguments, matching CRuby.
2026-03-19 23:12:14 +01:00
dearblue
8441eaf633
Fixed "Out-of-bounds Read" and "Divide-by-Zero" in ary_product_group()
...
Reproduction:
- Out-of-bounds Read
```console
% build/host/bin/mruby -e '([nil] * 256).__product_group([[nil] * 256], 1 << 32, 256)'
zsh: segmentation fault (core dumped) build/host/bin/mruby -e
```
- Divide-by-Zero
```console
% build/host/bin/mruby -e '([nil] * 256).__product_group([[]], 1 << 32, 256)'
zsh: floating point exception (core dumped) build/host/bin/mruby -e '([nil] * 256).__product_group([[]], 1 << 32, 256)'
```
2026-03-19 23:11:06 +09:00
HASUMI Hitoshi
736a72cdc9
[skip ci] Update include/mrbconf.h
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-19 09:50:15 +09:00
HASUMI Hitoshi
5e9eed2d0c
Fix KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE rename inconsistencies
...
Commit 250bf6edd renamed KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE but
missed updating build_config files and documentation. Also restore the
default value in khash.h to 32, consistent with the documented default
and the profile hierarchy (MRB_CONSTRAINED_BASELINE_PROFILE reduces it
to 16).
2026-03-19 09:38:36 +09:00
John Bampton
80d84188fd
pre-commit bump Node.js
2026-03-18 17:57:33 +10:00
John Bampton
55ef8e1728
Update workflows
2026-03-18 17:57:05 +10:00
Paweł Świątkowski
13d9d770fc
Correctly handle empty hash as default named argument
...
```
def func(arg: {})
p arg
end
```
This used to work in earlier mruby versions, but broke somewhere recently.
2026-03-18 08:53:20 +01:00
Yukihiro "Matz" Matsumoto
a41eeaed33
Merge pull request #6735 from dearblue/presym
2026-03-16 21:55:22 +09:00
Yukihiro "Matz" Matsumoto
4ed4326dd5
Merge pull request #6746 from mruby/dependabot/pre_commit/pre-commit-hooks-6e50fbf5c1
2026-03-16 21:47:31 +09:00
dearblue
000acedc35
Prevent full recompilation without changes to presym file
...
Commit b9a1a1fb23 is a revert of commit 8df9a22a85 , differing only in the comment.
This means the issue from https://github.com/mruby/mruby/issues/6721 has reappeared.
The cause of https://github.com/mruby/mruby/issues/6721 , as stated in the commit message for commit 8df9a22a85 , is that each ".o" file has an indirect dependency on all ".pi" files through the presym file.
This patch therefore adds a proxy-like task `gensym:update:#{build.name}` between tasks.
Its purpose is to hide the direct dependency from ".o" files to the presym file from the rake system.
2026-03-14 17:14:37 +09:00
dependabot[bot]
14e98c60c3
build(deps): bump the pre-commit-hooks group across 1 directory with 8 updates
...
Bumps the pre-commit-hooks group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [https://github.com/gitleaks/gitleaks ](https://github.com/gitleaks/gitleaks ) | `v8.30.0` | `8.30.1` |
| [https://github.com/oxipng/oxipng ](https://github.com/oxipng/oxipng ) | `v10.0.0` | `10.1.0` |
| [https://github.com/Lucas-C/pre-commit-hooks ](https://github.com/Lucas-C/pre-commit-hooks ) | `v1.5.5` | `1.5.6` |
| [https://github.com/rhysd/actionlint ](https://github.com/rhysd/actionlint ) | `v1.7.9` | `1.7.11` |
| [https://github.com/codespell-project/codespell ](https://github.com/codespell-project/codespell ) | `v2.4.1` | `2.4.2` |
| [https://github.com/igorshubovych/markdownlint-cli ](https://github.com/igorshubovych/markdownlint-cli ) | `v0.46.0` | `0.48.0` |
| [https://github.com/rubocop/rubocop ](https://github.com/rubocop/rubocop ) | `v1.81.7` | `1.85.1` |
| [https://github.com/adrienverge/yamllint ](https://github.com/adrienverge/yamllint ) | `v1.37.1` | `1.38.0` |
Updates `https://github.com/gitleaks/gitleaks ` from v8.30.0 to 8.30.1
- [Release notes](https://github.com/gitleaks/gitleaks/releases )
- [Commits](https://github.com/gitleaks/gitleaks/compare/v8.30.0...v8.30.1 )
Updates `https://github.com/oxipng/oxipng ` from v10.0.0 to 10.1.0
- [Release notes](https://github.com/oxipng/oxipng/releases )
- [Changelog](https://github.com/oxipng/oxipng/blob/master/CHANGELOG.md )
- [Commits](https://github.com/oxipng/oxipng/compare/v10.0.0...v10.1.0 )
Updates `https://github.com/Lucas-C/pre-commit-hooks ` from v1.5.5 to 1.5.6
- [Release notes](https://github.com/Lucas-C/pre-commit-hooks/releases )
- [Commits](https://github.com/Lucas-C/pre-commit-hooks/compare/v1.5.5...v1.5.6 )
Updates `https://github.com/rhysd/actionlint ` from v1.7.9 to 1.7.11
- [Release notes](https://github.com/rhysd/actionlint/releases )
- [Changelog](https://github.com/rhysd/actionlint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rhysd/actionlint/compare/v1.7.9...v1.7.11 )
Updates `https://github.com/codespell-project/codespell ` from v2.4.1 to 2.4.2
- [Release notes](https://github.com/codespell-project/codespell/releases )
- [Commits](https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2 )
Updates `https://github.com/igorshubovych/markdownlint-cli ` from v0.46.0 to 0.48.0
- [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases )
- [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.46.0...v0.48.0 )
Updates `https://github.com/rubocop/rubocop ` from v1.81.7 to 1.85.1
- [Release notes](https://github.com/rubocop/rubocop/releases )
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rubocop/rubocop/compare/v1.81.7...v1.85.1 )
Updates `https://github.com/adrienverge/yamllint ` from v1.37.1 to 1.38.0
- [Release notes](https://github.com/adrienverge/yamllint/releases )
- [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/adrienverge/yamllint/compare/v1.37.1...v1.38.0 )
---
updated-dependencies:
- dependency-name: https://github.com/gitleaks/gitleaks
dependency-version: 8.30.1
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/oxipng/oxipng
dependency-version: 10.1.0
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/Lucas-C/pre-commit-hooks
dependency-version: 1.5.6
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/rhysd/actionlint
dependency-version: 1.7.11
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/codespell-project/codespell
dependency-version: 2.4.2
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/igorshubovych/markdownlint-cli
dependency-version: 0.48.0
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/rubocop/rubocop
dependency-version: 1.85.1
dependency-type: direct:production
dependency-group: pre-commit-hooks
- dependency-name: https://github.com/adrienverge/yamllint
dependency-version: 1.38.0
dependency-type: direct:production
dependency-group: pre-commit-hooks
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-13 14:57:23 +00:00
mimaki
9d523e2f74
Update version to 4.0.0RC2.
4.0.0-rc2
2026-03-12 19:07:19 +09:00
mimaki
380c459d37
Merge branch 'master' into stable
2026-03-12 19:01:29 +09:00
Yukihiro "Matz" Matsumoto
eb7d0b86d7
Merge pull request #6736 from jbampton/add-dependabot-pre-commit
2026-03-12 17:16:48 +09:00
John Bampton
9bdf998faa
Add pre-commit ecosystem to Dependabot
...
Group dependabot updates to reduce repo noise
Add descriptive group labels
https://github.blog/changelog/2026-03-10-dependabot-now-supports-pre-commit-hooks/
https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference#package-ecosystem-
2026-03-12 16:59:11 +10:00
Yukihiro "Matz" Matsumoto
457a50b485
Merge pull request #6744 from mruby/fix/case-in-no-match-error
2026-03-12 14:36:46 +09:00
Yukihiro "Matz" Matsumoto
143959b94b
doc: fix prettier formatting in markdown files
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 14:33:37 +09:00
Yukihiro "Matz" Matsumoto
d8de35b635
codegen.c: raise NoMatchingPatternError in case/in without else
...
case/in without else clause now raises NoMatchingPatternError
when no pattern matches, matching CRuby behavior. Fixes #6741 .
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 14:28:17 +09:00
Yukihiro "Matz" Matsumoto
b34b7206f9
Merge pull request #6738 from jbampton/add-manual-hooks-workflow
2026-03-12 14:20:02 +09:00
Yukihiro "Matz" Matsumoto
03d1f7d6ec
Merge pull request #6743 from mruby/fix/words-chunking
2026-03-12 14:17:38 +09:00
Yukihiro "Matz" Matsumoto
9239a9e0ef
pre-commit: fix prettier formatting in doc/guides/capi.md
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 14:05:48 +09:00
Yukihiro "Matz" Matsumoto
62cf0dc17a
codegen.c: chunk %w() and %i() literals to reduce register pressure
...
Apply the same chunking strategy used for regular array literals
to %w() and %i() literal arrays in gen_literal_array(). Fixes #6740 .
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 12:12:50 +09:00
Yukihiro "Matz" Matsumoto
12af8f513e
Merge pull request #6742 from mruby/fix/remove-markdown-link-check
2026-03-12 11:52:45 +09:00
Yukihiro "Matz" Matsumoto
6a7561da5f
pre-commit: remove JSON references from prettier hook
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 11:41:17 +09:00
Yukihiro "Matz" Matsumoto
ab378ec01e
Merge pull request #6690 from jbampton/cleanup-prettier-pre-commit
2026-03-12 11:37:25 +09:00
Yukihiro "Matz" Matsumoto
2d00f4a284
Merge pull request #6739 from mimaki/fix-msys2-build-error
2026-03-12 11:36:53 +09:00
Yukihiro "Matz" Matsumoto
628cf498a7
pre-commit: remove markdown-link-check hook
...
External link checkers are inherently flaky in CI due to
websites blocking automated requests (e.g. 403 errors).
Also remove JSON hooks (pretty-format-json, check-json)
since no JSON files remain in the repository.
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-12 11:32:37 +09:00
mimaki
77f6ffecc7
Updates build script to support MSYS2 drive letters, fixing build error with MSYS2.
2026-03-11 11:31:55 +09:00
John Bampton
626b2fa469
Put manual hooks in separate workflow file
2026-03-11 10:29:57 +10:00
Yukihiro "Matz" Matsumoto
cfc83bb6ac
Merge pull request #6734 from mruby/fix/array-chunking
2026-03-10 17:01:28 +09:00
Yukihiro "Matz" Matsumoto
46e8101c03
Merge pull request #6733 from mruby/fix/presym-include
2026-03-10 16:59:51 +09:00
Yukihiro "Matz" Matsumoto
fff7db05bf
Merge pull request #6732 from mruby/fix/language-md-markup
2026-03-10 16:58:34 +09:00
Yukihiro "Matz" Matsumoto
f98d6414dc
codegen.c: chunk array literals at 64 elements to reduce register pressure
...
Array literals were being built by loading all elements into registers
before constructing the array, requiring nregs proportional to the array
size (e.g. nregs=99 for 100 elements). This exceeds mruby/c's register
limit. Restore 3.4-era chunking at GEN_LIT_ARY_MAX (64) elements.
fixes mruby/mruby#6731
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-09 16:50:59 +09:00
Yukihiro "Matz" Matsumoto
8956c5abb5
mruby.h: include mruby/presym.h for all source files
...
Since presym is now mandatory, mruby.h includes presym.h so that
MRB_SYM() macros are available everywhere without explicit include.
Remove redundant #include <mruby/presym.h> from all source files.
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-09 16:50:58 +09:00
Yukihiro "Matz" Matsumoto
8f3917f361
language.md: remove unnecessary bold markup from "operator"
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-09 16:50:54 +09:00
Yukihiro "Matz" Matsumoto
72c9e5d027
Merge pull request #6598 from dearblue/method_missing
2026-03-09 16:38:08 +09:00
Yukihiro "Matz" Matsumoto
295b40534f
Merge pull request #6730 from dearblue/presym
2026-03-09 10:35:42 +09:00
Yukihiro "Matz" Matsumoto
5acc520a1e
Merge pull request #6729 from dearblue/gensym
2026-03-09 10:34:02 +09:00
dearblue
f6f1a42039
Simplifying presym file generation actions
...
By performing output to presym files after header files, there is no longer a need to check for the existence of header files.
Furthermore, concentrating the file output logic into an "if" block eliminates the need for the `update` variable.
Strict atomicity between presym files and header files is still not guaranteed, as before.
If atomicity is truly required, it can be achieved by deleting the presym file before updating the header files.
2026-03-08 22:45:45 +09:00
dearblue
9fff63b436
Simplifying dependency addition for gensym task
...
The `gensym_task` variable was only used for dependency addition and is no longer needed.
2026-03-08 22:43:47 +09:00
Yukihiro "Matz" Matsumoto
17ab42d4c9
Merge pull request #6728 from mruby/dependabot/github_actions/actions/upload-artifact-7
2026-03-06 08:17:12 +09:00
dependabot[bot]
fcb665b88c
build(deps): bump actions/upload-artifact from 6 to 7
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-05 14:52:19 +00:00