Mark Delk
f78eab7c3f
fix some typos, mention MRB_NO_GEMS
2024-04-26 19:54:07 -05: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
Yukihiro "Matz" Matsumoto
e52b608ed9
Merge pull request #6241 from mruby/dependabot/github_actions/super-linter/super-linter-6.4.0
...
build(deps): bump super-linter/super-linter from 6.3.1 to 6.4.0
2024-04-18 07:53:16 +09:00
dependabot[bot]
e2f7c5daff
build(deps): bump super-linter/super-linter from 6.3.1 to 6.4.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.3.1 to 6.4.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/v6.3.1...v6.4.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-04-17 14:28:32 +00:00
Yukihiro "Matz" Matsumoto
c01899a8d3
Merge pull request #6235 from leviongit/array/delete
...
fix `Array#delete` always firing the block when deleting `nil`
2024-04-16 07:35:59 +09:00
Yukihiro "Matz" Matsumoto
aec67dcd17
Merge pull request #6237 from dearblue/env-strict
...
Stricter env objects to attach to ci
2024-04-15 13:59:32 +09:00
Yukihiro "Matz" Matsumoto
93c02e96d5
Merge pull request #6238 from dearblue/init-stack
...
Minimize zero initialization of the stack
2024-04-15 13:59:14 +09:00
Yukihiro "Matz" Matsumoto
c183e12d68
Merge pull request #6236 from leviongit/array/filters
...
unify the code for filter methods (and speed up `#reject!`)
2024-04-15 00:05:12 +09:00
Yukihiro "Matz" Matsumoto
bc8b76a7a5
cdump.c: adjust local variable declarations
2024-04-15 00:01:11 +09:00
dearblue
a4b57aa47b
Minimize zero initialization of the stack
2024-04-13 22:22:39 +09:00
dearblue
e3d51497cf
Stricter env objects to attach to ci
...
- Don't create multiple envs on one ci.
- Don't share a env to different ci.
- Don't attach a closed env to any ci.
Changes in `envadjust()` can be simplified with those guarantees.
2024-04-13 22:13:04 +09:00
Yukihiro "Matz" Matsumoto
3174488851
backtrace.c: remove uninitialized local variable declaration
2024-04-13 16:17:47 +09:00
leviongit
81bb520919
unify the code for filter methods (and speed up #reject!)
...
the worst case for `Array#reject!` (i.e. a proc always returning `true`)
is at least 5x worse than the worst case for `Array#select!` (proc
always returning `false`)
this commit unifies these implementations and inlines the (effective)
call of `#select!` in `#keep_if` and `#reject!` in `#delete_if`
2024-04-13 08:53:32 +02:00
leviongit
bb78c2cbc9
reimplement Array#delete with a helper method
2024-04-13 07:41:00 +02:00
leviongit
312d49c59f
reimplement Array#delete in ruby
2024-04-13 07:21:51 +02:00
leviongit
c04afb9e99
revert moving Array#delete to c
2024-04-13 06:52:37 +02:00
leviongit
d46e9a9480
fix shared array mistake
2024-04-12 18:12:51 +02:00
leviongit
14bd875d70
fix Array#delete
...
reimplement `Array#delete` in c, fixing `ary.delete(nil, &blk)` firing the block regardless of removal
minimal reproduction:
```rb
ary = [nil]
ret = ary.delete(nil) { "not deleted?" }
```
2024-04-12 17:30:03 +02:00
Yukihiro "Matz" Matsumoto
f30e8240d2
array.c: adjust local variable declarations
2024-04-12 18:07:51 +09:00
Yukihiro "Matz" Matsumoto
d761561be3
Merge pull request #6233 from dearblue/fiber-end-free
...
Free stack memory at end of fiber
2024-04-11 23:31:54 +09:00
Yukihiro "Matz" Matsumoto
1c021a5c3a
hash.c (obj_eql): simplify the expression
2024-04-11 15:39:45 +09:00
Yukihiro "Matz" Matsumoto
492d8331e1
mruby-io/ext/io.h: reorder struct mrb_io to reduce the size; #6231
...
The `sizeof(struct mrb_io)` is reduced from 32 bytes to 24 bytes on
x86_64-linux.
2024-04-10 13:35:03 +09:00
Yukihiro "Matz" Matsumoto
0ad669eb80
Merge pull request #6231 from Asmod4n/add_close_fd_to_io
...
Add a way to let other gems handle closing of fds in mruby-io
2024-04-10 13:29:20 +09:00
Yukihiro "Matz" Matsumoto
6c4f5a34cc
Revert "object.c (mrb_eql): avoid mrb_funcall_argv() when possible"
...
This reverts commit bc012deef9 .
Ref #6168
2024-04-10 13:28:28 +09:00