Commit Graph

15907 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto aac9e4cf0d Merge pull request #6261 from leviongit/range/to_a
fix: `to_a` integer ranges with `begin > end` failing
2024-05-09 17:07:51 +09:00
leviongit fff07ca182 fix: to_a integer ranges with begin > end failing
example of failure:
```rb
(-1..-4).to_a
```

expected result:
```rb
(-1..-4).to_a
```
2024-05-08 23:10:28 +02:00
Yukihiro "Matz" Matsumoto 06480f7147 mruby-string-ext: move local variable declarations 2024-05-08 11:29:20 +09:00
Yukihiro "Matz" Matsumoto cf785a6133 mruby-random: move variable declarations to initialization 2024-05-07 17:57:41 +09:00
Yukihiro "Matz" Matsumoto f975794f19 Merge pull request #6260 from dearblue/mrb_vm_exec-exception
Remove `exc_caught` from `mrb_vm_exec()`
2024-05-06 22:55:07 +09:00
dearblue dea5c9e1dc Remove exc_caught from mrb_vm_exec()
Only go to exception handling if `mrb->exc` is non-null.

This may cause some compatibility problems, but I doubt that it is necessary to maintain that compatibility.
Here is how I see the incompatibility with the change at this time:
  - If `mrb->exc` is non-null and `mrb_vm_exec()` is called, an exception will be thrown immediately.
  - If `MRB_THROW()` is used while `mrb->exc` is `NULL`, it will not go to exception handling.
2024-05-05 21:30:18 +09:00
Yukihiro "Matz" Matsumoto 1e61a875ed mruby-data: adjust local variable declarations 2024-05-05 18:56:20 +09:00
Yukihiro "Matz" Matsumoto 0a61a9a76f mruby-struct: adjust local variable declarations 2024-05-05 18:55:42 +09:00
Yukihiro "Matz" Matsumoto c548943a2b mruby-symbol-ext: adjust local variable declarations 2024-05-04 08:30:53 +09:00
Yukihiro "Matz" Matsumoto 86b1c8ff87 string.c (utf8_strlen): add assertion utf8_len <= byte_len 2024-05-03 07:50:40 +09:00
Yukihiro "Matz" Matsumoto aea3e7aedd mruby-sprintf: raise ArgumentError for % at the bottom 2024-05-03 07:46:45 +09:00
Yukihiro "Matz" Matsumoto 4801a424a3 mruby-time: adjust local variable declarations 2024-05-02 19:55:29 +09:00
Yukihiro "Matz" Matsumoto c5314a29b7 mruby-test: move declarations in driver.c and vformat.c 2024-05-01 13:24:32 +09:00
Yukihiro "Matz" Matsumoto 2c8cde2ba7 codedump.c: move variable declarations to initialization place 2024-04-30 22:17:22 +09:00
Yukihiro "Matz" Matsumoto fa213a2d89 string.c (search_nonascii): prevent buffer overrun; ref #6255 2024-04-29 16:35:08 +09:00
Yukihiro "Matz" Matsumoto 714ef4c4fd string.c (mrb_utf8_strlen): handle invalid UTF-8 sequence; fix #6255
Previous SWAR version assumes valid UTF-8 to count number of code points
in the string, but we need to handle invalid sequence as well. We now
use `search_nonascii` to skip counting single byte characters for
performance. The new version is even faster than SWAR version (probably
because `search_nonascii` uses SSE2 on Intel compatible CPU (which I use).
2024-04-29 15:37:22 +09:00
Yukihiro "Matz" Matsumoto c9ae8df2c2 error.c: move variable declaration to initialization 2024-04-29 14:42:49 +09:00
Yukihiro "Matz" Matsumoto 7cea1cd035 Merge pull request #6256 from dearblue/doc/mrb_top_run
Update documentation for `mrb_top_run()`
2024-04-27 14:57:03 +09:00
Yukihiro "Matz" Matsumoto 09896099ee Merge pull request #6257 from jethrodaniel/tiny-mrbconf-doc-updates
fix some mrbconf.md typos
2024-04-27 14:41:50 +09:00
Mark Delk b99536f1fc rm unneeded MRB_NO_GEMS doc addition 2024-04-26 23:33:16 -05:00
Mark Delk f78eab7c3f fix some typos, mention MRB_NO_GEMS 2024-04-26 19:54:07 -05:00
Yukihiro "Matz" Matsumoto 598dca7a08 debug.c: move local variable declarations to initialization place 2024-04-27 08:40:36 +09:00
dearblue a0526418ce Update documentation for mrb_top_run()
Also, add explanations for the `mrb_load_irep()` and `mrb_load_string()` families, which are indirect calls to `mrb_top_run()`.
2024-04-26 22:05:45 +09:00
Yukihiro "Matz" Matsumoto 7edbff8c83 Merge pull request #6253 from dearblue/fiber-sweep
Allow recycling fibers by GC if not referenced directly
2024-04-25 11:34:08 +09:00
Yukihiro "Matz" Matsumoto 22518b5b78 Merge pull request #6244 from dearblue/mrb_vm_run
Revise scope of role of `mrb_vm_run()`
2024-04-24 08:45:29 +09:00
dearblue f1c9260ada Allow recycling fibers by GC if not referenced directly
The patch assumes that `struct REnv::cxt` only performs checks with the `OP_BREAK` and `OP_RETURN_BLK` instructions, and does not reference the entity.
Therefore, by changing to a weak reference, it is possible to collect fibers that are no longer directly referenced while in the suspended state.

However, we need to detach the living env objects that remain in the call stack of the fiber.
So, in effect, it involves a revert of following commits.
  - commit a3365d8b3f
  - commit 57ffa1c150

Examples of the effects of change are shown below.
Note that it was built with `rake MRUBY_CONFIG=host-debug`.

```ruby
f = Fiber.new { (x, y, z) = "X", "Y", "Z"; Fiber.yield -> { [x, y, z] } }
g = f.resume
GC.start
p ObjectSpace.memsize_of_all
# => 59532
g.call
# => ["X", "Y", "Z"]
f = nil
GC.start
ObjectSpace.memsize_of_all
# BEFORE => 59532
# AFTER  => 58044
g.call
# => ["X", "Y", "Z"]
```
2024-04-23 22:30:32 +09:00
dearblue c8c7d1ab23 Don't mrb_realloc_simple() call mrb_full_gc() in the sweep phase
`mrb_env_unshare()` calls `mrb_realloc_simple()` and follows `mrb_full_gc()` to avoid an infinite loop where `mrb_env_unshare()` is called again.
This does not occur at this time, but may occur in subsequent patches.
2024-04-23 22:25:54 +09:00
Yukihiro "Matz" Matsumoto 85120d524a Merge pull request #6250 from jbampton/fix-spelling
Fix spelling
2024-04-23 00:21:59 +09:00
Yukihiro "Matz" Matsumoto 3d32bc11ef Merge pull request #6252 from mruby/dependabot/github_actions/super-linter/super-linter-6.4.1
build(deps): bump super-linter/super-linter from 6.4.0 to 6.4.1
2024-04-23 00:20:28 +09:00
Yukihiro "Matz" Matsumoto 2e4dc20673 Merge pull request #6251 from jbampton/clean-up-root-move-codeowners
Clean up root move `CODEOWNERS` to `.github` directory
2024-04-23 00:18:03 +09:00
dependabot[bot] 2fc2c20155 build(deps): bump super-linter/super-linter from 6.4.0 to 6.4.1
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 6.4.0 to 6.4.1.
- [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/v6.4.0...v6.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 14:37:45 +00:00
John Bampton 5c39e39b8a Clean up root move CODEOWNERS to .github directory
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location
2024-04-22 20:41:41 +10:00
John Bampton 67c5ced277 Fix spelling 2024-04-22 18:00:27 +10:00
Yukihiro "Matz" Matsumoto ca29aa81bd Merge pull request #6247 from jbampton/clean-up-dockerignore
Clean up the `.dockerignore` file
2024-04-22 09:49:52 +09:00
Yukihiro "Matz" Matsumoto 34c8e8253a Merge pull request #6249 from jbampton/fix-grammar
Fix grammar in `src/vm.c`; `catched` -> `caught`
2024-04-22 09:49:19 +09:00
Yukihiro "Matz" Matsumoto 9c2fa6239e Merge pull request #6248 from jbampton/pre-commit-autoupdate
pre-commit autoupdate
2024-04-22 09:47:53 +09:00
Yukihiro "Matz" Matsumoto 87b756086f Merge pull request #6246 from jbampton/fix-spelling
Fix typo in `test/t/hash.rb`
2024-04-22 09:47:22 +09:00
Yukihiro "Matz" Matsumoto 5661cf6939 Merge pull request #6245 from jbampton/gha-label-more-files
gha: add labels to more files
2024-04-22 09:46:58 +09:00
John Bampton f9c2ea2f11 Fix grammar in src/vm.c; catched -> caught
Saying 'catched' instead of 'caught' is a grammatical error
2024-04-22 00:01:21 +10:00
John Bampton fef91724cb pre-commit autoupdate
https://pre-commit.com/#pre-commit-autoupdate
2024-04-21 23:21:46 +10:00
John Bampton 7e8ec85f6b Clean up the .dockerignore file 2024-04-21 22:46:19 +10:00
John Bampton 983a13f342 Fix typo in test/t/hash.rb 2024-04-21 22:21:57 +10:00
John Bampton b71092d440 gha: add labels to more files 2024-04-21 21:32:03 +10:00
dearblue 5aa20f41ef Revise scope of role of mrb_vm_run()
`mrb_vm_run()` is,
  - It does not change the fiber context.
  - When control is returned, only one ci prepared by the caller is popped.
    If the ci equals cibase when called, the ci position does not change.

related commits:
  - commit 4e84bdb507
  - commit 34dd258c63
  - commit ebd6636a1e
  - commit c6736357a7
  - commit 23a4e7149d
  - commit 31a961acf1
2024-04-21 13:30:24 +09:00
Yukihiro "Matz" Matsumoto ad476c3684 Merge pull request #6243 from dearblue/base64 2024-04-21 08:25:56 +09:00
dearblue 6c2f570d79 Fixed base64 decoding in mruby-pack
Previously `\x80` was incorrectly mapped to `0`.

```ruby
"\x80\x80\x80\x80".unpack("m*")
# before => "\x00\x00\x00"
# after  => ""
```

The reason is that the C string terminator is placed in `base64_dec_tab[128]` and the array length is obtained by `sizeof`.
Therefore, the length of `base64_dec_tab[]` is strictly specified and replaced with element-by-element initialization.

Also, similar changes are made to `base64chars[]`.
2024-04-20 09:56:08 +09:00
Yukihiro "Matz" Matsumoto 4a27a18807 dump.c: adjust local variable declarations 2024-04-20 09:54:55 +09:00
Yukihiro "Matz" Matsumoto c445723fa4 enum.c: adjust local variable declaration 2024-04-19 16:20:36 +09:00
Yukihiro "Matz" Matsumoto 8350106896 etc.c: adjust local variable initializations 2024-04-18 15:49:19 +09:00
Yukihiro "Matz" Matsumoto ca26f41b57 mruby-sprintf: remove unnecessary assignment 2024-04-18 15:48:45 +09:00