Yukihiro "Matz" Matsumoto
b20418cf78
Merge pull request #6119 from jbampton/fix-spelling
...
docs: fix spelling
2023-12-17 07:14:17 +09:00
John Bampton
4c79fce665
docs: fix spelling
2023-12-17 00:58:24 +10:00
Yukihiro "Matz" Matsumoto
d14a269f49
Merge pull request #6114 from dearblue/integrate-catch
...
Move `L_RAISE` and `L_BREAK` blocks to `OP_RAISEIF`
2023-12-16 13:08:33 +09:00
Yukihiro "Matz" Matsumoto
ecea3f2531
Merge pull request #6117 from mruby/dependabot/github_actions/actions/upload-artifact-4
...
build(deps): bump actions/upload-artifact from 3 to 4
2023-12-16 13:05:38 +09:00
Yukihiro "Matz" Matsumoto
6fad067ded
mruby-binding: raise in upper count check
...
We count `Proc` upper links then check for upper bounds (default:20),
but now we raise an exception as soon as the count exceeds the limit so
that we can avoid traverse unnecessary upper links.
2023-12-16 12:21:55 +09:00
dependabot[bot]
1b7f2fb175
build(deps): bump actions/upload-artifact from 3 to 4
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-15 14:22:12 +00:00
dearblue
e9904ddb2a
Move L_RAISE and L_BREAK blocks to OP_RAISEIF
...
`OP_RAISEIF` should be easier to relate than `OP_RETURN`.
2023-12-15 21:46:00 +09:00
Yukihiro "Matz" Matsumoto
24eca2e50b
mruby-fiber (fiber_to_s): omit position info for terminated fibers
...
Since Fiber#to_s did not include location information before #6105 ,
when location information cannot be retrieved for terminated fibers,
instead of meaningless information such as "(unknown):0", we omit
positional information altogether for terminated fibers; ref #6111
2023-12-14 18:56:19 +09:00
Yukihiro "Matz" Matsumoto
e9237f444a
Merge pull request #6111 from dearblue/fiber-to_s.1
...
Consider proc to be GC'ed if fiber is terminated
2023-12-14 14:59:18 +09:00
Yukihiro "Matz" Matsumoto
5311d1aa1b
Merge pull request #6106 from dearblue/fiber-limits-ease
...
Ease fiber limitations
2023-12-13 16:10:42 +09:00
Yukihiro "Matz" Matsumoto
ae8dcb82ba
vm.c: CINFO_SKIP should not be called with prev_jmp == NULL
...
We have added assertion to ensure.
2023-12-12 16:49:11 +09:00
Yukihiro "Matz" Matsumoto
89d4e8c851
Merge pull request #6113 from dearblue/unreachable
...
Remove unreachable code in `OP_R_BREAK`
2023-12-12 16:48:55 +09:00
dearblue
38c7936c94
Remove unreachable code in OP_R_BREAK
...
Termination of fiber by `break` results in a `LocalJumpError`, so the indicated code will not be executed.
2023-12-11 21:25:08 +09:00
Yukihiro "Matz" Matsumoto
93d842e045
Merge pull request #6112 from dearblue/labeler
...
Update labeler.yml for version 5
2023-12-10 20:01:17 +09:00
dearblue
c0b5bc4ae8
Consider proc to be GC'ed if fiber is terminated
...
When fiber is terminated, the pointer indicated by `f->cxt->cibase->proc` is not protected from GC.
I should have done this patch way as of commit 9af6264d6b (#6105 ).
2023-12-09 22:28:47 +09:00
dearblue
88571052e8
Update labeler.yml for version 5
2023-12-09 17:28:13 +09:00
Yukihiro "Matz" Matsumoto
34346e75a4
Merge pull request #6103 from dearblue/RBreak-ci
...
RBreak remembers the CI location
2023-12-09 11:35:23 +09:00
Yukihiro "Matz" Matsumoto
645a464b2d
mruby-fiber (fiber_to_s): retrieve position from terminated fibers; #6105
...
Since `cxt->ci` points to the last active callinfo, `cxt->ci == cxt->cibase`
does not mean it does not have correct `proc` information, so we have
removed the `f->cxt->ci > f->cxt->cibase` check. Instead, just in case
`proc` does not have `irep` information, we try to confirm `proc` does not
point to `CFUNC` nor is not an alias.
2023-12-08 09:33:05 +09:00
Yukihiro "Matz" Matsumoto
fdea7924fe
mruby-fiber (fiber_to_s): do not rely on mrb_any_to_s(); ref #6105
2023-12-08 09:25:46 +09:00
Yukihiro "Matz" Matsumoto
b7949e81d7
mruby-fiber (fiber_to_s): use "(unknown):0" for unknown position
...
Ref #6105
2023-12-08 09:22:59 +09:00
Yukihiro "Matz" Matsumoto
cb54138b81
Merge pull request #6105 from dearblue/fiber.to_s
...
Implement `Fiber#to_s` method
2023-12-08 09:00:05 +09:00
dearblue
73c8330cbd
RBreak remembers the CI location
...
It is now possible to specify return destination directly.
This allows callinfo to distinguish between calls to the same proc object.
At the same time, the `Kernel#catch` method is adjusted.
By removing the previously required double lambda object, the REnv object is no longer created as well.
2023-12-07 21:33:14 +09:00
Yukihiro "Matz" Matsumoto
658d5a51ac
mruby-string-ext: add test for String#valid_encoding?
2023-12-07 11:34:10 +09:00
Yukihiro "Matz" Matsumoto
eabe2d96e2
mruby-string-ext: add String#valid_encoding? method
2023-12-07 10:58:20 +09:00
Yukihiro "Matz" Matsumoto
bef7eea468
mruby-method: small refactoring mostly regarding declarations
2023-12-06 22:20:38 +09:00
Yukihiro "Matz" Matsumoto
b01eb03d2a
Merge pull request #6110 from mruby/dependabot/github_actions/actions/labeler-5
...
build(deps): bump actions/labeler from 4 to 5
2023-12-06 15:58:59 +09:00
Yukihiro "Matz" Matsumoto
fab3dfc145
Merge pull request #6107 from mruby/dependabot/github_actions/super-linter/super-linter-5.7.2
...
build(deps): bump super-linter/super-linter from 5.7.0 to 5.7.2
2023-12-06 15:58:47 +09:00
Yukihiro "Matz" Matsumoto
5a258f0872
Merge pull request #6109 from dearblue/fix-6108
...
Needs `cipop()` before crossing the C boundary
2023-12-06 15:57:16 +09:00
Yukihiro "Matz" Matsumoto
abd26b7ca6
mruby-bin-mrbc/mrbc.c: replace mrbc_ prefix by mrb_ccontext
...
This is a most confusion file because it contained both `mrbc_` from
"mruby compiler" (e.g. mrbc_args) and `mrbc_` from "mruby compiler
context".
2023-12-06 15:54:33 +09:00
Yukihiro "Matz" Matsumoto
7be67d3acf
mruby-bin-mirb: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:51:20 +09:00
Yukihiro "Matz" Matsumoto
72689b0b9c
mruby-eval: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:49:21 +09:00
Yukihiro "Matz" Matsumoto
7e74dbeed3
mruby-bin-mruby: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:45:01 +09:00
Yukihiro "Matz" Matsumoto
c36b212fa9
mruby-bin-debugger: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:41:15 +09:00
Yukihiro "Matz" Matsumoto
a66c685c81
mruby-bin-debugger/mrdb.h: remove unnecessary struct declarations
2023-12-06 15:40:31 +09:00
Yukihiro "Matz" Matsumoto
6de4df3b31
parse.y: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:32:13 +09:00
Yukihiro "Matz" Matsumoto
9c2af6aaed
load.c: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:29:02 +09:00
Yukihiro "Matz" Matsumoto
073a4f19f8
proc.h: update document in the comment (regarding compiler context)
2023-12-06 15:22:09 +09:00
Yukihiro "Matz" Matsumoto
c5e3cbe4bf
compile.h: stop using mrbc_ prefix for compiler context
...
Since it is confusing that the term `mrbc` stands for both "mruby
compiler" and "mruby compiler context" in the source code. Instead,
we use `mrb_ccontext` (stands for compiler context) prefix hereafter.
We choose `mrb_ccontext` because we have already used `mrb_context` (for
VM execusion context).
2023-12-06 15:22:08 +09:00
dependabot[bot]
7ac0b60255
build(deps): bump actions/labeler from 4 to 5
...
Bumps [actions/labeler](https://github.com/actions/labeler ) from 4 to 5.
- [Release notes](https://github.com/actions/labeler/releases )
- [Commits](https://github.com/actions/labeler/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/labeler
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-05 14:41:52 +00:00
dearblue
ca9e8d91e4
Needs cipop() before crossing the C boundary
...
fix #6108
2023-12-05 22:03:38 +09:00
dependabot[bot]
7b74d22310
build(deps): bump super-linter/super-linter from 5.7.0 to 5.7.2
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.7.0 to 5.7.2.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.7.0...v5.7.2 )
---
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 >
2023-12-04 14:03:16 +00:00
dearblue
4f1c1c16da
Check fiber backward when switching with Fiber#transfer
...
Previously, if the caller of `Fiber#resume` had a C function call, an inconsistency would occur.
2023-12-04 22:32:57 +09:00
dearblue
42308c42b5
Fix CI misalignment between Fiber#resume and Fiber.yield
...
When a fiber switched by `Fiber.yield` is resumed by `Fiber#resume` by C, it is necessary to pop CI with `fiber_switch()`.
Previously, CI misalignment caused inconsistencies, including crashes, on the next `Fiber#resume`.
2023-12-04 22:32:57 +09:00
dearblue
568309b25a
Propagating exceptions to the caller of Fiber#resume
...
Need to return control from `mrb_vm_exec()` to the caller if `Fiber#resume` was done from C.
2023-12-04 22:32:57 +09:00
dearblue
aaa0f124c3
Restore the value of ci->cci with fiber_switch()
...
If `mrb_fiber_resume()` was called from a C function as a method definition, the mruby VM was not processed afterwards.
Called Fiber.yield
mrb_vm_exec() <<-- returns from the function by CINFO_RESUMED
fiber_switch() <<-- this patch causes the value to return to its pre-call state
mrb_fiber_resume()
mrb_vm_exec() <<-- previously, returns from the function immediately as it was CINFO_RESUMED
...
main()
2023-12-04 22:32:57 +09:00
dearblue
ef8b0b7ed8
Allows calling Fiber#resume from C
...
This patch is effectively reverts to the following:
- commit dc65b1faf1 (#5782 )
- commit f4c4809750 (#5947 )
Ref. #6063
2023-12-04 22:32:51 +09:00
dearblue
ad4c35b022
Enhanced Fiber Testing
...
The main objective is to make sure that fiber can be handled from C.
Also, add a mechanism to detect that the mruby VM has stopped in the middle of the process.
If it stops halfway, the test will be terminated with `abort()`.
2023-12-04 21:48:23 +09:00
Yukihiro "Matz" Matsumoto
7f1ae1c344
mruby-method (method_to_s): avoid goto across declarations for C++
2023-12-03 22:39:27 +09:00
Yukihiro "Matz" Matsumoto
90ec09a716
mruby-proc-ext (mrb_proc_source_location): support aliases
2023-12-03 22:38:31 +09:00
Yukihiro "Matz" Matsumoto
87453fb70b
vm.c (CI_PROC_SET): consider alias proc
2023-12-03 22:38:31 +09:00