| Age | Commit message (Collapse) | Author |
|
As of CRuby2.7 it is only warned. `mruby` prohibits explicitly to
implement the future Ruby3 behavior.
|
|
The `debug` build target (`MRB_GC_STRESS` is enabled) on CI have been
compiled but not tested so far. However, I think testing with
`MRB_GC_STRESS` is effective (in fact, I found #4907 bug).
Therefore, I integrated `debug` and `full-debug` build targets to enable
`MRB_GC_STRESS` testing. Testing with `MRB_GC_STRESS` takes a little time,
but compiling takes more time, so CI execution time does not increase due to
decrease of build target.
|
|
Enable sanitizer in travis test
|
|
Fix potentially use of wrong method cache
|
|
#### Example (with `MRB_METHOD_CACHE`)
```ruby
GC.start
c = Class.new
p c #=> #<Class:0x7fd6a180e790>
c.new #=> cache `c.new`
c = nil
GC.start #=> `c` is GCed
r = Range.dup
p r #=> #<Class:0x7fd6a180e790>
# [same pointer as `c`]
r.new(2, 3) #=> ArgumentError: 'initialize':
# wrong number of arguments (2 for 0)
# [`c.new` is called instead of `r.new`]
```
#### Cause
An entry of method cache is identified by class pointer and method
id. However, reusing memory after GC may create a class with the same
pointer as the cached class.
#### Treatment
Cleared method caches of the class when the class is GCed.
|
|
shuujii/refine-the-assertion-failure-message-in-mrdb-print-tests
Refine the assertion failure message in mrdb print tests
|
|
#### Before this patch:
```console
Fail: mruby-bin-debugger(print) error (mrbgems: mruby-bin-debugger)
- Assertion[2]
Expected true to be false.
```
#### After this patch:
```console
Fail: mruby-bin-debugger(print) error (mrbgems: mruby-bin-debugger)
- Assertion[2]
Expected "$2 = undefined method 'bar' (NoMethodError)\n" to be start_with? "$2 = (eval):2: undefined method".
```
|
|
Add double quotes for cygwin filenames #4904
|
|
|
|
Use GNU extension in C++ for cygwin
|
|
Handle CR LF newline natively in lexer
|
|
|
|
|
|
|
|
Parallelize compilation only on Travis CI
|
|
Parallel execution of tests makes log difficult to see due to mixing.
|
|
Use `git checkout` instead of `git reset`
|
|
With this change, if the checkout fails, it will stop with an error.
The purpose is to avoid deleting working branch history when
developing gem.
|
|
|
|
Refine `.travis.yml`
|
|
Fix "undefined method `Pathname'"; fix #4895
|
|
shuujii/use-exec-instead-of-system-in-minirake-for-exit-status
Use `exec` instead of `system` in `minirake` for exit status
|
|
* Use `rake` instead of `minirake`.
* Remove `gperf` configuration.
Execution time seems to be reduced by about 15%.
|
|
#### Before this patch:
```console
$ ./minirake --foo; echo $?
invalid option: --foo
0
```
#### After this patch:
```console
$ ./minirake --foo; echo $?
invalid option: --foo
1
```
|
|
|
|
Perform `shellquote` on referenced string
|
|
`mruby` does not warn like `CRuby` for cases like #4893.
Fix #4890, fix #4891, fix #4893.
|
|
|
|
|
|
`_0` is not numbered parameter
|
|
#### Before this patch:
```console
$ bin/mruby rb -e '_0=:l; p ->{_0}.()'
-e:1:13: _0 is not available
-e:1:13: syntax error, unexpected $end, expecting '}'
```
#### After this patch (same as Ruby):
```console
$ bin/mruby rb -e '_0=:l; p ->{_0}.()'
:l
```
|
|
|
|
|
|
shuujii/fix-potentially-crash-in-%n-of-mrb_vformat-with-64-bit-int
Fix potentially crash in `%n` of `mrb_vformat()` with 64-bit `int`
|
|
If `mrb_sym` is smaller than `int`, it is promoted to `int`.
|
|
Avoid method in method
|
|
Remove unnessesary branches
|
|
Fix for `#methods` to include methods that were `undef`
|
|
|
|
|
|
Fix `mruby-bin-debugger` tests; ref d2f2f9db
|
|
Simplify `print_backtrace()`
|
|
Avoid creating `Data` object that refers `mruby` objects.
Also close #4622 ref #4613
|
|
This reverts commit f507ff4842b92a60c0c600fa1f29efdf2688c877.
It makes AppVeyor tests fail.
|
|
|
|
|
|
shuujii/remove-location-info-from-Exception-inspect
Remove location info from `Exception#inspect`
|
|
Refine output of `mrb_print_error()`
|
|
|
|
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)
```
|