Skip to content

Commit eb10c5e

Browse files
committed
ruby2_keywords Hashes are now always correctly copied without the flag on CRuby 3.2+
* Reverts "Copy the CRuby bug/behavior that the ruby2_keyword flag on a Hash is not reset for caller(*args) -> callee(*args) calls" * This reverts commit 103d4da. * See 103d4da5fc * 3363 -> 3242 for org.truffleruby.language.dispatch.RubyCallNode.execute (NI EE) * Avoids partial evaluating and allocating the nodes to copy the ruby2_keyword Hash per callee, instead it is only once per call site.
1 parent 5fb8966 commit eb10c5e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+91
-209
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Compatibility:
1212

1313
Performance:
1414

15+
* Optimize calls with `ruby2_keywords` forwarding by deciding it per call site instead of per callee thanks to [my fix in CRuby 3.2](https://bugs.ruby-lang.org/issues/18625) (@eregon).
1516

1617
Changes:
1718

spec/tags/core/module/ruby2_keywords_tags.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
fails:Keyword arguments raises ArgumentError for missing keyword arguments even if there are extra ones
2-
fails:Keyword arguments delegation does not work with call(*ruby2_keyword_args) with missing ruby2_keywords in between

spec/truffle/parsing/fixtures/complex_numbers/with_float_imaginary_part.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ ast: |
2020
methodName = "convert"
2121
notEmptyKeywordsProfile = false
2222
notRuby2KeywordsHashProfile = false
23-
ruby2KeywordsHashProfile = false
2423
children:
2524
arguments = [
2625
IntegerFixnumLiteralNode

spec/truffle/parsing/fixtures/complex_numbers/with_integer_imaginary_part.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ ast: |
2020
methodName = "convert"
2121
notEmptyKeywordsProfile = false
2222
notRuby2KeywordsHashProfile = false
23-
ruby2KeywordsHashProfile = false
2423
children:
2524
arguments = [
2625
IntegerFixnumLiteralNode

spec/truffle/parsing/fixtures/ensure/in_begin_end_block.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ ast: |
5050
methodName = "bar"
5151
notEmptyKeywordsProfile = false
5252
notRuby2KeywordsHashProfile = false
53-
ruby2KeywordsHashProfile = false
5453
children:
5554
receiver =
5655
SelfNode

spec/truffle/parsing/fixtures/ensure/in_module.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ ast: |
8787
methodName = "bar"
8888
notEmptyKeywordsProfile = false
8989
notRuby2KeywordsHashProfile = false
90-
ruby2KeywordsHashProfile = false
9190
children:
9291
receiver =
9392
SelfNode

spec/truffle/parsing/fixtures/hashes/with_double_splat_operator/with_double_splat.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ ast: |
2525
methodName = "foo"
2626
notEmptyKeywordsProfile = false
2727
notRuby2KeywordsHashProfile = false
28-
ruby2KeywordsHashProfile = false
2928
children:
3029
receiver =
3130
SelfNode

spec/truffle/parsing/fixtures/hashes/with_double_splat_operator/with_double_splat_and_key_value_pairs.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ ast: |
3232
methodName = "foo"
3333
notEmptyKeywordsProfile = false
3434
notRuby2KeywordsHashProfile = false
35-
ruby2KeywordsHashProfile = false
3635
children:
3736
receiver =
3837
SelfNode

spec/truffle/parsing/fixtures/hashes/with_double_splat_operator/with_key_value_pairs_and_double_splat_operator.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ ast: |
4646
methodName = "bar"
4747
notEmptyKeywordsProfile = false
4848
notRuby2KeywordsHashProfile = false
49-
ruby2KeywordsHashProfile = false
5049
children:
5150
receiver =
5251
SelfNode

0 commit comments

Comments
 (0)