| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2020-11-05 | Use `INT32_{MAX,MIN}` to specify integer ranges. | Yukihiro "Matz" Matsumoto | |
| 2020-11-04 | Avoid integer overflow in comparison. | Yukihiro "Matz" Matsumoto | |
| 2020-11-04 | Add cast to silence int conversion warnings. | Yukihiro "Matz" Matsumoto | |
| 2020-11-04 | Fix a bug with big negative integers. | Yukihiro "Matz" Matsumoto | |
| 2020-11-04 | Add a new instruction `OP_LOADI32`. | Yukihiro "Matz" Matsumoto | |
| That loads 32 bit integer bypassing pool access. | |||
| 2020-11-03 | Merge pull request #5112 from shuujii/fix-dependencies-of-y.tab.o | Yukihiro "Matz" Matsumoto | |
| Fix dependencies of `y.tab.o` | |||
| 2020-11-03 | Use C99 `__func__` instead of `__FUNCTION__`; #5107 | Yukihiro "Matz" Matsumoto | |
| 2020-11-03 | Fix dependencies of `y.tab.o` | KOBAYASHI Shuji | |
| In the case of `y.tab.o`, `y.tab.d` was not read, so `y.tab.c` was not recompiled by updating header files. It seemed that the cause was overwriting the rake rule, so I deleted unnecessary settings. | |||
| 2020-11-03 | Add new instructions to handle symbols/literals >255; fix #5109 | Yukihiro "Matz" Matsumoto | |
| New instructions: * OP_LOADL16 * OP_LOADSYM16 * OP_STRING16 Size of pools, symbols are `int16_t` but offset representation in the bytecode was 8 bits. Size of child `irep` array is `int16_t`, too but this change does not address it. | |||
| 2020-11-02 | ISO C does not allow extra ';' outside of a function; #5107 | Yukihiro "Matz" Matsumoto | |
| 2020-11-02 | Replace `R-assignment` by `single-line pattern matching`. | Yukihiro "Matz" Matsumoto | |
| Since `R-assignment` in CRuby is abandoned. Single-line pattern matching in `mruby` only matches single local variable at the moment. Currently it works as a right assignment to a local variable. It will be enhanced in the future. | |||
| 2020-11-01 | Fix `mruby -v option` test. | mimaki | |
| 2020-10-29 | Fix typo in `Range#last` | KOBAYASHI Shuji | |
| 2020-10-29 | Move `build_config.rb` -> `build_config/default.rb`; ref #5098 | Yukihiro "Matz" Matsumoto | |
| In addition, update the documents referring `build_config.rb` which is no longer used. The new `build_config.rb` describes the new configuration structure in the comment. | |||
| 2020-10-29 | Add beginless/endless ranges tests. | Yukihiro "Matz" Matsumoto | |
| 2020-10-29 | Raise exception from `Range#first` with beginless ranges. | Yukihiro "Matz" Matsumoto | |
| 2020-10-29 | Implement `Range#last` in `mruby-range-ext` in Ruby. | Yukihiro "Matz" Matsumoto | |
| This reduce unnecessary calls of `mrb_funcall()`. | |||
| 2020-10-28 | Fixed build with `conf.enable_cxx_exception` | dearblue | |
| The problem was manifested by commit 5069fb15e41998dffef8e0ba566b3a82be369ba3. | |||
| 2020-10-24 | Reorganize `env_new()` as `mrb_env_new()` | dearblue | |
| The `mrb_env_new()` function is a global function, but it is still treated as an internal function. | |||
| 2020-10-22 | Prohibit array changes by "a"/"*" specifier of `mrb_get_args()` | dearblue | |
| The "a"/"*" specifier of the `mrb_get_args()` function will now return `const mrb_value *`. This is because it is difficult for the caller to check if it is an array object and write-barrier if necessary. And it requires calling `mrb_ary_modify()` on the unmodified array object, which is also difficult (this is similar to #5087). | |||
| 2020-10-16 | Add startless range (another part of #5085) | Yukihiro "Matz" Matsumoto | |
| Ref #5093; close #5085 | |||
| 2020-10-15 | Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into ↵ | Yukihiro "Matz" Matsumoto | |
| zubycz-work_for_merge | |||
| 2020-10-15 | Fix out of bound access in `parse.y`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-15 | Merge pull request #5084 from mruby/mruby3 | Yukihiro "Matz" Matsumoto | |
| Mruby3 | |||
| 2020-10-14 | Avoid using C struct dump for test Ruby code. | Yukihiro "Matz" Matsumoto | |
| Files under `test/t` and `mrbgem/*/test` are for tests, not for actual execution. So symbols in those files need not to be pre-allocated. This change slightly reduce the memory consumption. | |||
| 2020-10-13 | Introduce endless range (a part of #5085) | taiyoslime | |
| Co-Authored-By: n4o847 <[email protected]> Co-Authored-By: smallkirby <[email protected]> | |||
| 2020-10-12 | Revert e2e6554b56 not to use `MRB_TRY()`; close #5088 | Yukihiro "Matz" Matsumoto | |
| `MRB_TRY()` does not work when compiled by C compiler with `cxx_exception`, due to the mixture of `setjmp()` used by `mirb.c` and `throw` used by the core. The original intension of e2e6554b56 is to protect code from signal interruption, but the signal interruption is not well-defined in mruby anyway. | |||
| 2020-10-12 | Unify `mrb_str_to_str` to `mrb_obj_as_string`. | Yukihiro "Matz" Matsumoto | |
| Redirect `mrb_str_to_str` to `mrb_obj_as_string` via C macro. Inspired by #5082 | |||
| 2020-10-12 | Update `bintest` of `mruby-bin-debugger`. | Yukihiro "Matz" Matsumoto | |
| Need to support `int / int -> int` update. | |||
| 2020-10-12 | Add `const` before `struct mrb_irep` in `mruby-bin-debugger` gem. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Fix `mrb_int_mul_overflow()` to check either operand being zero. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Embed debug information to resolve Windows VC's issue. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Adjust backslash position in multi-line macros. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `MRB_INT_MAX` instead of `INT_MAX` according to variable type. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Restore old function names for compatibility; ref #5070 | Yukihiro "Matz" Matsumoto | |
| - `mrb_check_intern()` to return `mrb_value` - `mrb_intern_check()` to return `mrb_sym` [NEW] Other new functions: - `mrb_intern_check_cstr()` - `mrb_intern_check_str()` | |||
| 2020-10-12 | Restore old function names for compatibility; fix #5070 | Yukihiro "Matz" Matsumoto | |
| Rename new functions: - `mrb_convert_type(mrb,val,type,tname,method)` => `mrb_type_convert(mrb,val,type,tname,method)` - `mrb_check_convert_type(mrb,val,type,tname,method)` => `mrb_type_convert_check(mrb,val,type,tname,method)` Old names are defined by macros (support `tname` drop and `char*` => `mrb_sym` conversion). | |||
| 2020-10-12 | Fix warning from VC regarding implicit int conversion. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Made `Rational` overhaul. | Yukihiro "Matz" Matsumoto | |
| - Implement `Rational()` in `C`. - Use `float` to `rational` conversion function taken from: https://rosettacode.org/wiki/Convert_decimal_number_to_rational#C | |||
| 2020-10-12 | Avoid `unsigned int`; Use `mrb_int` instead. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Remove meaningless `IO.open(1<<32)` test. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Skip some `Math.atan2()` tests. | Yukihiro "Matz" Matsumoto | |
| Linux `atan2(3)` man page says: ``` If y is positive infinity (negative infinity) and x is positive infinity, +pi/4 (-pi/4) is re‐ turned. ``` But on Microsoft VC/MinGW, `atan2()` returns `NaN` if either of arguments is infinite. So we skip those tests on the platforms. | |||
| 2020-10-12 | Update `IO#popen` to use keyword arguments instead of `Hash` args. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `mrb_integer()` instead of `mrb_int()`. | Yukihiro "Matz" Matsumoto | |
| `mrb_int()` includes implicit integer conversion, where `mrb_integer()` does not. In this case, we know `obj` is an integer before hand. | |||
| 2020-10-12 | Silence warnings from implicit integer conversions. | Yukihiro "Matz" Matsumoto | |
| Caused from combination of `mrb_int`, `int` and `size_t`.. | |||
| 2020-10-12 | Add a new gem: `mruby-catch`. | Yukihiro "Matz" Matsumoto | |
| Implements `catch`/`throw` non-local jump inherited from Lisp. `catch([tag]) {|tag| block } -> obj` Example: ``` catch(:foo) { 123 } # => 123 catch(:foo) { throw(:foo, 456) } # => 456 catch(:foo) { throw(:foo) } # => nil ``` | |||
| 2020-10-12 | Change float representation in `mrb` binary files. | Yukihiro "Matz" Matsumoto | |
| From human readable (ASCII) string representation to binary dump of IEEE754 in little endian. | |||
| 2020-10-12 | Replace the implementation of method tables in classes/modules. | Yukihiro "Matz" Matsumoto | |
| They are basically the copy of instance variable tables. On my Linux box, memory consumption of `mrbtest` measured by `valgrind` is: - old: 17,683,830 bytes - new: 14,283,749 bytes | |||
| 2020-10-12 | Raname `mrb_exc_new_str_lit()` to `mrb_exc_new_lit()`. | Yukihiro "Matz" Matsumoto | |
| It uses `mrb_str_new_lit()` internally, but it doesn't need to express it in the name of the function (macro). | |||
| 2020-10-12 | Handle integer overflow in `rational_s_new`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `mrb_int_value()` instead of `mrb_fixnum_value()`. | Yukihiro "Matz" Matsumoto | |
| Where fixnum overflow can happen. | |||
