Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4180
|
|
Although it was used just to suppress an "unsed argument" warning
in the same manner as other bison-provided functions, it has been
dropped since Bision 3.7.5. And we always suppress that
warnings.
Notes:
Merged: https://github.com/ruby/ruby/pull/4121
|
|
As NODE_ZLIST/NODE_LIST are not markable, cannot be reused as
NODE_LIT.
Notes:
Merged: https://github.com/ruby/ruby/pull/4069
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4069
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4059
|
|
refs: 733ed1e184
|
|
|
|
Problem
===
Arguments information is missing for endless method without parens.
For example:
```ruby
# ok
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x() = 42
RUBY
# => (DEFN@1:0-1:12
# mid: :x
# body:
# (SCOPE@1:0-1:12
# tbl: []
# args:
# (ARGS@1:5-1:6
# pre_num: 0
# pre_init: nil
# opt: nil
# first_post: nil
# post_num: 0
# post_init: nil
# rest: nil
# kw: nil
# kwrest: nil
# block: nil)
# body: (LIT@1:10-1:12 42)))
# ok
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x() 42 end
RUBY
# => (DEFN@1:0-1:14
# mid: :x
# body:
# (SCOPE@1:0-1:14
# tbl: []
# args:
# (ARGS@1:5-1:6
# pre_num: 0
# pre_init: nil
# opt: nil
# first_post: nil
# post_num: 0
# post_init: nil
# rest: nil
# kw: nil
# kwrest: nil
# block: nil)
# body: (LIT@1:8-1:10 42)))
# It has a problem, the `args` is nil
pp RubyVM::AbstractSyntaxTree.parse(<<~RUBY).children[2]
def x = 42
RUBY
# => (DEFN@1:0-1:10
# mid: :x
# body: (SCOPE@1:0-1:10 tbl: [] args: nil body: (LIT@1:8-1:10 42)))
```
It causes an error if a program expects `args` node exists.
For example: https://github.com/ruby/rbs/issues/551
Solution
====
Call `new_args` on this case.
Notes:
Merged: https://github.com/ruby/ruby/pull/4016
Merged-By: nobu <nobu@ruby-lang.org>
|
|
"experimental_everything" makes the assigned value, it means
the assignment change the state of assigned value.
"experimental_copy" tries to make a deep copy and make copyied object
sharable.
Notes:
Merged: https://github.com/ruby/ruby/pull/3989
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3950
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3950
|
|
When `literal`, check if the literal about to be assigned to a
constant is ractor-shareable, otherwise raise `Ractor::Error` at
runtime instead of `SyntaxError`.
Notes:
Merged: https://github.com/ruby/ruby/pull/3950
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3977
|
|
NEW_GASGN and NEW_GVAR evaluate `id` argument twice.
|
|
features
This adds rb_category_compile_warn in order to emit compiler warnings
with categories. Note that Ripper currently ignores the category
for these warnings, but by default it ignores the warnings completely,
so this shouldn't matter.
Notes:
Merged: https://github.com/ruby/ruby/pull/3917
|
|
Non-literal expression which is not a part of a literal expression
is not a subject of `shareable_literal_value: literal`.
|
|
|
|
[Bug #17345]
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3909
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
It does shallow freeze only for now.
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3681
|
|
|
|
variable pattern
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20201210Japan.md#feature-17371-reintroduce-expr-in-pat-ktsj
|
|
To make some kind of Ractor related extensions, some functions
should be exposed.
* include/ruby/thread_native.h
* rb_native_mutex_*
* rb_native_cond_*
* include/ruby/ractor.h
* RB_OBJ_SHAREABLE_P(obj)
* rb_ractor_shareable_p(obj)
* rb_ractor_std*()
* rb_cRactor
and rm ractor_pub.h
and rename srcdir/ractor.h to srcdir/ractor_core.h
(to avoid conflict with include/ruby/ractor.h)
Notes:
Merged: https://github.com/ruby/ruby/pull/3775
|
|
Fixes [Bug #17124]
Notes:
Merged: https://github.com/ruby/ruby/pull/3767
|
|
|
|
|
|
I prefer pconst to be the first element of NODE.
Before:
| ARYPTN | FNDPTN | HSHPTN
---+--------+--------+-----------
u1 | imemo | imemo | pkwargs
u2 | pconst | pconst | pconst
u3 | apinfo | fpinfo | pkwrestarg
After:
| ARYPTN | FNDPTN | HSHPTN
---+--------+--------+-----------
u1 | pconst | pconst | pconst
u2 | imemo | imemo | pkwargs
u3 | apinfo | fpinfo | pkwrestarg
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3704
|
|
[Feature #17260] One-line pattern matching using tASSOC
R-assignment is rejected instead.
Notes:
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Also unwrap NODE_RIPPER to check the method name.
Notes:
Merged: https://github.com/ruby/ruby/pull/3649
|
|
Save and restore `lex_context` as-is wholely, and save in
`k_class` and `k_module` to workaround look-ahead reading.
|
|
[Feature #17104]
|
|
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.
[Feature #17100]
This commit does not complete the implementation. You can find
many bugs on using Ractor. Also the specification will be changed
so that this feature is experimental. You will see a warning when
you make the first Ractor with `Ractor.new`.
I hope this feature can help programmers from thread-safety issues.
Notes:
Merged: https://github.com/ruby/ruby/pull/3365
|
|
|
|
https://bugs.ruby-lang.org/issues/16746#note-26
Notes:
Merged: https://github.com/ruby/ruby/pull/3479
|
|
|
|
|
|
This is a partial revert commit of 8f096226e1b76f95f4d853d3dea2bc75eeeb5244.
NODE layout:
Before:
| ARYPTN | FNDPTN | HSHPTN
---+--------+--------+-----------
u1 | pconst | pconst | pconst
u2 | unused | unused | pkwargs
u3 | apinfo | fpinfo | pkwrestarg
After:
| ARYPTN | FNDPTN | HSHPTN
---+--------+--------+-----------
u1 | imemo | imemo | pkwargs
u2 | pconst | pconst | pconst
u3 | apinfo | fpinfo | pkwrestarg
|
|
This patch changes local table memory to be managed by a linked list
rather than via the garbage collector. It reduces allocations from the
GC and also fixes a use-after-free bug in the concurrent-with-sweep
compactor I'm working on.
Notes:
Merged: https://github.com/ruby/ruby/pull/3360
|