Age | Commit message (Collapse) | Author |
|
|
|
|
|
So that it is not ncessary to specify the type each time.
Notes:
Merged: https://github.com/ruby/ruby/pull/8410
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8408
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7615
|
|
call
Allow compstmt in the first argument of command call wrapped with parenthesis
like following arguments with parenthesis.
Notes:
Merged: https://github.com/ruby/ruby/pull/8347
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8343
|
|
expression
Notes:
Merged: https://github.com/ruby/ruby/pull/8320
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8291
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8293
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8292
|
|
The token just after BOM needs to position at column 0, so that the
indentation matches closing line.
Notes:
Merged: https://github.com/ruby/ruby/pull/8281
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8289
|
|
This header defines several essential macros.
Notes:
Merged: https://github.com/ruby/ruby/pull/8274
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8267
|
|
Appreciation to the reporter, Huichiao Tsai <hctsai.cs10@nycu.edu.tw>.
|
|
[Bug #19836]
The parser does not free the chain of `struct vtable`, which causes
memory leaks.
The following script reproduces this issue:
```
10.times do
100_000.times do
Ripper.parse("-> {")
end
puts `ps -o rss= -p #{$$}`
end
```
Notes:
Merged: https://github.com/ruby/ruby/pull/8192
|
|
[Bug #19835]
The parser does not free the `tbl` of the `struct vtable` when there are
leftover `lvtbl` in the parser. This causes a memory leak.
The following script reproduces this issue:
```
10.times do
100_000.times do
Ripper.parse("class Foo")
end
puts `ps -o rss= -p #{$$}`
end
```
Notes:
Merged: https://github.com/ruby/ruby/pull/8192
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8144
|
|
```ruby
def helper_cant_rescue
begin
raise SyntaxError
rescue
cant_rescue # here
end
end
```
on this case, a line event is reported on `cant_rescue` line
because of node structure. it should not be reported.
Notes:
Merged: https://github.com/ruby/ruby/pull/8149
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8119
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8081
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8057
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8044
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8029
|
|
The elements of `ruby_global_name_punct_bits` table are 32-bit masks.
Notes:
Merged: https://github.com/ruby/ruby/pull/8024
|
|
script_lines_get functions
Notes:
Merged: https://github.com/ruby/ruby/pull/7990
|
|
This fixes an infinite loop possible after ec3542229b29ec93062e9d90e877ea29d3c19472.
For \u{} escapes in regexps, skip validation in the parser, and rely on the regexp
code to handle validation. This is necessary so that invalid unicode escapes in
comments in extended regexps are allowed.
Fixes [Bug #19750]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/8003
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
According to the C99 specification section 7.20.3.2 paragraph 2:
> If ptr is a null pointer, no action occurs.
So we do not need to check that the pointer is a null pointer.
Notes:
Merged: https://github.com/ruby/ruby/pull/8004
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7963
|
|
`yyparse` never changes the value of `coverage_enabled`.
`coverage_enabled` depends on only return value of `e_option_supplied`.
Therefore `parser_params` doesn't need to have `coverage_enabled.
Notes:
Merged: https://github.com/ruby/ruby/pull/7951
|
|
sunc treats int bitfield as unsigned int.
This commit will fix build failure on sunc.
* http://rubyci.s3.amazonaws.com/solaris10-sunc/ruby-master/log/20230617T100003Z.fail.html.gz
* http://rubyci.s3.amazonaws.com/solaris11-sunc/ruby-master/log/20230617T090011Z.fail.html.gz
Notes:
Merged: https://github.com/ruby/ruby/pull/7952
|
|
This commit reduces dependency to CRuby object.
Notes:
Merged: https://github.com/ruby/ruby/pull/7950
|
|
|
|
Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions
are passed via `struct rb_parser_config_struct` when this macro is enabled.
* Add CI task with 'cppflags=-DUNIVERSAL_PARSER' for ubuntu.
Notes:
Merged: https://github.com/ruby/ruby/pull/7927
|
|
98637d421dbe8bcf86cc2effae5e26bb96a6a4da changes the name of
the function. However this function is exported as global,
then change the name to origin one for keeping compatibility.
Notes:
Merged: https://github.com/ruby/ruby/pull/7852
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7844
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7810
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7807
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7794
|
|
Preserve numbered parameters context across method definitions
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7775
|
|
|
|
So that newlines across a here-doc terminator will be separated
tokens.
Cf. https://github.com/ruby/irb/pull/558
Notes:
Merged: https://github.com/ruby/ruby/pull/7675
Merged-By: nobu <nobu@ruby-lang.org>
|
|
After 6c0925ba7017efde6091e2ec4f1a6be268166696, it was impossible
to distinguish between the presence or absence of `*`.
# Before the commit
Ripper.sexp('0 in []')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil]
Ripper.sexp('0 in [*]')[1][0][2][1] #=> [:aryptn, nil, nil, [:var_field, nil], nil]
# After the commit
Ripper.sexp('0 in []')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil]
Ripper.sexp('0 in [*]')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil]
This commit reverts it.
|
|
`gc_verify_internal_consistency` reports "found internal inconsistency"
for "test_pattern_matching.rb".
http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-docker/4501173
Ruby's parser manages objects by two different ways.
1. For parser
* markable node holds objects
* call `RB_OBJ_WRITTEN` with `p->ast` as parent
* `mark_ast_value` marks objects
2. For ripper
* unmarkable node, NODE_RIPPER/NODE_CDECL, holds objects
* call `rb_ast_add_mark_object`. This function calls `rb_hash_aset` then
`RB_OBJ_WRITTEN` is called with `mark_hash` as parent
* `mark_hash` marks objects
However in current pattern_matching implementation
* markable node holds objects
* call `rb_ast_add_mark_object`
This commit fix it to be #2.
This was inconsistency however always `mark_hash` is
made young by `rb_ast_add_mark_object` call then objects
are not collected.
Notes:
Merged: https://github.com/ruby/ruby/pull/7627
|
|
This token is exposed only when `RubyVM::AbstractSyntaxTree` with
`keep_tokens` option.
Notes:
Merged: https://github.com/ruby/ruby/pull/7622
|
|
|
|
It should also check for duplicate names.
|