summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2019-12-18`%C` value need not to be saved in `TestVFormat::Native`; close #4868Yukihiro "Matz" Matsumoto
2019-12-17Refine output of `mrb_print_error()`KOBAYASHI Shuji
The following improvements are made according to Ruby's behavior: - Match location number to index. - Remove duplicate most recent call output. - Fix that first call is not output when array (unpacked) backtrace. ### Example ```ruby def a; raise "error!" end def b; a end begin b rescue => e e.backtrace if ARGV[0] == "unpack" # unpack backtrace raise e end ``` #### Before this patch: ``` $ bin/mruby example.rb unpack trace (most recent call last): [0] example.rb:2:in b [1] example.rb:1:in a example.rb:1: error! (RuntimeError) ``` #### After this patch: ``` $ bin/mruby example.rb unpack trace (most recent call last): [2] example.rb:4 [1] example.rb:2:in b example.rb:1:in a: error! (RuntimeError) ```
2019-12-17Merge pull request #4869 from dearblue/mingw32-io-testYukihiro "Matz" Matsumoto
Fix mruby-io test for mingw32
2019-12-17Merge pull request #4878 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-unneeded-null-checks-to-struct-backtrace_locationfilename Remove unneeded null checks to `struct backtrace_location::filename`
2019-12-16Remove unneeded null checks to `struct backtrace_location::filename`KOBAYASHI Shuji
`struct backtrace_location` is created only in `each_backtrace()`, and the `filename` field will never be null (it will be `(unknown)` if null).
2019-12-16Merge pull request #4876 from dearblue/class-methodsYukihiro "Matz" Matsumoto
Remove module only methods from class
2019-12-16Merge pull request #4877 from ↵Yukihiro "Matz" Matsumoto
shuujii/drop-dependencies-from-mruby-complex-to-some-gems Drop dependencies from `mruby-complex` to some gems
2019-12-16Merge pull request #4859 from dearblue/authorsYukihiro "Matz" Matsumoto
Add "mruby developers" into some gems; Resolve #4709
2019-12-15Drop dependencies from `mruby-complex` to some gemsKOBAYASHI Shuji
2019-12-14Remove location info from `Exception#inspect`KOBAYASHI Shuji
Because location info (file name and line number) is kept in the backtrace, it should not be kept in the result of `inspect` (and the exception object itself), I think. ### Example ```ruby # example.rb begin raise "err" rescue => e p e end ``` #### Before this patch: ``` $ bin/mruby example.rb example.rb:2: err (RuntimeError) ``` #### After this patch: ``` $ bin/mruby example.rb err (RuntimeError) ```
2019-12-14Remove module only methods from classdearblue
The `#prepend_features` and `#module_function` methods are not haves for class objects.
2019-12-14Fix for `#methods` to include methods that were `undef`dearblue
If `#methods` traverse the super class, it includes the methods that were does `undef` in the subclass. Before patched: ```terminal % bin/mruby -e 'p Module.instance_methods - Class.instance_methods' [] ``` After patched: ```terminal % bin/mruby -e 'p Module.instance_methods - Class.instance_methods' [:append_features, :extend_object] ```
2019-12-14Support bit flags for `IO.open`dearblue
Note that this bit flags are not compatible with the native flags defined in `#include <fcntl.h>`.
2019-12-14Implement `File#size` and `File#truncate`dearblue
2019-12-14Avoid method in methoddearblue
And rename `File.concat_path` to `File._concat_path`.
2019-12-14Remove unnessesary branchesdearblue
2019-12-14Fix mruby-io test for mingw32dearblue
Need `mkstemp()` implements.
2019-12-14Merge pull request #4866 from shuujii/fix-arguments-check-to-Array-eachYukihiro "Matz" Matsumoto
Fix arguments check to `Array#each`
2019-12-13Fix arguments check to `Array#each`KOBAYASHI Shuji
#### Before this patch: ``` $ mruby -e '[].each(1){}' #=> no error ``` #### After this patch: ``` $ mruby -e '[].each(1){}' #=> ArgumentError: wrong number of arguments ```
2019-12-13Align RIStruct data for rationaltake-cheeze
2019-12-12Add `mrb_num_args_error()` for "wrong number of arguments" errorKOBAYASHI Shuji
To unify the style of messages.
2019-12-12Merge pull request #4861 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-behavior-of-Kernel-Integer-to-numbers-ending-with-_-and-spaces Fix behavior of `Kernel#Integer` to numbers ending with `_` and spaces
2019-12-11Fix behavior of `Kernel#Integer` to numbers ending with `_` and spacesKOBAYASHI Shuji
#### Before this patch: ```ruby Integer("1_ ") #=> 1 ``` #### After this patch (same as Ruby): ```ruby Integer("1_ ") #=> ArgumentError ```
2019-12-10Merge pull request #4860 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-behavior-of-String-to_i-Kernel-Integer-to-numbers-starting-with-_ Fix behavior of `String#to_i`/`Kernel#Integer` to numbers starting with `_`
2019-12-10Fix behavior of `String#to_i`/`Kernel#Integer` to numbers starting with `_`KOBAYASHI Shuji
#### Before this patch: ```ruby Integer("_1") #=> 1 "_1".to_i #=> 1 ``` #### After this patch (same as Ruby): ```ruby Integer("_1") #=> ArgumentError "_1".to_i #=> 0 ```
2019-12-10Merge pull request #4858 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-that-String-to_f-accepts-consecutive-_-as-a-numeric-expression Fix that `String#to_f` accepts consecutive `_` as a numeric expression
2019-12-09Add "mruby developers" into some gems; Resolve #4709dearblue
It is writing side by side with the original authors.
2019-12-09Fix that `String#to_f` accepts consecutive `_` as a numeric expressionKOBAYASHI Shuji
Consecutive `_` is not allowed as a numeric expression: 1_2__3 #=> SyntaxError Float("1_2__3") #=> ArgumentError Integer("1_2__3") #=> ArgumentError "1_2__3".to_i #=> 12 But `String#to_f` accept it, so I fixed the issue. Before this patch: "1_2__3".to_f #=> 123 After this patch: "1_2__3".to_f #=> 12
2019-12-09Fix `mrb_get_argv()` to return array pointer every time; fix #4832Yukihiro "Matz" Matsumoto
2019-12-09Warnings for numbered parameters in nested blocks.Yukihiro "Matz" Matsumoto
2019-12-09Parser refactoring on numbered parameters.Yukihiro "Matz" Matsumoto
Now identifiers like `_1abc` are allowed.
2019-12-09Support new numbered parameter syntax `_1` instead of `@1`.Yukihiro "Matz" Matsumoto
2019-12-09Implement numbered parametersUkrainskiy Sergey
2019-12-09Merge pull request #4855 from dearblue/kwargs-uninitYukihiro "Matz" Matsumoto
Fix keyword arguments not be obtained with `mrb_get_args()`; Fix #4754
2019-12-08Merge pull request #4856 from shuujii/fix-the-error-message-of-Kernel-FloatYukihiro "Matz" Matsumoto
Fix the error message of `Kernel#Float`
2019-12-08Fix the error message of `Kernel#Float`KOBAYASHI Shuji
#### Before this patch: ``` $ bin/mruby -e 'Float("1_a")' -e:1: invalid string for float(a) (ArgumentError) ``` #### After this patch: ``` $ bin/mruby -e 'Float("1_a")' -e:1: invalid string for float("1_a") (ArgumentError) ```
2019-12-08Merge pull request #4854 from shuujii/add-tests-to-MathYukihiro "Matz" Matsumoto
Add tests to `Math`
2019-12-07Fix keyword arguments not be obtained with `mrb_get_args()`; Fix #4754dearblue
If ":" is after "|" and there is no "?" or "*", the keyword argument could not be obtained and it was not initialized with `undef`. For example: "|oo:"
2019-12-07Add tests to `Math`KOBAYASHI Shuji
2019-12-06Merge pull request #4852 from shuujii/auto-detect-MRB_TIME_T_UINTYukihiro "Matz" Matsumoto
Auto detect `MRB_TIME_T_UINT`
2019-12-05Auto detect `MRB_TIME_T_UINT`KOBAYASHI Shuji
2019-12-05Merge pull request #4851 from shuujii/refine-mrb_allocaYukihiro "Matz" Matsumoto
Refine `mrb_alloca()`
2019-12-04Refine `mrb_alloca()`KOBAYASHI Shuji
* The allocated memory is guaranteed to be aligned for any data type (it was not guaranteed when string type is embed). * Make allocation size exactly specified size (does not allocate space for a null byte).
2019-12-04Merge pull request #4850 from ↵Yukihiro "Matz" Matsumoto
shuujii/silence-Clang-warning-with-MRB_INT64-and-MRB_32BIT-in-time.c Silence Clang warning with `MRB_INT64` and `MRB_32BIT` in `time.c`
2019-12-03Silence Clang warning with `MRB_INT64` and `MRB_32BIT` in `time.c`KOBAYASHI Shuji
Silence the following warnings: ``` /mruby/mrbgems/mruby-time/src/time.c:871:15: warning: result of comparison of constant 9223372036854775807 with expression of type 'time_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare] if (tm->sec > MRB_INT_MAX || tm->sec < MRB_INT_MIN) { ~~~~~~~ ^ ~~~~~~~~~~~ /mruby/mrbgems/mruby-time/src/time.c:871:40: warning: result of comparison of constant -9223372036854775808 with expression of type 'time_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare] if (tm->sec > MRB_INT_MAX || tm->sec < MRB_INT_MIN) { ~~~~~~~ ^ ~~~~~~~~~~~ /mruby/mrbgems/mruby-time/src/time.c:887:16: warning: result of comparison of constant 9223372036854775807 with expression of type 'time_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare] if (tm->usec > MRB_INT_MAX || tm->usec < MRB_INT_MIN) { ~~~~~~~~ ^ ~~~~~~~~~~~ /mruby/mrbgems/mruby-time/src/time.c:887:42: warning: result of comparison of constant -9223372036854775808 with expression of type 'time_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare] if (tm->usec > MRB_INT_MAX || tm->usec < MRB_INT_MIN) { ~~~~~~~~ ^ ~~~~~~~~~~~ ```
2019-12-03Merge pull request #4849 from ↵Yukihiro "Matz" Matsumoto
shuujii/silence-Clang-warning-with-MRB_INT32-and-MRB_64BIT-in-time.c Silence Clang warning with `MRB_INT32` and `MRB_64BIT` in `time.c`
2019-12-02Silence Clang warning with `MRB_INT32` and `MRB_64BIT` in `time.c`KOBAYASHI Shuji
Silence the following warning: ``` /mruby/mrbgems/mruby-time/src/time.c:258:60: warning: result of comparison of constant -9223372036854775808 with expression of type 'mrb_int' (aka 'int') is always false [-Wtautological-constant-out-of-range-compare] if ((mrb_time_int)i > MRB_TIME_MAX || MRB_TIME_MIN > i) { ~~~~~~~~~~~~ ^ ~ ```
2019-12-02Merge pull request #4848 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-MRB_FIXNUM_SHIFT-with-MRB_WORD_BOXING-MRB_INT32-and-MRB_64BIT Fix `MRB_FIXNUM_SHIFT` with `MRB_WORD_BOXING`, `MRB_INT32` and `MRB_64BIT`
2019-12-01Fix `MRB_FIXNUM_SHIFT` with `MRB_WORD_BOXING`, `MRB_INT32` and `MRB_64BIT`KOBAYASHI Shuji
### Example ```ruby # example.rb max32 = 2**30 - 1 + 2**30 min32 = -max32-1 [max32, max32+1, min32, min32-1].each{|n| p [n, n.class]} ``` #### Before this patch: ``` $ bin/mruby example.rb [2147483647, Float] [2147483648, Float] [-2147483648, Float] [-2147483649, Float] ``` #### After this patch: ``` $ bin/mruby example.rb [2147483647, Fixnum] [2147483648, Float] [-2147483648, Fixnum] [-2147483649, Float] ```
2019-11-30Use a string as a common regexp representation; ref #4847Yukihiro "Matz" Matsumoto