- 03 Apr, 2021 8 commits
-
-
dearblue authored
Use `mrb_exec_irep()`. If possible, re-entry into the VM will be suppressed. Note that due to the effect of being a tail-call, the backtrace of `Method#call` will be lost, and it will look as if the target method was called directly. This change fixes the problem of infinite loops when redefining methods that make block calls using `mruby-method`. ```console % bin/mruby -e 'mm = method(:proc); define_method(:proc, ->(*a, &b) { mm.call(*a, &b) }); p proc { 1 }' trace (most recent call last): [257] -e:1 [256] -e:1:in proc [255] -e:1:in proc ...SNIP... [1] -e:1:in proc -e:1:in proc: stack level too deep (SystemStackError) ```
-
dearblue authored
Change the old `mrb_exec_irep()` as-is to static `mrb_exec_irep_vm()`. Extract the VM entry part from the old `exec_irep()` in `mruby-eval/src/eval.c` and make it the core of the new `mrb_exec_irep()`.
-
Yukihiro "Matz" Matsumoto authored
Fix build failures with `enable_debug` and `enable_cxx_abi`
-
Yukihiro "Matz" Matsumoto authored
Fix the Authors link in the README
-
Yukihiro "Matz" Matsumoto authored
chore: fix spelling
-
John Bampton authored
-
John Bampton authored
-
dearblue authored
Under C++, there is no implicit conversion from `int` to `enum`, which caused a compilation error.
-
- 01 Apr, 2021 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Merge branch 'define-MRB_NO_GEMS-if-disable_libmruby-is-specified' of https://github.com/shuujii/mruby into shuujii-define-MRB_NO_GEMS-if-disable_libmruby-is-specified
-
Yukihiro "Matz" Matsumoto authored
Fix build with `MRB_USE_ALL_SYMBOLS`
-
- 31 Mar, 2021 13 commits
-
-
Yukihiro "Matz" Matsumoto authored
- (old) `undefined method 'foo'` - (new) `no superclass method 'foo'`
-
KOBAYASHI Shuji authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Add support for partial backtraces
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
When argument information is not available. So it should not happen for `yield` (error). In contrast, the error from `super` should be handled in run time (ignored).
-
Yukihiro "Matz" Matsumoto authored
mrbc: Dump debug info with -g option
-
fundamental authored
-
- 30 Mar, 2021 2 commits
-
-
fundamental authored
Adds debug source information (line/file) when mrbc uses -g. This commit results in usable backtraces for all gems when build_config is setup with enable_debug.
-
fundamental authored
When debug information is omitted within ireps, show that a stack frame existed rather than silently hiding it.
-
- 29 Mar, 2021 4 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Revert "Fix `SIGSEGV` with mruby-method + mruby-catch"
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Fix `SIGSEGV` with mruby-method + mruby-catch
-
- 27 Mar, 2021 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
- `mrb_num_div_int(mrb,x,y)` -> `mrb_div_int(mrb,x,y)` - `mrb_num_div_flo(mrb,x,y)` -> `mrb_div_flo(x,y)` They are internal function not supposed to be used outside of the core.
-
dearblue authored
Previously, the following code would cause a `SIGSEGV`. ```ruby mm = method(:throw) define_method(:throw, ->(*args) { mm.call(*args) }) catch { |tag| throw tag } ``` I think the reason is in the `mrb_yield_with_class()` function: - Even if a C function is called, `CI_ACC_SKIP` is used - `cipop()` is not done if globally jumping from a C function
-
Yukihiro "Matz" Matsumoto authored
-
- 26 Mar, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Tests for (`Float` or `Integer`) `op` `Complex`. Also added test dependency to `mruby-rational` since `int_div` definition relies on `Rational` when `MRB_USE_RATIONAL` is defined.
-
- 25 Mar, 2021 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Tests for (`Float` or `Integer`) `op` `Rational`.
-
Yukihiro "Matz" Matsumoto authored
-
- 24 Mar, 2021 4 commits
-
-
Yukihiro "Matz" Matsumoto authored
It removes non-static function, so that strictly saying, it's an incompatible change. But the function was added recently and I am sure no one uses it yet.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-