ml.ruby-lang.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

ruby-core

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
ruby-core@ml.ruby-lang.org

February 2025

  • 2 participants
  • 188 discussions
[ruby-core:120992] [Ruby master Feature#21135] Feature request: Enumerable.compare_count
by Student (Nathan Zook) 17 Feb '25

17 Feb '25
Issue #21135 has been reported by Student (Nathan Zook). ---------------------------------------- Feature #21135: Feature request: Enumerable.compare_count https://bugs.ruby-lang.org/issues/21135 * Author: Student (Nathan Zook) * Status: Open ---------------------------------------- Enumerables at times can be quite expensive to complete expand. If all is desired is to compare the count, we can terminate the enumeration once the result is known. The functionality that I envision, if implemented in ruby, might look like this: ```ruby module Enumerable def compare_count(operation, standard, &blk) case operation when :< compare_count_lt(standard, &blk) when :>= !compare_count_lt(standard, &blk) when :> compare_count_spaceship(standard, &blk) == 1 when :<= compare_count_spaceship(standard, &blk) != 1 when :== compare_count_spaceship(standard, &blk) == 0 when :!= compare_count_spaceship(standard, &blk) != 0 end end def compare_count_lt(standard, &blk) truncate_count(standard - 1, &blk) < standard end def compare_count_spaceship(standard, &blk) truncate_count(standard, &blk) <=> standard end def truncate_count(limit, &blk) return 0 if limit < 0 found = 0 each do |ele| found += 1 unless blk && !yield(ele) break if found > limit end found end end class Demo include Enumerable attr_reader :capacity attr_reader :cnt def initialize(capacity) @capacity = capacity end def each @cnt = 0 while cnt < capacity @cnt += 1 yield cnt end end end %i{< <= >= > == !=}.each do |op| d = Demo.new(3) (-1..5).each do |x| puts [op, x, d.compare_count(op, x), d].inspect end end require 'prime' %i{< <= >= > == !=}.each do |op| d = Demo.new(6) (-1..5).each do |x| puts [op, x, d.compare_count(op, x){|p| Prime.prime?(p)} , d].inspect end end ``` ``` [:<, -1, false, #<Demo:0x034d567c @capacity=3>] [:<, 0, false, #<Demo:0x034d567c @capacity=3>] [:<, 1, false, #<Demo:0x034d567c @capacity=3, @cnt=1>] [:<, 2, false, #<Demo:0x034d567c @capacity=3, @cnt=2>] [:<, 3, false, #<Demo:0x034d567c @capacity=3, @cnt=3>] [:<, 4, true, #<Demo:0x034d567c @capacity=3, @cnt=3>] [:<, 5, true, #<Demo:0x034d567c @capacity=3, @cnt=3>] [:<=, -1, false, #<Demo:0x034d512c @capacity=3>] [:<=, 0, false, #<Demo:0x034d512c @capacity=3, @cnt=1>] [:<=, 1, false, #<Demo:0x034d512c @capacity=3, @cnt=2>] [:<=, 2, false, #<Demo:0x034d512c @capacity=3, @cnt=3>] [:<=, 3, true, #<Demo:0x034d512c @capacity=3, @cnt=3>] [:<=, 4, true, #<Demo:0x034d512c @capacity=3, @cnt=3>] [:<=, 5, true, #<Demo:0x034d512c @capacity=3, @cnt=3>] [:>=, -1, true, #<Demo:0x034d4d44 @capacity=3>] [:>=, 0, true, #<Demo:0x034d4d44 @capacity=3>] [:>=, 1, true, #<Demo:0x034d4d44 @capacity=3, @cnt=1>] [:>=, 2, true, #<Demo:0x034d4d44 @capacity=3, @cnt=2>] [:>=, 3, true, #<Demo:0x034d4d44 @capacity=3, @cnt=3>] [:>=, 4, false, #<Demo:0x034d4d44 @capacity=3, @cnt=3>] [:>=, 5, false, #<Demo:0x034d4d44 @capacity=3, @cnt=3>] [:>, -1, true, #<Demo:0x034d4998 @capacity=3>] [:>, 0, true, #<Demo:0x034d4998 @capacity=3, @cnt=1>] [:>, 1, true, #<Demo:0x034d4998 @capacity=3, @cnt=2>] [:>, 2, true, #<Demo:0x034d4998 @capacity=3, @cnt=3>] [:>, 3, false, #<Demo:0x034d4998 @capacity=3, @cnt=3>] [:>, 4, false, #<Demo:0x034d4998 @capacity=3, @cnt=3>] [:>, 5, false, #<Demo:0x034d4998 @capacity=3, @cnt=3>] [:==, -1, false, #<Demo:0x034d4600 @capacity=3>] [:==, 0, false, #<Demo:0x034d4600 @capacity=3, @cnt=1>] [:==, 1, false, #<Demo:0x034d4600 @capacity=3, @cnt=2>] [:==, 2, false, #<Demo:0x034d4600 @capacity=3, @cnt=3>] [:==, 3, true, #<Demo:0x034d4600 @capacity=3, @cnt=3>] [:==, 4, false, #<Demo:0x034d4600 @capacity=3, @cnt=3>] [:==, 5, false, #<Demo:0x034d4600 @capacity=3, @cnt=3>] [:!=, -1, true, #<Demo:0x034d4268 @capacity=3>] [:!=, 0, true, #<Demo:0x034d4268 @capacity=3, @cnt=1>] [:!=, 1, true, #<Demo:0x034d4268 @capacity=3, @cnt=2>] [:!=, 2, true, #<Demo:0x034d4268 @capacity=3, @cnt=3>] [:!=, 3, false, #<Demo:0x034d4268 @capacity=3, @cnt=3>] [:!=, 4, true, #<Demo:0x034d4268 @capacity=3, @cnt=3>] [:!=, 5, true, #<Demo:0x034d4268 @capacity=3, @cnt=3>] [:<, -1, false, #<Demo:0x00007f64147c37e0 @capacity=6>] [:<, 0, false, #<Demo:0x00007f64147c37e0 @capacity=6>] [:<, 1, false, #<Demo:0x00007f64147c37e0 @capacity=6, @cnt=2>] [:<, 2, false, #<Demo:0x00007f64147c37e0 @capacity=6, @cnt=3>] [:<, 3, false, #<Demo:0x00007f64147c37e0 @capacity=6, @cnt=5>] [:<, 4, true, #<Demo:0x00007f64147c37e0 @capacity=6, @cnt=6>] [:<, 5, true, #<Demo:0x00007f64147c37e0 @capacity=6, @cnt=6>] [:<=, -1, false, #<Demo:0x00007f64147c21d8 @capacity=6>] [:<=, 0, false, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=2>] [:<=, 1, false, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=3>] [:<=, 2, false, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=5>] [:<=, 3, true, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=6>] [:<=, 4, true, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=6>] [:<=, 5, true, #<Demo:0x00007f64147c21d8 @capacity=6, @cnt=6>] [:>=, -1, true, #<Demo:0x00007f64147c0860 @capacity=6>] [:>=, 0, true, #<Demo:0x00007f64147c0860 @capacity=6>] [:>=, 1, true, #<Demo:0x00007f64147c0860 @capacity=6, @cnt=2>] [:>=, 2, true, #<Demo:0x00007f64147c0860 @capacity=6, @cnt=3>] [:>=, 3, true, #<Demo:0x00007f64147c0860 @capacity=6, @cnt=5>] [:>=, 4, false, #<Demo:0x00007f64147c0860 @capacity=6, @cnt=6>] [:>=, 5, false, #<Demo:0x00007f64147c0860 @capacity=6, @cnt=6>] [:>, -1, true, #<Demo:0x00007f64147df260 @capacity=6>] [:>, 0, true, #<Demo:0x00007f64147df260 @capacity=6, @cnt=2>] [:>, 1, true, #<Demo:0x00007f64147df260 @capacity=6, @cnt=3>] [:>, 2, true, #<Demo:0x00007f64147df260 @capacity=6, @cnt=5>] [:>, 3, false, #<Demo:0x00007f64147df260 @capacity=6, @cnt=6>] [:>, 4, false, #<Demo:0x00007f64147df260 @capacity=6, @cnt=6>] [:>, 5, false, #<Demo:0x00007f64147df260 @capacity=6, @cnt=6>] [:==, -1, false, #<Demo:0x00007f64147dd898 @capacity=6>] [:==, 0, false, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=2>] [:==, 1, false, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=3>] [:==, 2, false, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=5>] [:==, 3, true, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=6>] [:==, 4, false, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=6>] [:==, 5, false, #<Demo:0x00007f64147dd898 @capacity=6, @cnt=6>] [:!=, -1, true, #<Demo:0x00007f64147dbf20 @capacity=6>] [:!=, 0, true, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=2>] [:!=, 1, true, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=3>] [:!=, 2, true, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=5>] [:!=, 3, false, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=6>] [:!=, 4, true, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=6>] [:!=, 5, true, #<Demo:0x00007f64147dbf20 @capacity=6, @cnt=6>] ``` -- https://bugs.ruby-lang.org/
2 2
0 0
[ruby-core:121072] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set
by greggzst (Grzegorz Jakubiak) 15 Feb '25

15 Feb '25
Issue #16993 has been updated by greggzst (Grzegorz Jakubiak). nobu (Nobuyoshi Nakada) wrote in #note-5: > This kind of extensions should be done in the corresponding library side, set.rb. Thanks for pointing that out. Here's the PR https://github.com/ruby/set/pull/40 Dan0042 (Daniel DeLorme) wrote in #note-6: > I like the concept but I'm going to bikeshed the naming: by itself "key_set" is unclear if you don't already know what it does. It sounds like the purpose is to set a key (like instance_variable_set). I'd prefer something a bit more descriptive like "keys_to_set" Good point I addressed that ---------------------------------------- Feature #16993: Sets: from hash keys using Hash#key_set https://bugs.ruby-lang.org/issues/16993#change-111989 * Author: marcandre (Marc-Andre Lafortune) * Status: Open ---------------------------------------- To create a set from hash keys currently implies a temporary array for all keys, rehashing all those keys and rebuilding a hash. Instead, the hash could be copied and its values set to `true`. ```ruby h = {a: 1} # Now: Set.new(h.keys) # => Set[:a] # After h.key_set # => Set[:a], efficiently. ``` -- https://bugs.ruby-lang.org/
1 0
0 0
[ruby-core:121068] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set
by Dan0042 (Daniel DeLorme) 15 Feb '25

15 Feb '25
Issue #16993 has been updated by Dan0042 (Daniel DeLorme). I like the concept but I'm going to bikeshed the naming: by itself "key_set" is unclear if you don't already know what it does. It sounds like the purpose is to set a key (like instance_variable_set). I'd prefer something a bit more descriptive like "keys_to_set" ---------------------------------------- Feature #16993: Sets: from hash keys using Hash#key_set https://bugs.ruby-lang.org/issues/16993#change-111984 * Author: marcandre (Marc-Andre Lafortune) * Status: Open ---------------------------------------- To create a set from hash keys currently implies a temporary array for all keys, rehashing all those keys and rebuilding a hash. Instead, the hash could be copied and its values set to `true`. ```ruby h = {a: 1} # Now: Set.new(h.keys) # => Set[:a] # After h.key_set # => Set[:a], efficiently. ``` -- https://bugs.ruby-lang.org/
1 0
0 0
[ruby-core:121071] Your private information has been stolen because of suspicious events.
by ruby-core@ruby-lang.org 15 Feb '25

15 Feb '25
Greetings!Would like to introduce myself - I am a specialized hacker, and have succeeded in hacking your operating system.At this moment, I have obtained a complete access to account of yours.On top of that, I was also unnoticeably observing all your activities and spying on you for few past months.It was possible because your computer was infected with malicious spyware, which infiltrated your computer while you were visiting a website containing adult videos.Give me a few minutes to clarify how that affects you. Because of Trojan viruses, I am now able to have an unrestricted access to your computer as well as any other devices owned by you.In other words, I can see without any restrictions everything in your screen and even activate the camera together with microphone anytime I want, and you won't even know about that.Moreover, I have complete access to confidential data of yours including emails, chat history etc.You may be rightfully puzzled how come your antivirus is not able to detect the harmful software of mine.I don't mind explaining that at all: my malicious software is driver-based; hence it refreshes its signatures every 4 hours, which makes it impossible for your antivirus to identify it.I have come up with a video exposing the scenes of your passionate masturbation sessions on the left side, whereas on the right side it shows the dirty videos you were watching during that time .^.Trust me, it takes several mouse clicks to distribute this video to your entire email addresses list as well as messenger contacts on your PC or other devices.Additionally, I can easily share all your emails as well as chat history to public too.I honestly think you would certainly like to abstain from letting that happen.There is a solution for you in this case - perform 950 USD transfer in Bitcoin equivalent to Bitcoin account of mine (it is really not difficult to do, and you can find online the step-by-step guide, if you have no idea about it).My bitcoin account details are below as follows (Bitcoin wallet):1GTVwiR2Y9FdbduBwVjnRB1yEmBM34BKMkOnce the aforementioned amount gets transferred to my account, I will straight away erase all those kinky videos and vanish from your life completely.Please, settle this payment within 50 hours (2 days).A notification will be sent to me right after this email gets opened, which will trigger the countdown.Believe me, I am very cautious, professional and never fail.If I get to know about you sharing this message with anyone else, I will right away distribute your private videos to public.Best of luck!
1 0
0 0
[ruby-core:121065] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set
by nobu (Nobuyoshi Nakada) 15 Feb '25

15 Feb '25
Issue #16993 has been updated by nobu (Nobuyoshi Nakada). This kind of extensions should be done in the corresponding library side, set.rb. ---------------------------------------- Feature #16993: Sets: from hash keys using Hash#key_set https://bugs.ruby-lang.org/issues/16993#change-111978 * Author: marcandre (Marc-Andre Lafortune) * Status: Open ---------------------------------------- To create a set from hash keys currently implies a temporary array for all keys, rehashing all those keys and rebuilding a hash. Instead, the hash could be copied and its values set to `true`. ```ruby h = {a: 1} # Now: Set.new(h.keys) # => Set[:a] # After h.key_set # => Set[:a], efficiently. ``` -- https://bugs.ruby-lang.org/
1 0
0 0
[ruby-core:121041] [Ruby master Bug#21137] Compound assignment operator with "it" parsed differently between parse.y and prism
by kinoppyd (Yasuhiro Kinoshita) 14 Feb '25

14 Feb '25
Issue #21137 has been reported by kinoppyd (Yasuhiro Kinoshita). ---------------------------------------- Bug #21137: Compound assignment operator with "it" parsed differently between parse.y and prism https://bugs.ruby-lang.org/issues/21137 * Author: kinoppyd (Yasuhiro Kinoshita) * Status: Open * ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin21] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` ruby # parse.y OK: no error # prism OK: no error proc { it = 1 } # parse.y OK: no error # prism OK: no error proc { it = it + 1 } # parse.y OK: no error # prism NG: syntax errors found (SyntaxError) proc { it += 1 } ``` -- https://bugs.ruby-lang.org/
3 2
0 0
[ruby-core:120712] [Ruby master Bug#21043] Prism defined? has slight deviations from parse.y
by kddnewton (Kevin Newton) 14 Feb '25

14 Feb '25
Issue #21043 has been reported by kddnewton (Kevin Newton). ---------------------------------------- Bug #21043: Prism defined? has slight deviations from parse.y https://bugs.ruby-lang.org/issues/21043 * Author: kddnewton (Kevin Newton) * Status: Open * Assignee: prism * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: REQUIRED ---------------------------------------- ```ruby defined?((alias foo bar)) defined?((undef foo)) def foo(*) = defined?(foo(*)) def foo(**) = defined?(foo(**)) def foo(...) = defined?(foo(...)) def foo(&) = defined?(foo(&)) ``` and a couple others have slightly different behavior. -- https://bugs.ruby-lang.org/
2 2
0 0
[ruby-core:120896] [Ruby master Bug#21118] Calling defined?(it) segfaults
by radarek 14 Feb '25

14 Feb '25
Issue #21118 has been reported by radarek (Radosław Bułat). ---------------------------------------- Bug #21118: Calling defined?(it) segfaults https://bugs.ruby-lang.org/issues/21118 * Author: radarek (Radosław Bułat) * Status: Open * ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` $ ruby -e '[1, 2, 3].each { p defined?(it) }' -e: [BUG] Unsupported node PM_IT_LOCAL_VARIABLE_READ_NODE ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24] -- Crash Report log information -------------------------------------------- See Crash Report log file in one of the following locations: * ~/Library/Logs/DiagnosticReports * /Library/Logs/DiagnosticReports for more details. Don't forget to include the above Crash Report log file in bug reports. -- Control frame information ----------------------------------------------- c:0001 p:0000 s:0003 E:0015d0 DUMMY [FINISH] -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- C level backtrace information ------------------------------------------- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(rb_vm_bugreport+0xb6c) [0x1011f22dc] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(rb_bug_without_die_internal+0xfc) [0x101029680] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(rb_bug+0x1c) [0x10133c298] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_defined_expr0.cold.2+0x0) [0x10133c054] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_defined_expr0+0xcd8) [0x100ff95bc] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_defined_expr+0x174) [0x100fe40e0] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_node+0x23fc) [0x100fb6a20] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_setup_args_core+0x490) [0x100ff6c0c] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_setup_args+0x264) [0x100ff66d0] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_call+0x4a8) [0x100ff5db0] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_scope_node+0x321c) [0x100ff2d20] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_compile_node+0x120) [0x100fb45f4] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_new_with_opt_try+0x1c) [0x10108bf6c] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(rb_protect+0xbc) [0x101035620] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_new_with_opt+0x148) [0x10108b3d8] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_call+0x5b4) [0x100ff5ebc] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_compile_scope_node+0x1c70) [0x100ff1774] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_compile_node+0x84) [0x100fb4558] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_new_with_opt_try+0x1c) [0x10108bf6c] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(rb_protect+0xbc) [0x101035620] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_new_with_opt+0x148) [0x10108b3d8] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(pm_iseq_new_main+0xc4) [0x10108b5e0] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(ruby_process_options+0x176c) [0x101147e70] /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib(ruby_options+0xb0) [0x101034058] /Users/radarek/.rbenv/versions/3.4.1/bin/ruby(main+0x64) [0x1004c3f20] -- Other runtime information ----------------------------------------------- * Loaded script: -e * Loaded features: 0 enumerator.so 1 thread.rb 2 fiber.so 3 rational.so 4 complex.so 5 ruby2_keywords.rb 6 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 7 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 8 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/rbconfig.rb 9 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/compatibility.rb 10 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/defaults.rb 11 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/deprecate.rb 12 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/errors.rb 13 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/target_rbconfig.rb 14 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/unknown_command_spell_checker.rb 15 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/exceptions.rb 16 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/basic_specification.rb 17 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/stub_specification.rb 18 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/platform.rb 19 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/specification_record.rb 20 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/util/list.rb 21 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/version.rb 22 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/requirement.rb 23 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/specification.rb 24 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/util.rb 25 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/dependency.rb 26 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/core_ext/kernel_gem.rb 27 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 28 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/monitor.rb 29 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems.rb 30 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/bundled_gems.rb 31 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/path_support.rb 32 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/error_highlight/version.rb 33 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/error_highlight/base.rb 34 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/error_highlight/formatter.rb 35 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/error_highlight/core_ext.rb 36 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/error_highlight.rb 37 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/version.rb 38 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/core_ext/name_error.rb 39 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/levenshtein.rb 40 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/jaro_winkler.rb 41 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checker.rb 42 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb 43 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb 44 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/name_error_checkers.rb 45 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/method_name_checker.rb 46 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/key_error_checker.rb 47 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/null_checker.rb 48 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/tree_spell_checker.rb 49 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/require_path_checker.rb 50 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/spell_checkers/pattern_key_name_checker.rb 51 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean/formatter.rb 52 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/did_you_mean.rb 53 /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/syntax_suggest/core_ext.rb * Process memory map: 1004c0000-1004c4000 r-x /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004c4000-1004c8000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004c8000-1004cc000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004cc000-1004d4000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004d4000-1004dc000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004dc000-1004e0000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004e0000-1004e4000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004e4000-1004e8000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004e8000-1004f0000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004f0000-1004f4000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004f4000-1004f8000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 1004f8000-100500000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100500000-100504000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100504000-100508000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100508000-100510000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100510000-100514000 --- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100514000-100518000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100518000-10051c000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 10051c000-100520000 rw- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100520000-100524000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 100524000-100530000 r-- /Users/radarek/.rbenv/versions/3.4.1/bin/ruby 10053c000-100594000 r-x /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib 100594000-100598000 r-- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib 100598000-10059c000 rw- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib 10059c000-1005ac000 r-- /opt/homebrew/Cellar/gmp/6.3.0/lib/libgmp.10.dylib 1005ac000-1005ec000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 1005f0000-100600000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 100600000-100604000 r-x /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 100604000-100608000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 100608000-10060c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 10060c000-100610000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/encdb.bundle 100610000-100620000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 100620000-100624000 r-x /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 100624000-100628000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 100628000-10062c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 10062c000-100630000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/enc/trans/transdb.bundle 100630000-100640000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 100640000-100644000 r-x /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 100644000-100648000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 100648000-10064c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 10064c000-100650000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/ruby/3.4.0/arm64-darwin24/monitor.bundle 100650000-100660000 rw- /usr/lib/dyld 100670000-100680000 rw- /usr/lib/dyld 100690000-1006a0000 rw- /usr/lib/dyld 1006b0000-1006c0000 rw- /usr/lib/dyld 1006d0000-1006e0000 rw- /usr/lib/dyld 1006f0000-100700000 rw- /usr/lib/dyld 100710000-100720000 rw- /usr/lib/dyld 100730000-100740000 rw- /usr/lib/dyld 100750000-100760000 rw- /usr/lib/dyld 100770000-100780000 rw- /usr/lib/dyld 100790000-1007a0000 rw- /usr/lib/dyld 1007b0000-1007c0000 rw- /usr/lib/dyld 1007d0000-1007e0000 rw- /usr/lib/dyld 1007f0000-100800000 rw- /usr/lib/dyld 100810000-100820000 rw- /usr/lib/dyld 100830000-100840000 rw- /usr/lib/dyld 100850000-100860000 rw- /usr/lib/dyld 100870000-100880000 rw- /usr/lib/dyld 100884000-1008d0000 --- /usr/lib/dyld 1008e0000-1008f0000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100900000-100910000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100920000-100930000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100940000-100950000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100960000-100970000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100980000-100990000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 1009a0000-1009b0000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 1009c0000-1009d0000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 1009e0000-1009f0000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 100f74000-10146c000 r-x /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 10146c000-101488000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 101488000-10148c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 10148c000-1014a0000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 1014a0000-10162c000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 10162c000-102a2c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 102a2c000-10aa2c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 10aa2c000-112a2c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 112a2c000-11aa2c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aa2c000-11aa30000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aa30000-11aad4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aad4000-11aad8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aad8000-11ab7c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ab7c000-11ab80000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ab80000-11ac24000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ac24000-11ac28000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ac28000-11accc000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11accc000-11acd0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11acd0000-11ad74000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ad74000-11ad78000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ad78000-11ae1c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ae1c000-11ae20000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ae20000-11aec4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aec4000-11aec8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11aec8000-11af6c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11af6c000-11af70000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11af70000-11b014000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b014000-11b018000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b018000-11b0bc000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b0bc000-11b0c0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b0c0000-11b164000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b164000-11b168000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b168000-11b20c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b20c000-11b210000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b210000-11b2b4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b2b4000-11b2b8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b2b8000-11b35c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b35c000-11b360000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b360000-11b404000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b404000-11b408000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b408000-11b4ac000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b4ac000-11b4b0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b4b0000-11b554000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b554000-11b558000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b558000-11b5fc000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b5fc000-11b600000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b600000-11b6a4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b6a4000-11b6a8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b6a8000-11b74c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b74c000-11b750000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b750000-11b7f4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b7f4000-11b7f8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b7f8000-11b89c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b89c000-11b8a0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b8a0000-11b944000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b944000-11b948000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b948000-11b9ec000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b9ec000-11b9f0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11b9f0000-11ba94000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ba94000-11ba98000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11ba98000-11bb3c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bb3c000-11bb40000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bb40000-11bbe4000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bbe4000-11bbe8000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bbe8000-11bc8c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bc8c000-11bc90000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bc90000-11bd34000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bd34000-11bd38000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bd38000-11bddc000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bddc000-11bde0000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bde0000-11be84000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11be84000-11be88000 --- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11be88000-11bf2c000 rw- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 11bf2c000-11c5d0000 r-- /Users/radarek/.rbenv/versions/3.4.1/lib/libruby.3.4.dylib 15ae00000-15af00000 rw- 15af00000-15b000000 rw- 15b000000-15b800000 rw- 15b800000-15c000000 rw- 160000000-168000000 rw- 16b940000-16f144000 --- 16f144000-16f940000 rw- 16f940000-16f944000 --- 16f944000-16f9cc000 rw- 180000000-200000000 r-- 200000000-200160000 r-- 200160000-200180000 rw- 200180000-200184000 r-- 200184000-202000000 rw- 202000000-202304000 r-- 202304000-20234c000 r-- 20234c000-2034b4000 rw- 2034b4000-20ac98000 r-- 20ac98000-20c000000 r-- 20c000000-28e000000 r-- 28e000000-290000000 rw- 290000000-290910000 r-- 290910000-291684000 rw- 291684000-295d30000 r-- 295d30000-296000000 r-- 296000000-300000000 r-- fc0000000-1000000000 --- 1000000000-7000000000 --- 600000000000-600020000000 rw- [IMPORTANT] Don't forget to include the Crash Report log file under DiagnosticReports directory in bug reports. ``` -- https://bugs.ruby-lang.org/
4 4
0 0
[ruby-core:120628] [Ruby master Bug#21031] Incompatibility with prism and parse.y when eval'ing unnamed forwarding variables
by ksss (Yuki Kurihara) 14 Feb '25

14 Feb '25
Issue #21031 has been reported by ksss (Yuki Kurihara). ---------------------------------------- Bug #21031: Incompatibility with prism and parse.y when eval'ing unnamed forwarding variables https://bugs.ruby-lang.org/issues/21031 * Author: ksss (Yuki Kurihara) * Status: Open * ruby -v: ruby 3.5.0dev (2025-01-13T03:12:28Z master 384e6945ac) +PRISM [arm64-darwin23] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ## Case 1 ```rb # t.rb def foo(*) eval("p(*)") end foo(1) ``` ``` $ ruby --parser=prism t.rb t.rb:4:in 'Kernel#eval': (eval at t.rb:4):1: syntax error found (SyntaxError) > 1 | p(*) | ^ unexpected `*`; no anonymous rest parameter from t.rb:4:in 'Object#foo' from t.rb:7:in '<main>' ``` ``` $ ruby --parser=parse.y t.rb 1 ``` ## Case 2 ```rb # t.rb def foo(**) eval("p(**)") end foo(a: 1) ``` ``` $ ruby --parser=prism t.rb t.rb:4:in 'Kernel#eval': (eval at t.rb:4):1: syntax error found (SyntaxError) > 1 | p(**) | ^~ unexpected `**`; no anonymous keyword rest parameter from t.rb:4:in 'Object#foo' from t.rb:7:in '<main>' ``` ``` $ ruby --parser=parse.y t.rb {a: 1} ``` ## Case 3 ```rb # t.rb def foo(&) eval("p(&)") end foo{} ``` ``` $ ruby --parser=prism t.rb t.rb:4:in 'Kernel#eval': (eval at t.rb:4):1: syntax error found (SyntaxError) > 1 | p(&) | ^ unexpected `&`; no anonymous block parameter from t.rb:4:in 'Object#foo' from t.rb:7:in '<main>' ``` ``` $ ruby --parser=parse.y t.rb ``` ## Case 4 ```rb # t.rb def foo(...) eval("p(...)") end foo(1, 2, 3) ``` ``` $ ruby --parser=prism t.rb t.rb:4:in 'Kernel#eval': (eval at t.rb:4):1: syntax error found (SyntaxError) > 1 | p(...) | ^~~ unexpected ... when the parent method is not forwarding from t.rb:4:in 'Object#foo' from t.rb:7:in '<main>' ``` ``` $ ruby --parser=parse.y t.rb 1 2 3 ``` I expect to the parse.y behavior. -- https://bugs.ruby-lang.org/
4 7
0 0
[ruby-core:121050] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set
by greggzst (Grzegorz Jakubiak) 14 Feb '25

14 Feb '25
Issue #16993 has been updated by greggzst (Grzegorz Jakubiak). I opened a PR to add this functionality https://github.com/ruby/ruby/pull/12750 ---------------------------------------- Feature #16993: Sets: from hash keys using Hash#key_set https://bugs.ruby-lang.org/issues/16993#change-111962 * Author: marcandre (Marc-Andre Lafortune) * Status: Open ---------------------------------------- To create a set from hash keys currently implies a temporary array for all keys, rehashing all those keys and rebuilding a hash. Instead, the hash could be copied and its values set to `true`. ```ruby h = {a: 1} # Now: Set.new(h.keys) # => Set[:a] # After h.key_set # => Set[:a], efficiently. ``` -- https://bugs.ruby-lang.org/
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 19
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.