| Age | Commit message (Collapse) | Author |
|
This commit allows codes like `a b do end.()` and `a b do end&.()`.
|
|
For example, the following code leaks:
class MyRipper < Ripper
def initialize(src, &blk)
super(src)
@blk = blk
end
def warn(msg, *args) = @blk.call(msg)
end
$VERBOSE = true
def call_parse = MyRipper.new("if true\n end\n") { |msg| return msg }.parse
10.times do
500_000.times do
call_parse
end
puts `ps -o rss= -p #{$$}`
end
Before:
37536
53744
70064
86448
102576
119120
135248
151216
167744
183824
After:
19280
19696
19728
20336
20448
21408
21616
21616
21824
21840
Notes:
Merged: https://github.com/ruby/ruby/pull/11289
|
|
For example, the following code leaks:
class MyRipper < Ripper
def initialize(src, &blk)
super(src)
@blk = blk
end
def warn(msg, *args) = @blk.call(msg)
end
$VERBOSE = true
def call_parse = MyRipper.new("if true\n end\n") { |msg| return msg }.parse
10.times do
500_000.times do
call_parse
end
puts `ps -o rss= -p #{$$}`
end
Before:
34832
51952
69760
88048
105344
123040
141152
159152
176656
194272
After:
18400
20256
20272
20272
20272
20304
20368
20368
20368
20400
Notes:
Merged: https://github.com/ruby/ruby/pull/11288
|
|
For example, the following script leaks:
class MyRipper < Ripper
def initialize(src, &blk)
super(src)
@blk = blk
end
def compile_error(msg) = @blk.call(msg)
end
def call_parse = MyRipper.new("/") { |msg| return msg }.parse
10.times do
100_000.times do
call_parse
end
puts `ps -o rss= -p #{$$}`
end
Before:
93952
169040
244224
318784
394432
468224
544048
618560
693776
768384
After:
19776
19776
20352
20880
20912
21408
21328
21152
21472
20944
Notes:
Merged: https://github.com/ruby/ruby/pull/11287
|
|
Fix up 89cfc1520717257073012ec07105c551e4b8af7c.
|
|
|
|
|
|
|
|
|
|
Need to use `rb_warn` macro instead of calling `rb_compile_warn`
directly to emit `warn` event on ripper.
|
|
Need to separate `check_literal_when` function for parser and
ripper otherwise warning event is not dispatched because
parser `rb_warning1` is used in ripper.
|
|
[Feature #16495]
|
|
|
|
Generic names like Node and NodeList should be namespaced properly.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8293
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8144
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6016
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4516
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4516
|
|
|
|
|
|
Also unwrap NODE_RIPPER to check the method name.
Notes:
Merged: https://github.com/ruby/ruby/pull/3649
|
|
Because it does not have closing `end`.
|
|
|
|
The scanner location has to be set from `lex.ptok` before it is
flushed by dispatching the scanner event.
|
|
|
|
|
|
The idFWD_KWREST sections may be wrong. However, the existing
idFWD_KWREST sections for ... without leading arguments are already
broken.
Implements [Feature #16378]
Notes:
Merged: https://github.com/ruby/ruby/pull/3190
|
|
Even without this limit, these assertions almost certainly cause a
NoMemoryError by removing the fix in 72ad8595f20.
|
|
This reverts commit 67c574736912003c377218153f9d3b9c0c96a17b.
[Feature #16275]
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2575
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2431
|
|
The on_params hook will use :nil as the keyword rest argument.
There is a new on_nokw_param hook as well.
This fixes a type issue in the previous code, where an ID was
passed where a VALUE was the declared type. The symbol :nil is
passed instead of the id.
Notes:
Merged: https://github.com/ruby/ruby/pull/2395
|
|
On test with MJIT, sometimes it fails like:
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2189967
|
|
As a comment token includes the newline, so delayed newline token
just follows it should not be dispatched. [Bug #11485]
Co-Authored-By: Jeremy Evans <code@jeremyevans.net>
|
|
|
|
|
|
* parse.y (parser_yylex): return END_OF_INPUT at unterminated here
document instead of an error. [Bug #15962]
|
|
|
|
[ruby-core:87945] [Feature #14912]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* parse.y (string_dvar, user_variable): register numbered
parameter in ripper for var_ref.
[ruby-core:91867] [Bug #15673]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* parse.y (parse_atmark): exclude punctuation follows @ marks,
whereas it is inclusive after $ mark as some punctuation global
variables exist.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Introduce the new operator for method reference, `.:`.
[Feature #12125] [Feature #13581]
[EXPERIMENTAL]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
You can now write the following without warning.
user = User.all.find {|user| cond(user) }
Fixes [Feature #12490].
A patch from Soutaro Matsumoto <matsumoto@soutaro.com>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
I forgot to add the copyright of the patch...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
You can now write the following without warning.
user = User.all.find {|user| cond(user) }
Fixes [Feature #12490].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
I still seem to need more memory for parallel tests with MJIT...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|