- 12 Oct, 2020 40 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Kondo Uchio authored
-
Uchio Kondo authored
-
Kondo Uchio authored
-
Uchio Kondo authored
e.g. symbols like "foo[]=" make invalid C codes
-
Yukihiro "Matz" Matsumoto authored
The original PR was skipping Ruby comments as well, but caused some issues in test suites.
-
Yukihiro "Matz" Matsumoto authored
- `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()`
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
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).
-
Yukihiro "Matz" Matsumoto authored
On platforms where `sizeof(long)` is 4, casting `(long)` can lose data or sign information.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
- Implement `Rational()` in `C`. - Use `float` to `rational` conversion function taken from: https://rosettacode.org/wiki/Convert_decimal_number_to_rational#C
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
The mixture causes warnings on 64 bit Windows (VC).
-
Yukihiro "Matz" Matsumoto authored
You can now use `NEXT` within `switch` statement like 7c087eb.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
On non-`gcc` compatible environment, `NEXT` is translated to `break`.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
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.
-
Yukihiro "Matz" Matsumoto authored
-
Rory OConnell authored
-
Rory OConnell authored
-
Rory OConnell authored
-
Rory OConnell authored
-
Rory OConnell authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
To silence some warnings. This change cancels part of 7ef3604134.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
* `mrb_kwargs` structure reordered (`values` and `rest` come last) * take symbols instead of C `char*`
-
Yukihiro "Matz" Matsumoto authored
In the past code, the current `callinfo (ci)` was modified, thus it was possible to pop `ci` beyond the `cibase`, that could cause out of memory bound access for the code like the following: ```ruby def m2 lambda { Proc.new { return :return # return from the method } }.call.call :never_reached end p m2 ```
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
By definition `mrb_assert()` called only when `MRB_DEBUG` is defined too. But make I wanted to make clear that the local variable `current_checkpoint_tag` is only accessed when `MRB_DEBUG` is set by wrapping with `DEBUG_ONLY_EXPR()`.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
To make packed inline symbols within 31 bits, because the new method hash tables allows only 31 bits of symbols. They use top 1 bit to maek unused slots.
-
Yukihiro "Matz" Matsumoto authored
Since `%u` of `mrb_sym` may be its MSB turned on.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
`mrb_int()` includes implicit integer conversion, where `mrb_integer()` does not. In this case, we know `obj` is an integer before hand.
-
Yukihiro "Matz" Matsumoto authored
Caused from combination of `mrb_int`, `int` and `size_t`..
-