summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
AgeCommit message (Collapse)Author
2020-11-04Add a new instruction `OP_LOADI32`.Yukihiro "Matz" Matsumoto
That loads 32 bit integer bypassing pool access.
2020-11-03Merge pull request #5112 from shuujii/fix-dependencies-of-y.tab.oYukihiro "Matz" Matsumoto
Fix dependencies of `y.tab.o`
2020-11-03Use C99 `__func__` instead of `__FUNCTION__`; #5107Yukihiro "Matz" Matsumoto
2020-11-03Fix 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-03Add new instructions to handle symbols/literals >255; fix #5109Yukihiro "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-02ISO C does not allow extra ';' outside of a function; #5107Yukihiro "Matz" Matsumoto
2020-11-02Replace `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-01Fix `mruby -v option` test.mimaki
2020-10-29Fix typo in `Range#last`KOBAYASHI Shuji
2020-10-29Move `build_config.rb` -> `build_config/default.rb`; ref #5098Yukihiro "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-29Add beginless/endless ranges tests.Yukihiro "Matz" Matsumoto
2020-10-29Raise exception from `Range#first` with beginless ranges.Yukihiro "Matz" Matsumoto
2020-10-29Implement `Range#last` in `mruby-range-ext` in Ruby.Yukihiro "Matz" Matsumoto
This reduce unnecessary calls of `mrb_funcall()`.
2020-10-28Fixed build with `conf.enable_cxx_exception`dearblue
The problem was manifested by commit 5069fb15e41998dffef8e0ba566b3a82be369ba3.
2020-10-24Reorganize `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-22Prohibit 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-16Add startless range (another part of #5085)Yukihiro "Matz" Matsumoto
Ref #5093; close #5085
2020-10-15Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into ↵Yukihiro "Matz" Matsumoto
zubycz-work_for_merge
2020-10-15Fix out of bound access in `parse.y`.Yukihiro "Matz" Matsumoto
2020-10-15Merge pull request #5084 from mruby/mruby3Yukihiro "Matz" Matsumoto
Mruby3
2020-10-14Avoid 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-13Introduce endless range (a part of #5085)taiyoslime
Co-Authored-By: n4o847 <[email protected]> Co-Authored-By: smallkirby <[email protected]>
2020-10-12Revert e2e6554b56 not to use `MRB_TRY()`; close #5088Yukihiro "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-12Unify `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-12Update `bintest` of `mruby-bin-debugger`.Yukihiro "Matz" Matsumoto
Need to support `int / int -> int` update.
2020-10-12Add `const` before `struct mrb_irep` in `mruby-bin-debugger` gem.Yukihiro "Matz" Matsumoto
2020-10-12Fix `mrb_int_mul_overflow()` to check either operand being zero.Yukihiro "Matz" Matsumoto
2020-10-12Embed debug information to resolve Windows VC's issue.Yukihiro "Matz" Matsumoto
2020-10-12Adjust backslash position in multi-line macros.Yukihiro "Matz" Matsumoto
2020-10-12Use `MRB_INT_MAX` instead of `INT_MAX` according to variable type.Yukihiro "Matz" Matsumoto
2020-10-12Restore old function names for compatibility; ref #5070Yukihiro "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-12Restore old function names for compatibility; fix #5070Yukihiro "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-12Fix warning from VC regarding implicit int conversion.Yukihiro "Matz" Matsumoto
2020-10-12Made `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-12Avoid `unsigned int`; Use `mrb_int` instead.Yukihiro "Matz" Matsumoto
2020-10-12Remove meaningless `IO.open(1<<32)` test.Yukihiro "Matz" Matsumoto
2020-10-12Skip 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-12Update `IO#popen` to use keyword arguments instead of `Hash` args.Yukihiro "Matz" Matsumoto
2020-10-12Use `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-12Silence warnings from implicit integer conversions.Yukihiro "Matz" Matsumoto
Caused from combination of `mrb_int`, `int` and `size_t`..
2020-10-12Add 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-12Change 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-12Replace 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-12Raname `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-12Handle integer overflow in `rational_s_new`.Yukihiro "Matz" Matsumoto
2020-10-12Use `mrb_int_value()` instead of `mrb_fixnum_value()`.Yukihiro "Matz" Matsumoto
Where fixnum overflow can happen.
2020-10-12Update `mruby-random` gem to support 32 bit platforms.Yukihiro "Matz" Matsumoto
`sizeof(rand_state)` had been bigger than `sizeof(void*)*3`. Changed random number generator to `Xorshift96` on 32 bit platforms.
2020-10-12Reorganize `Integer` system.Yukihiro "Matz" Matsumoto
- Integrate `Fixnum` and `Integer` - Remove `Integral` - `int / int -> int` - Replace `mrb_fixnum()` to `mrb_int()` - Replace `mrb_fixnum_value()` to `mrb_int_value()`. - Use `mrb_integer_p()` instead of `mrb_fixnum_p()`
2020-10-12Remove unnecessary assignment in String#upton4o847
Co-authored-by: taiyoslime <[email protected]> Co-authored-by: smallkirby <[email protected]>
2020-10-12Describe the need for `-o` option if multi files given.Yukihiro "Matz" Matsumoto