summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2021-09-10codegen.c: fixed `gen_setxv` bug with taking assignment value; fix #5550Yukihiro "Matz" Matsumoto
2021-09-10codegen.c: `gen_move` refactoring.Yukihiro "Matz" Matsumoto
2021-09-10mruby.h: remove `acc` from `callinfo`; add `cci` instead.Yukihiro "Matz" Matsumoto
`acc` was used as an index of the receiver (if positive), or a flag for methods implemented in C. We replace `regs[ci->acc]` by `ci[1].stack[0]`. And renamed `acc` (originally meant accumulator position) to `cci` (means callinfo for C implemented method).
2021-09-10vm.c, codedump.c: add `IREP_TT_NFLAG` assertions.Yukihiro "Matz" Matsumoto
The pool specified by `OP_STRING` (and `OP_SYMBOL`) should represent a string, so that `IREP_TT_NFLAG` should be zero.
2021-09-10ops.h: add `OP_SYMBOL` instruction.Yukihiro "Matz" Matsumoto
It generates a symbol by interning from the pool string.
2021-09-10fixup! codegen.c: resurrect `s->lastpc` to reduce `iseq` scans.Yukihiro "Matz" Matsumoto
2021-09-10codegen.c: resurrect `s->lastpc` to reduce `iseq` scans.Yukihiro "Matz" Matsumoto
When parsing scripts frequent scans could cost too much.
2021-09-10vm.c: `ci->acc` (`int16_t`) may overflow.Yukihiro "Matz" Matsumoto
2021-09-10Merge pull request #5549 from ↵Yukihiro "Matz" Matsumoto
mruby/dependabot/github_actions/github/super-linter-4.7.3 build(deps): bump github/super-linter from 4.7.2 to 4.7.3
2021-09-09build(deps): bump github/super-linter from 4.7.2 to 4.7.3dependabot[bot]
Bumps [github/super-linter](https://github.com/github/super-linter) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/github/super-linter/releases) - [Changelog](https://github.com/github/super-linter/blob/master/docs/release-process.md) - [Commits](https://github.com/github/super-linter/compare/v4.7.2...v4.7.3) --- updated-dependencies: - dependency-name: github/super-linter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
2021-09-09string.c: check integer overflow in `str_replace_partial`.Yukihiro "Matz" Matsumoto
2021-09-09string.c: check integer overflow in `mrb_str_aset()`.Yukihiro "Matz" Matsumoto
2021-09-09doc/guides/mrbconf.rb: add `RO_DATA` configuration description; #5547Yukihiro "Matz" Matsumoto
2021-09-09value.h: add configuration macros around `mrb_ro_data_p()`; close #5547Yukihiro "Matz" Matsumoto
- `MRB_USE_ETEXT_RO_DATA_P`: use `etext` and `edata` - `MRB_NO_DEFAULT_RO_DATA_P`: not use the default `mrb_ro_data_p()`
2021-09-09load.c: no need for conditional compilation; #5547Yukihiro "Matz" Matsumoto
`mrb_ro_data_p()` is available anyway.
2021-09-09value.h: use `etext` and `edata` which are more widely available; #5547Yukihiro "Matz" Matsumoto
2021-09-09Merge pull request #5548 from ↵Yukihiro "Matz" Matsumoto
mruby/dependabot/github_actions/github/super-linter-4.7.2 build(deps): bump github/super-linter from 4.7.1 to 4.7.2
2021-09-08build(deps): bump github/super-linter from 4.7.1 to 4.7.2dependabot[bot]
Bumps [github/super-linter](https://github.com/github/super-linter) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/github/super-linter/releases) - [Changelog](https://github.com/github/super-linter/blob/master/docs/release-process.md) - [Commits](https://github.com/github/super-linter/compare/v4.7.1...v4.7.2) --- updated-dependencies: - dependency-name: github/super-linter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
2021-09-08array.c: refactor `mrb_ary_splice`.Yukihiro "Matz" Matsumoto
2021-09-07value.h: fixed address comparison on macOS.Yukihiro "Matz" Matsumoto
2021-09-07object.c: rename `mrb_to_int` to `mrb_to_integer`.Yukihiro "Matz" Matsumoto
Consistent naming: `integer` to represent integer packed in `mrb_value` instead of `int`.
2021-09-07string.h: rename `mrb_str_to_inum` to `mrb_str_to_integer`.Yukihiro "Matz" Matsumoto
Consistent naming: `integer` to represent integer packed in `mrb_value` instead of `inum`.
2021-09-07eval.c: if the parser raises an exception without an error messageYukihiro "Matz" Matsumoto
`eval` would have crashed in formatting.
2021-09-07eval.c: check length of the file name.Yukihiro "Matz" Matsumoto
It should be lexx than `UINT16_MAX`. If you don't check here, the parser would raise an exception.
2021-09-07codegen.c: improve exception handling in `generate_code`.Yukihiro "Matz" Matsumoto
- remove `mrb_jmpbuf` from `codegen_scope` - unify exception handling of `mrb_state` and `codegen_scope`
2021-09-07parse.y: refactor `mrb_parser_parse()`.Yukihiro "Matz" Matsumoto
- remove `mrb_jmpbuf` from `truct mrb_parser_state` - unify exception handling of `mrb_state` and `mrb_parser_state`.
2021-09-06parse.y: refactoring `mrb_parser_parser()`.Yukihiro "Matz" Matsumoto
2021-09-06numeric.c: shortcut overflowing operation when `ndigit` is too small.Yukihiro "Matz" Matsumoto
2021-09-05boxing_word.h: avoid `mrb_float_p()` when `MRB_NO_FLOAT` is on; fix #5546Yukihiro "Matz" Matsumoto
2021-09-05array.c: check integer overflow before addition.Yukihiro "Matz" Matsumoto
2021-09-05codegen.c: avoid integer overflow.Yukihiro "Matz" Matsumoto
2021-09-04kernel.c: add `__method__`; ref #4468Yukihiro "Matz" Matsumoto
2021-09-04Merge branch 'shuujii-rename-Kernel-__method__-to-Kernel-__callee__'Yukihiro "Matz" Matsumoto
2021-09-04Rename `Kernel#__method__` to `Kernel#__callee__`KOBAYASHI Shuji
Because the current behavior of `__method__` is equivalent to `__callee__`. Example: # example.rb def src __send__(ARGV[0]) end alias dst src %w[src dst].each {|n| puts "call #{n} => #{__send__(n).inspect}"} Ruby: $ ruby example.rb __method__ call src => :src call dst => :src $ ruby example.rb __callee__ call src => :src call dst => :dst mruby: $ mruby example.rb __method__ call src => :src call dst => :dst
2021-09-04proc.c: need to preserve `target_class` in `callinfo`.Yukihiro "Matz" Matsumoto
Otherwise `target_class` can be lost when it differs from `proc`'s `target_class`, e.g. when called from `instance_eval`. Also we should not pass `target_class` to `MRB_OBJ_ALLOC` since it checks instance type from the class, and `target_class` may not have proper information. ref #5272
2021-09-04vm.c: remove duplicated calls of `mrb_vm_ci_target_class()`.Yukihiro "Matz" Matsumoto
2021-09-03range.c: `len = b - a` may overflow.Yukihiro "Matz" Matsumoto
2021-09-03range.c: hide internal `__num_to_a' method from backtrace.Yukihiro "Matz" Matsumoto
2021-09-02Merge pull request #5545 from ↵Yukihiro "Matz" Matsumoto
mruby/dependabot/github_actions/github/super-linter-4.7.1 build(deps): bump github/super-linter from 4.6.3 to 4.7.1
2021-09-01build(deps): bump github/super-linter from 4.6.3 to 4.7.1dependabot[bot]
Bumps [github/super-linter](https://github.com/github/super-linter) from 4.6.3 to 4.7.1. - [Release notes](https://github.com/github/super-linter/releases) - [Changelog](https://github.com/github/super-linter/blob/master/docs/release-process.md) - [Commits](https://github.com/github/super-linter/compare/v4.6.3...v4.7.1) --- updated-dependencies: - dependency-name: github/super-linter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
2021-09-01Merge pull request #5544 from stuarth/change-languageYukihiro "Matz" Matsumoto
Use gender-neutral pronouns
2021-08-31use gender-neutral pronounsStuart Hinson
2021-09-01Merge pull request #5543 from ↵Yukihiro "Matz" Matsumoto
mruby/dependabot/github_actions/github/super-linter-4.6.3 build(deps): bump github/super-linter from 4.6.2 to 4.6.3
2021-09-01string.c: need to adjust index for UTF-8.Yukihiro "Matz" Matsumoto
2021-09-01build_config/ci/gcc-clang.rb: enable `MRB_UTF8_STRING`.Yukihiro "Matz" Matsumoto
2021-09-01string.c: implement `__sub_replace()` in C.Yukihiro "Matz" Matsumoto
To reduce number of string allocation.
2021-09-01mruby.h: obsolete `mrb_to_str()`.Yukihiro "Matz" Matsumoto
Replace them by `mrb_ensure_string_type()`.
2021-09-01string.rb: avoid internal `__to_str` calls.Yukihiro "Matz" Matsumoto
`__to_str` was a mere type check method despite its name.
2021-09-01object.c: remove `mrb_convert_to_integer()' function.Yukihiro "Matz" Matsumoto
And merged to `mrb_f_integer()` which is only usage of the function.
2021-09-01string-ext/string.c: implement `casecmp` in C.Yukihiro "Matz" Matsumoto
* should not raise error for non-string arguments * avoid allocating case converted string internally