Commit Graph

16416 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto dc5566e560 mruby-bigint (int_fit_limb_p): fix the logic to check mrb_int size
`int_fit_limb_p()` checks if `mrb_int` fits in `mp_limb`. Previous logic
did not work well with negative integers.
2024-11-20 11:27:54 +09:00
Yukihiro "Matz" Matsumoto 33357d4f35 hash.c (ht_set_without_ib_adjustment): need to skip tombstone; #6421
If a tombstone (a deleted entry slot) is found in searching the entry,
it should be skipped, but we had added the new entry even if the entry
to be replaced might be found in the further search. #6414 and #6421
tried to rehash the table to remove tombstone. But rehashing consumes
memory. So for the time being, we just skip tombstones in the search.
Maybe we will add some heuristics to rehash when the table has too many
tombstones. close #6414
2024-11-20 10:52:39 +09:00
Yukihiro "Matz" Matsumoto 9ea6bda781 Merge pull request #6427 from dearblue/vm-recursive 2024-11-20 07:22:12 +09:00
Yukihiro "Matz" Matsumoto 4953dcd81f Merge pull request #6428 from hoshiumiarata/change_limits_of_addi_and_subi 2024-11-20 06:37:19 +09:00
Hoshiumi Arata d5823623ed Change the limits of OP_ADDI and OP_SUBI from 0-127 to 0-255. 2024-11-19 23:36:22 +09:00
Yukihiro "Matz" Matsumoto 9546207047 Merge pull request #6426 from hoshiumiarata/coverage
Add GitHub Actions workflow for coverage reporting
2024-11-19 22:55:37 +09:00
dearblue 0337e0e0f1 Need to update ci variable after re-entry to VM
Some functions called by `mrb_vm_exec()` involve re-entry into the mruby VM.
If the `ci` variable is not updated after re-entry, use-after-free is caused.

This patch makes the following after-call fixes.

| called                  | might call methods
| ----------------------- | ----------------
| `mrb_ary_splat()`       | `#to_a`
| `hash_new_from_regs()`  | `#eql?` `#hash`
| `mrb_hash_delete_key()` | `#eql?` `#hash`
| `mrb_hash_get()`        | `#eql?` `#hash` `#default`
| `mrb_hash_key_p()`      | `#eql?` `#hash`
| `mrb_hash_merge()`      | `#eql?` `#hash`
| `mrb_hash_set()`        | `#eql?` `#hash`
| `mrb_range_new()`       | `#<=>`
2024-11-19 22:47:04 +09:00
Hoshiumi Arata 0947dd64d0 Update coverage workflow to use Clang 18 for compilation 2024-11-19 18:24:40 +09:00
Hoshiumi Arata abca6549d8 Update coverage workflow to use Clang for compilation 2024-11-19 18:12:57 +09:00
Hoshiumi Arata 593cda570f Update retention days for coverage report in GitHub Actions workflow 2024-11-19 18:11:08 +09:00
Yukihiro "Matz" Matsumoto dbb1d2342f Merge pull request #6425 from mruby/dependabot/github_actions/super-linter/super-linter-7.2.0 2024-11-19 06:41:07 +09:00
Hoshiumi Arata 1fbcd4a39b Fix lint errors 2024-11-19 00:06:37 +09:00
Hoshiumi Arata f7b2ec1408 Fix formatting of coverage report in GitHub Actions workflow 2024-11-19 00:00:49 +09:00
Hoshiumi Arata 7cf5e9b0af Refactor coverage report generation in GitHub Actions workflow 2024-11-18 23:56:55 +09:00
dependabot[bot] cc76dda8a5 Bump super-linter/super-linter from 7.1.0 to 7.2.0
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/super-linter/super-linter/releases)
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/super-linter/super-linter/compare/v7.1.0...v7.2.0)

---
updated-dependencies:
- dependency-name: super-linter/super-linter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 14:45:49 +00:00
Hoshiumi Arata fbcc6cf255 Update coverage workflow to trigger on pull requests 2024-11-18 23:29:17 +09:00
Hoshiumi Arata 6028be193c Add GitHub Actions workflow for coverage reporting 2024-11-18 23:19:28 +09:00
Yukihiro "Matz" Matsumoto b437b1da24 Merge pull request #6424 from MaxFork/max-add-check_command 2024-11-18 23:15:40 +09:00
Max Base f6106f62c7 Update Makefile - Add check_command 2024-11-17 14:43:21 +03:30
Yukihiro "Matz" Matsumoto f27bc6ab32 Merge pull request #6423 from dearblue/task/test 2024-11-17 07:52:50 +09:00
Yukihiro "Matz" Matsumoto 6663f1072c Merge pull request #6422 from dearblue/hash 2024-11-17 00:05:20 +09:00
dearblue cf91cbf090 Adding a serialized test task
Under normal circumstances, `rake -m test` will parallelize not only the build task, but also the test task.
With this patch, `rake -m test:run:serial` will parallelize the build tasks, but the test tasks will be done one by one in sequence.

The name of the task to be added is as follows:

| tasks to be added     | corresponding exist tasks
| --------------------- | ----------------
| `test:run:serial`     | `test:run`
| `test:run:serial:bin` | `test:run:bin`
| `test:run:serial:lib` | `test:run:lib`
2024-11-16 21:21:51 +09:00
dearblue 9501c3f58c Add annotations for function names defined in the preprocessor 2024-11-16 20:50:49 +09:00
Yukihiro "Matz" Matsumoto 013bcb9221 Merge pull request #6420 from jbampton/patch-2 2024-11-16 04:52:15 +09:00
Yukihiro "Matz" Matsumoto 628f057482 Merge pull request #6419 from hoshiumiarata/fix_numparams_in_lambda 2024-11-15 16:17:03 +09:00
Yukihiro "Matz" Matsumoto e0d9bce8b6 Merge pull request #6415 from hoshiumiarata/fix_numbered_parameters_in_singleton 2024-11-15 16:10:34 +09:00
Yukihiro "Matz" Matsumoto a00267c802 Merge pull request #6417 from hoshiumiarata/fix_email_lint 2024-11-15 16:03:41 +09:00
Yukihiro "Matz" Matsumoto a247f48cf6 Merge pull request #6416 from hoshiumiarata/optimize_class_new_iseq 2024-11-15 15:42:57 +09:00
Yukihiro "Matz" Matsumoto ab3bc12fcb class.c: remove 'class' prefix from error messages 2024-11-15 15:33:14 +09:00
Yukihiro "Matz" Matsumoto a109599d53 vm.c (prepare_missing): add receiver's class in superclass calls 2024-11-15 15:15:08 +09:00
Yukihiro "Matz" Matsumoto 65e0e5bbd3 class.c (mrb_method_missing): add receiver's class to clarify
We needed to modify a lot of test code that expected the old style.
2024-11-15 15:13:24 +09:00
John Bampton d506ed08da Update .github/labeler.yml 2024-11-13 23:46:22 +10:00
John Bampton 33ba77fb00 Update labeler.yml: add label for the tools directory 2024-11-13 23:39:51 +10:00
Hoshiumi Arata 9fe2a5c46a parser: setup numbered parameters in new_lambda and adjust dump_prefix offset 2024-11-13 22:19:27 +09:00
Hoshiumi Arata 3be0e6b24f Update mlc_config.json to ignore mailto links in linting 2024-11-13 20:45:28 +09:00
Hoshiumi Arata 0b1d55a088 class.c: replace OP_SEND with OP_SSEND in "new" method's iseq 2024-11-13 18:34:16 +09:00
Hoshiumi Arata cc2ec53807 parser: support numbered parameters when used as a singleton 2024-11-13 00:22:49 +09:00
Yukihiro "Matz" Matsumoto 13acf12df5 test/t/vformat.rb: fix encoding error; should have been UTF-8 2024-11-11 23:52:58 +09:00
Yukihiro "Matz" Matsumoto 5387b74be7 hash.c (mrb_hash_to_s): put spaces around =>
CRuby 3.4 puts spaces around `=>` since for example `{:a!=>2}` can be
confusing where to separate tokens.  mruby should follow the behavior.

Many tests in `test/t` directory assumed no spaces around `=>`, so we
needed to fix them too.
2024-11-11 11:07:43 +09:00
Yukihiro "Matz" Matsumoto d2eb2bcacc Update AUTHORS [ci skip] 2024-11-11 11:07:42 +09:00
Yukihiro "Matz" Matsumoto 1d88398d94 Merge pull request #6413 from dearblue/doc/index 2024-11-11 09:45:14 +09:00
Yukihiro "Matz" Matsumoto d4cb111d14 Merge pull request #6412 from dearblue/OP_RETURN_BLK
Distinguish the call frame of the generator with `OP_RETURN_BLK`
2024-11-10 23:10:27 +09:00
dearblue 6291b55bba Add links to documentation in README.md
The documentation table is generated by the `rake doc:update-index` command.
The following conditions must be met for links to be added to the documentation table.

  - The file must be placed under the `doc/` directory
  - The file must have the extension `.md`
  - The file must be written at the top of the file with `<! -- summary: ANY-TEXT -->`
2024-11-10 22:39:14 +09:00
dearblue c654123561 Distinguish the call frame of the generator with OP_RETURN_BLK
When multiple identical proc objects are placed on the call stack, it is not possible to distinguish where to `return`.
Therefore, use env object comparisons to do this.

fixed #6411
2024-11-10 18:39:00 +09:00
Yukihiro "Matz" Matsumoto 90764b10fd Merge pull request #6410 from dearblue/msvc 2024-11-07 14:12:18 +09:00
dearblue ff9c03fde4 Put #include <stdlib.h> in parse.y
ref. #6388
2024-11-06 22:29:29 +09:00
Yukihiro "Matz" Matsumoto fcab6d2769 Merge pull request #6408 from dearblue/c++ 2024-11-06 13:31:42 +09:00
dearblue a92b97ff45 Improve compliance with C++ standards
- Avoid "Designated initializer"
    C++20 is required for C++.
  - Avoid "Compound literals"
    Not available for C++.
2024-11-05 22:07:53 +09:00
Yukihiro "Matz" Matsumoto ee7919e658 Merge pull request #6407 from dearblue/install/libmruby_core 2024-11-05 13:10:44 +09:00
Yukihiro "Matz" Matsumoto 521766009b Merge pull request #6405 from ArtSin/io_read-fix-mrb_raisef-arg 2024-11-05 13:08:42 +09:00