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
  • ----- 2026 -----
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • 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

March 2025

  • 1 participants
  • 224 discussions
[ruby-core:121388] [Ruby Feature#15854] Tracing instance variable assignment
by st0012 (Stan Lo) 17 Mar '25

17 Mar '25
Issue #15854 has been updated by st0012 (Stan Lo). How about this naming convention: - `ivar_set` - `cvar_set` - `gvar_set` `ivar`, `cvar`, and `gvar` all match Ruby's [internal glossary](https://docs.ruby-lang.org/en/master/contributing/glossary_md.htm…, and is quite commonly used in the community too (based on my personal experience). I picked `set` because: - It matches the `*_variable_set` method names - It's one character shorter than `asgn` And finally, if nobody else is looking at this, I'd like to give it a try 🙂 ---------------------------------------- Feature #15854: Tracing instance variable assignment https://bugs.ruby-lang.org/issues/15854#change-112361 * Author: igaiga (Kuniaki Igarashi) * Status: Assigned * Assignee: ko1 (Koichi Sasada) ---------------------------------------- I suggest a feature "tracing instance variable assignment". It's useful for debugging. Use case: In Rails, we use instance variables in views and controllers. When we got a bug caused by instance variable unintentional values, if we traced instance variable assignment timing, it would be good informations. And in Rails views, there are no source codes of self class. That's built dynamically. Current behavior (Ruby2.6): In Ruby 2.6, only if there is a source code file to assign instance variable, we can trace instance variable assignment by following code (check_instance_variable_assignment.rb). But it's difficult if the assignment codes are defined dynamically. For example, in Rails view. (And in another story, global variables assignment are traced by Kernel#trace_var.) check_instance_variable_assignment.rb ```ruby def trace_start TracePoint.trace(:line) do |tp| target_class_name = "Foo" target_instance_variable_name = "@bar" line = File.open(tp.path, "r"){|f| f.readlines[tp.lineno - 1] } node = RubyVM::AbstractSyntaxTree.parse(line).children.last # check instance variable assignment next unless node.type == :IASGN # check class name target_class = Kernel.const_get(target_class_name) next unless tp.self.is_a?(target_class) # check variable name instance_variable_name = node.children.first next unless instance_variable_name == target_instance_variable_name.to_sym puts "#{target_class_name} #{target_instance_variable_name} is assigned in #{tp.path}:#{tp.lineno} #{tp.defined_class} #{tp.method_id}" end end class Foo def bar @bar = "text" end end trace_start Foo.new.bar #=> Foo @bar is assigned in check_instance_variable_assignment.rb:25 Foo bar ``` Suggesting feature example: Add new arguments for TracePoint.new method like :line and :call to trace instance variables assignment. - :iasgn (IASGN name from RubyVM::AbstractSyntaxTree::Node) - :casgn (CVASGN (or CASGN?) name from RubyVM::AbstractSyntaxTree::Node. I think class variables tracing is useful too.) And get informations - class name (It might be get by trace_point.self) - variable name ("@foo", "@@foo") A sample code to use the feature: tp_iasgn.rb ```ruby TracePoint.trace(:iasgn) do |tp| target_class_name = "Foo" target_instance_variable_name = "@bar" # check class name target_class = Kernel.const_get(target_class_name) next unless tp.self.is_a?(target_class) # check variable name next unless target_instance_variable_name == tp.variable_name puts "#{target_class_name} #{target_instance_variable_name} is assigned in #{tp.path}:#{tp.lineno} #{tp.method_id} #{tp.defined_class}" puts caller # even in dynamic code case, we can get caller informations. end ``` -- https://bugs.ruby-lang.org/
1 0
0 0
[ruby-core:120961] [Ruby master Bug#21131] IO.copy_stream: yielded string changes value when duped
by chucke (Tiago Cardoso) 16 Mar '25

16 Mar '25
Issue #21131 has been reported by chucke (Tiago Cardoso). ---------------------------------------- Bug #21131: IO.copy_stream: yielded string changes value when duped https://bugs.ruby-lang.org/issues/21131 * Author: chucke (Tiago Cardoso) * Status: Open * ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-darwin23] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- I found an odd situation, when using IO.copy_stream with a File writer quack class, where the data passed to #write somehow ends overwritten, despite the instance being duped. class ProcIO def initialize(block) @block = block end # Implementation the IO write protocol, which yield the given chunk to +@block+. def write(data) @block.call(data.dup) data.bytesize end end rng = Random.new(42) body = Tempfile.new("ruby-bug", binmode: true) body.write(rng.bytes(16_385)) body.rewind payload = [] block = ->(data){ payload << data.dup } IO.copy_stream(body, ProcIO.new(block)) body.rewind if payload.join != body.read puts "it's a bug" end if you use the debugger, you'll see that the first yielded chunk has the correct bytes when yielded the first time, but when the second 1 byte chunk is yielded (IO.copy_stream reads in chunks of 16384 bytes), the first chunk string value suddenly changes. This should not happen, as the first yielded chunk was a string duped from the string yielded by IO.copy_stream (which is expected to be a buffer). -- https://bugs.ruby-lang.org/
5 5
0 0
[ruby-core:121246] [Ruby master Bug#21172] Race condition in `register_fstring`
by byroot (Jean Boussier) 16 Mar '25

16 Mar '25
Issue #21172 has been reported by byroot (Jean Boussier). ---------------------------------------- Bug #21172: Race condition in `register_fstring` https://bugs.ruby-lang.org/issues/21172 * Author: byroot (Jean Boussier) * Status: Open * Backport: 3.1: WONTFIX, 3.2: WONTFIX, 3.3: REQUIRED, 3.4: REQUIRED ---------------------------------------- This is a rare bug with very low criticality, but it can cause occasional CI failures. I leave it to branch maintainers to decide if it's worth backporting or not. ### Timeline - A `"foo" oid=1` string is interned. - `"foo" oid=1` is no longer referenced and will be swept in the future. - Another `"foo" oid=2` string is interned. - `register_fstring` finds `"foo" oid=1`, but since it is about to be swept, removes it from `fstring_table` and insert `"foo" oid=2` instead. - `"foo" oid=1` is swept, since it has the `RSTRING_FSTR` flag, a `st_delete` is issued in `fstring_table` which removes `"foo" oid=2`. Unfortunately, I couldn't come up with a minimal reproduction for this, but it did reproduce consistently with a large amount of tests and a very specific seed. ### Consequence This has little to no consequence on real world code. It just breaks a few ruby tests that is attempting to ensure some strings were interned. -- https://bugs.ruby-lang.org/
2 2
0 0
[ruby-core:121280] [Ruby master Bug#21180] SEGV while marking `imemo_env->iseq`
by alanwu (Alan Wu) 16 Mar '25

16 Mar '25
Issue #21180 has been reported by alanwu (Alan Wu). ---------------------------------------- Bug #21180: SEGV while marking `imemo_env->iseq` https://bugs.ruby-lang.org/issues/21180 * Author: alanwu (Alan Wu) * Status: Open * Backport: 3.1: DONTNEED, 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED ---------------------------------------- This issue happens most realistically for people using a fiber scheduler (through e.g. the *async* gem), on Ruby 3.4.x and on Linux, but the following crashes for me for 3.2 and newer on macOS: ``` $ tail -n +1 test.rb ret1.rb ==> test.rb <== require 'continuation' module Warning def self.warn(message) GC.stress = true callcc end end require_relative 'ret1' ==> ret1.rb <== return 1 ``` Keywords for people searching: `rb_imemo_mark_and_move`, `Note that the Fiber scheduler is enabled`. I have a fix for this and will submit a pull request shortly. -- https://bugs.ruby-lang.org/
3 2
0 0
[ruby-core:121083] [Ruby master Bug#21144] Win32: Use Windows time zone ID as the time zone name if TZ is not set
by nobu (Nobuyoshi Nakada) 16 Mar '25

16 Mar '25
Issue #21144 has been reported by nobu (Nobuyoshi Nakada). ---------------------------------------- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set https://bugs.ruby-lang.org/issues/21144 * Author: nobu (Nobuyoshi Nakada) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ### Problem On Windows, the `Time#zone` uses `_tzname` provided by the runtime library. This is obtained by using `GetTimeZoneInformation`, if the `TZ` environment variable is not set or empty. The problem is that the `StandardName` and `DaylightName` in that information are for UI, and localized. This means that these names may vary across different international editions and language packs, even for the same time zone. ### Solution Use the Windows time zone ID by using `GetDynamicTimeZoneInformation`, which is available since Windows Vista and Windows Server 2008. Since the `TimeZoneKeyName` is the registry key of time zones, the above problem does not occur. This is also mitigate [Bug #20929]. Even it is possible to define non-ascii key name time zone, there is no such name in the standard installations. ### Compatibilities etc - This also changes the result of `Time#inspect`, may not be good for ones who prefer the display names for UI. - There is no way to restore `zone` from `Marshal` data, this does *not* improve. - The PR changes the signature of `ruby_reset_timezone()` and marks internal use only, but this function is declared in `internal/time.h` and probably no problem. -- https://bugs.ruby-lang.org/
4 4
0 0
[ruby-core:120802] [Ruby master Bug#21092] error building ruby 3.4.1 on cygwin
by jeremyd2019 (Jeremy Drake) 16 Mar '25

16 Mar '25
Issue #21092 has been reported by jeremyd2019 (Jeremy Drake). ---------------------------------------- Bug #21092: error building ruby 3.4.1 on cygwin https://bugs.ruby-lang.org/issues/21092 * Author: jeremyd2019 (Jeremy Drake) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- While building from the release tarball ruby-3.4.1.tar.xz (also confirmed in snapshot-master.tar.gz from Jan 27, 2025), I get the following error: ../ruby-3.4.1/ext/extmk.rb:279:in 'Array#-': no implicit conversion of nil into Array (TypeError) from ../ruby-3.4.1/ext/extmk.rb:279:in 'Object#extmake' from ../ruby-3.4.1/ext/extmk.rb:659:in 'block in <main>' from ../ruby-3.4.1/ext/extmk.rb:653:in 'Array#each' from ../ruby-3.4.1/ext/extmk.rb:653:in '<main>' I have tracked this down to happening when an ext writes a dummy makefile. In this case, that ext is .bundle/gems/syslog-0.2.0. See https://github.com/ruby/syslog/pull/16 for fixing why it is writing a dummy makefile to begin with, but still, it seems like extmk.rb should handle this case gracefully rather than breaking the build. -- https://bugs.ruby-lang.org/
5 5
0 0
[ruby-core:121183] [Ruby master Bug#21159] `Module#set_temporary_name` should freeze given name
by ko1 (Koichi Sasada) 16 Mar '25

16 Mar '25
Issue #21159 has been reported by ko1 (Koichi Sasada). ---------------------------------------- Bug #21159: `Module#set_temporary_name` should freeze given name https://bugs.ruby-lang.org/issues/21159 * Author: ko1 (Koichi Sasada) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- I think it is preferable to freeze the name. So `#set_temporary_name` should copy and freeze the name string. ```ruby c = Class.new.set_temporary_name(str = +'<c>') p c #=> <c> str.upcase! p c #=> actual: <C> #=> expected: <c> p c.name.frozen? #=> actual: false #=> expected: true ``` From the Ractor's aspect, shareable modules should refer only immutable string. -- https://bugs.ruby-lang.org/
4 3
0 0
[ruby-core:119992] [Ruby master Bug#20906] Segmentation Fault in compile_keyword_arg
by bendrissou (Bachir Bendrissou) 16 Mar '25

16 Mar '25
Issue #20906 has been reported by bendrissou (Bachir Bendrissou). ---------------------------------------- Bug #20906: Segmentation Fault in compile_keyword_arg https://bugs.ruby-lang.org/issues/20906 * Author: bendrissou (Bachir Bendrissou) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Hi, I am getting a segmentation fault. The crash occurs in `compile_keyword_arg` (../compile.c:4604) during argument compilation for the keyword argument assignment. Minimised test case: ``` a,b[c:nil]=d ``` Output: ``` test.rb: [BUG] Segmentation fault at 0x0000000000000000 ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0001 p:0000 s:0003 E:002270 DUMMY [FINISH] -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ RIP: 0x0000555fdcc6bb95 RBP: 0x0000000000000001 RSP: 0x00007ffe63864fc0 RAX: 0x0000555fddc4fc80 RBX: 0x0000555fddc4fc88 RCX: 0x0000000000000001 RDX: 0x0000000000000000 RDI: 0x0000555fddb7c2a0 RSI: 0x0000000000000018 R8: 0x0000555fddb7c2a8 R9: 0x00007fbba21b6b80 R10: 0x0000000000000000 R11: 0x0000000000000007 R12: 0x00007ffe638650a0 R13: 0x00007fbb86d032b8 R14: 0x0000000000000000 R15: 0x0000555fddc52470 EFL: 0x0000000000010206 -- C level backtrace information ------------------------------------------- /home/benchmarks/ruby/program/build/ruby(rb_print_backtrace+0x11) [0x555fdcb0da7f] ../vm_dump.c:820 /home/benchmarks/ruby/program/build/ruby(rb_vm_bugreport) ../vm_dump.c:1151 /home/benchmarks/ruby/program/build/ruby(rb_bug_for_fatal_signal+0xfc) [0x555fdccd9a6c] ../error.c:1065 /home/benchmarks/ruby/program/build/ruby(sigsegv+0x4d) [0x555fdca5c1fd] ../signal.c:926 /lib/x86_64-linux-gnu/libpthread.so.0(__restore_rt+0x0) [0x7fbba21ed420] /home/benchmarks/ruby/program/build/ruby(compile_keyword_arg+0x55) [0x555fdcc6bb95] ../compile.c:4604 /home/benchmarks/ruby/program/build/ruby(setup_args_core) ../compile.c:6063 /home/benchmarks/ruby/program/build/ruby(setup_args) ../compile.c:6181 /home/benchmarks/ruby/program/build/ruby(compile_attrasgn+0x90) [0x555fdcc6f440] ../compile.c:9696 /home/benchmarks/ruby/program/build/ruby(iseq_compile_each0+0x2082) [0x555fdcc63b82] ../compile.c:10433 /home/benchmarks/ruby/program/build/ruby(iseq_compile_each+0x11) [0x555fdcc70d91] ../compile.c:9767 /home/benchmarks/ruby/program/build/ruby(compile_massign_lhs) ../compile.c:5281 /home/benchmarks/ruby/program/build/ruby(compile_massign0+0xd4) [0x555fdcc712b4] ../compile.c:5475 /home/benchmarks/ruby/program/build/ruby(compile_massign+0xf5) [0x555fdcc77425] ../compile.c:5536 /home/benchmarks/ruby/program/build/ruby(iseq_compile_each0+0xeea) [0x555fdcc629ea] ../compile.c:9871 /home/benchmarks/ruby/program/build/ruby(iseq_compile_each+0x29) [0x555fdcc66ae9] ../compile.c:9767 /home/benchmarks/ruby/program/build/ruby(rb_iseq_compile_node+0x658) [0x555fdcc71c48] ../compile.c:931 /home/benchmarks/ruby/program/build/ruby(rb_iseq_new_with_opt+0x15d) [0x555fdc97189d] ../iseq.c:946 /home/benchmarks/ruby/program/build/ruby(rb_iseq_new_main+0x6f) [0x555fdc971c4f] ../iseq.c:885 /home/benchmarks/ruby/program/build/ruby(process_options+0x103f) [0x555fdca5767f] ../ruby.c:2444 /home/benchmarks/ruby/program/build/ruby(ruby_process_options+0x14c) [0x555fdca5876c] ../ruby.c:3017 /home/benchmarks/ruby/program/build/ruby(ruby_options+0xdd) [0x555fdc9047bd] ../eval.c:121 /home/benchmarks/ruby/program/build/ruby(rb_main+0x19) [0x555fdc8ff42f] ../main.c:39 /home/benchmarks/ruby/program/build/ruby(main) ../main.c:58 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fbba1fee083] [0x555fdc8ff48e] -- Other runtime information ----------------------------------------------- * Loaded script: test.rb * Loaded features: 0 enumerator.so 1 thread.rb 2 fiber.so 3 rational.so 4 complex.so 5 ruby2_keywords.rb 6 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 8 /home/benchmarks/ruby/program/build/rbconfig.rb 9 /home/benchmarks/ruby/program/lib/rubygems/compatibility.rb 10 /home/benchmarks/ruby/program/lib/rubygems/defaults.rb 11 /home/benchmarks/ruby/program/lib/rubygems/deprecate.rb 12 /home/benchmarks/ruby/program/lib/rubygems/errors.rb 13 /home/benchmarks/ruby/program/lib/rubygems/unknown_command_spell_checker.rb 14 /home/benchmarks/ruby/program/lib/rubygems/exceptions.rb 15 /home/benchmarks/ruby/program/lib/rubygems/basic_specification.rb 16 /home/benchmarks/ruby/program/lib/rubygems/stub_specification.rb 17 /home/benchmarks/ruby/program/lib/rubygems/platform.rb 18 /home/benchmarks/ruby/program/lib/rubygems/specification_record.rb 19 /home/benchmarks/ruby/program/lib/rubygems/util/list.rb 20 /home/benchmarks/ruby/program/lib/rubygems/version.rb 21 /home/benchmarks/ruby/program/lib/rubygems/requirement.rb 22 /home/benchmarks/ruby/program/lib/rubygems/specification.rb 23 /home/benchmarks/ruby/program/lib/rubygems/util.rb 24 /home/benchmarks/ruby/program/lib/rubygems/core_ext/kernel_gem.rb 25 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 26 /home/benchmarks/ruby/program/ext/monitor/lib/monitor.rb 27 /home/benchmarks/ruby/program/lib/rubygems.rb 28 /home/benchmarks/ruby/program/lib/bundled_gems.rb 29 /home/benchmarks/ruby/program/lib/error_highlight/version.rb 30 /home/benchmarks/ruby/program/lib/error_highlight/base.rb 31 /home/benchmarks/ruby/program/lib/error_highlight/formatter.rb 32 /home/benchmarks/ruby/program/lib/error_highlight/core_ext.rb 33 /home/benchmarks/ruby/program/lib/error_highlight.rb 34 /home/benchmarks/ruby/program/lib/did_you_mean/version.rb 35 /home/benchmarks/ruby/program/lib/did_you_mean/core_ext/name_error.rb 36 /home/benchmarks/ruby/program/lib/did_you_mean/levenshtein.rb 37 /home/benchmarks/ruby/program/lib/did_you_mean/jaro_winkler.rb 38 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checker.rb 39 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb 40 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb 41 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/name_error_checkers.rb 42 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/method_name_checker.rb 43 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/key_error_checker.rb 44 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/null_checker.rb 45 /home/benchmarks/ruby/program/lib/did_you_mean/tree_spell_checker.rb 46 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/require_path_checker.rb 47 /home/benchmarks/ruby/program/lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb 48 /home/benchmarks/ruby/program/lib/did_you_mean/formatter.rb 49 /home/benchmarks/ruby/program/lib/did_you_mean.rb 50 /home/benchmarks/ruby/program/lib/syntax_suggest/core_ext.rb * Process memory map: 555fdc8ad000-555fdc8f0000 r--p 00000000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 555fdc8f0000-555fdcd02000 r-xp 00043000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 555fdcd02000-555fdce92000 r--p 00455000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 555fdce92000-555fdcea9000 r--p 005e4000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 555fdcea9000-555fdceaa000 rw-p 005fb000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 555fdceaa000-555fdcebf000 rw-p 00000000 00:00 0 555fddb79000-555fddf8b000 rw-p 00000000 00:00 0 [heap] 7fbb82fa8000-7fbb83198000 r--s 00000000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbb83198000-7fbb86b20000 r--s 00000000 00:8d 5569471 /home/benchmarks/ruby/program/build/ruby 7fbb86b20000-7fbb86b30000 rw-p 00000000 00:00 0 7fbb86c40000-7fbb86c50000 rw-p 00000000 00:00 0 7fbb86cb9000-7fbb86ce0000 r--s 00000000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbb86ce0000-7fbb86cf0000 rw-p 00000000 00:00 0 7fbb86d00000-7fbb86da0000 rw-p 00000000 00:00 0 7fbb86daf000-7fbb86db0000 ---p 00000000 00:00 0 7fbb86db0000-7fbb86e51000 rw-p 00000000 00:00 0 7fbb86e51000-7fbb86e52000 ---p 00000000 00:00 0 7fbb86e52000-7fbb86ef3000 rw-p 00000000 00:00 0 7fbb86ef3000-7fbb86ef4000 ---p 00000000 00:00 0 7fbb86ef4000-7fbb86f95000 rw-p 00000000 00:00 0 7fbb86f95000-7fbb86f96000 ---p 00000000 00:00 0 7fbb86f96000-7fbb87037000 rw-p 00000000 00:00 0 7fbb87037000-7fbb87038000 ---p 00000000 00:00 0 7fbb87038000-7fbb870d9000 rw-p 00000000 00:00 0 7fbb870d9000-7fbb870da000 ---p 00000000 00:00 0 7fbb870da000-7fbb8717b000 rw-p 00000000 00:00 0 7fbb8717b000-7fbb8717c000 ---p 00000000 00:00 0 7fbb8717c000-7fbb8721d000 rw-p 00000000 00:00 0 7fbb8721d000-7fbb8721e000 ---p 00000000 00:00 0 7fbb8721e000-7fbb872bf000 rw-p 00000000 00:00 0 7fbb872bf000-7fbb872c0000 ---p 00000000 00:00 0 7fbb872c0000-7fbb87361000 rw-p 00000000 00:00 0 7fbb87361000-7fbb87362000 ---p 00000000 00:00 0 7fbb87362000-7fbb87403000 rw-p 00000000 00:00 0 7fbb87403000-7fbb87404000 ---p 00000000 00:00 0 7fbb87404000-7fbb874a5000 rw-p 00000000 00:00 0 7fbb874a5000-7fbb874a6000 ---p 00000000 00:00 0 7fbb874a6000-7fbb87547000 rw-p 00000000 00:00 0 7fbb87547000-7fbb87548000 ---p 00000000 00:00 0 7fbb87548000-7fbb875e9000 rw-p 00000000 00:00 0 7fbb875e9000-7fbb875ea000 ---p 00000000 00:00 0 7fbb875ea000-7fbb8768b000 rw-p 00000000 00:00 0 7fbb8768b000-7fbb8768c000 ---p 00000000 00:00 0 7fbb8768c000-7fbb8772d000 rw-p 00000000 00:00 0 7fbb8772d000-7fbb8772e000 ---p 00000000 00:00 0 7fbb8772e000-7fbb877cf000 rw-p 00000000 00:00 0 7fbb877cf000-7fbb877d0000 ---p 00000000 00:00 0 7fbb877d0000-7fbb87871000 rw-p 00000000 00:00 0 7fbb87871000-7fbb87872000 ---p 00000000 00:00 0 7fbb87872000-7fbb87913000 rw-p 00000000 00:00 0 7fbb87913000-7fbb87914000 ---p 00000000 00:00 0 7fbb87914000-7fbb879b5000 rw-p 00000000 00:00 0 7fbb879b5000-7fbb879b6000 ---p 00000000 00:00 0 7fbb879b6000-7fbb87a57000 rw-p 00000000 00:00 0 7fbb87a57000-7fbb87a58000 ---p 00000000 00:00 0 7fbb87a58000-7fbb87af9000 rw-p 00000000 00:00 0 7fbb87af9000-7fbb87afa000 ---p 00000000 00:00 0 7fbb87afa000-7fbb87b9b000 rw-p 00000000 00:00 0 7fbb87b9b000-7fbb87b9c000 ---p 00000000 00:00 0 7fbb87b9c000-7fbb87c3d000 rw-p 00000000 00:00 0 7fbb87c3d000-7fbb87c3e000 ---p 00000000 00:00 0 7fbb87c3e000-7fbb87cdf000 rw-p 00000000 00:00 0 7fbb87cdf000-7fbb87ce0000 ---p 00000000 00:00 0 7fbb87ce0000-7fbb87d81000 rw-p 00000000 00:00 0 7fbb87d81000-7fbb87d82000 ---p 00000000 00:00 0 7fbb87d82000-7fbb87e23000 rw-p 00000000 00:00 0 7fbb87e23000-7fbb87e24000 ---p 00000000 00:00 0 7fbb87e24000-7fbb87ec5000 rw-p 00000000 00:00 0 7fbb87ec5000-7fbb87ec6000 ---p 00000000 00:00 0 7fbb87ec6000-7fbb87f67000 rw-p 00000000 00:00 0 7fbb87f67000-7fbb87f68000 ---p 00000000 00:00 0 7fbb87f68000-7fbb88009000 rw-p 00000000 00:00 0 7fbb88009000-7fbb8800a000 ---p 00000000 00:00 0 7fbb8800a000-7fbb880ab000 rw-p 00000000 00:00 0 7fbb880ab000-7fbb880ac000 ---p 00000000 00:00 0 7fbb880ac000-7fbb8814d000 rw-p 00000000 00:00 0 7fbb8814d000-7fbb8814e000 ---p 00000000 00:00 0 7fbb8814e000-7fbb881ef000 rw-p 00000000 00:00 0 7fbb881ef000-7fbb881f0000 ---p 00000000 00:00 0 7fbb881f0000-7fbb88a40000 rw-p 00000000 00:00 0 7fbb88a4a000-7fbb88a4b000 r--p 00000000 00:8d 5569421 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 7fbb88a4b000-7fbb88a4c000 r-xp 00001000 00:8d 5569421 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 7fbb88a4c000-7fbb88a4d000 r--p 00002000 00:8d 5569421 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 7fbb88a4d000-7fbb88a4e000 r--p 00002000 00:8d 5569421 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 7fbb88a4e000-7fbb88a4f000 rw-p 00003000 00:8d 5569421 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/monitor.so 7fbb88a4f000-7fbba1ec0000 rw-p 00000000 00:00 0 7fbba1ec1000-7fbba1ec2000 r--p 00000000 00:8d 5569519 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 7fbba1ec2000-7fbba1ec4000 r-xp 00001000 00:8d 5569519 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 7fbba1ec4000-7fbba1ec5000 r--p 00003000 00:8d 5569519 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 7fbba1ec5000-7fbba1ec6000 r--p 00003000 00:8d 5569519 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 7fbba1ec6000-7fbba1ec7000 rw-p 00004000 00:8d 5569519 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/trans/transdb.so 7fbba1ec7000-7fbba1fca000 rw-p 00000000 00:00 0 7fbba1fca000-7fbba1fec000 r--p 00000000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbba1fec000-7fbba2164000 r-xp 00022000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbba2164000-7fbba21b2000 r--p 0019a000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbba21b2000-7fbba21b6000 r--p 001e7000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbba21b6000-7fbba21b8000 rw-p 001eb000 00:8d 1277502 /usr/lib/x86_64-linux-gnu/libc-2.31.so 7fbba21b8000-7fbba21bc000 rw-p 00000000 00:00 0 7fbba21bc000-7fbba21bf000 r--p 00000000 00:8d 1277527 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 7fbba21bf000-7fbba21d1000 r-xp 00003000 00:8d 1277527 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 7fbba21d1000-7fbba21d5000 r--p 00015000 00:8d 1277527 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 7fbba21d5000-7fbba21d6000 r--p 00018000 00:8d 1277527 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 7fbba21d6000-7fbba21d7000 rw-p 00019000 00:8d 1277527 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 7fbba21d7000-7fbba21d9000 rw-p 00000000 00:00 0 7fbba21d9000-7fbba21df000 r--p 00000000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbba21df000-7fbba21f0000 r-xp 00006000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbba21f0000-7fbba21f6000 r--p 00017000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbba21f6000-7fbba21f7000 r--p 0001c000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbba21f7000-7fbba21f8000 rw-p 0001d000 00:8d 1277596 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so 7fbba21f8000-7fbba21fc000 rw-p 00000000 00:00 0 7fbba21fc000-7fbba2209000 r--p 00000000 00:8d 1277544 /usr/lib/x86_64-linux-gnu/libm-2.31.so 7fbba2209000-7fbba22b0000 r-xp 0000d000 00:8d 1277544 /usr/lib/x86_64-linux-gnu/libm-2.31.so 7fbba22b0000-7fbba2349000 r--p 000b4000 00:8d 1277544 /usr/lib/x86_64-linux-gnu/libm-2.31.so 7fbba2349000-7fbba234a000 r--p 0014c000 00:8d 1277544 /usr/lib/x86_64-linux-gnu/libm-2.31.so 7fbba234a000-7fbba234b000 rw-p 0014d000 00:8d 1277544 /usr/lib/x86_64-linux-gnu/libm-2.31.so 7fbba234b000-7fbba234d000 r--p 00000000 00:8d 1277509 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 7fbba234d000-7fbba2362000 r-xp 00002000 00:8d 1277509 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 7fbba2362000-7fbba237c000 r--p 00017000 00:8d 1277509 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 7fbba237c000-7fbba237d000 r--p 00030000 00:8d 1277509 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 7fbba237d000-7fbba237e000 rw-p 00031000 00:8d 1277509 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 7fbba237e000-7fbba2386000 rw-p 00000000 00:00 0 7fbba2386000-7fbba2387000 r--p 00000000 00:8d 1277513 /usr/lib/x86_64-linux-gnu/libdl-2.31.so 7fbba2387000-7fbba2389000 r-xp 00001000 00:8d 1277513 /usr/lib/x86_64-linux-gnu/libdl-2.31.so 7fbba2389000-7fbba238a000 r--p 00003000 00:8d 1277513 /usr/lib/x86_64-linux-gnu/libdl-2.31.so 7fbba238a000-7fbba238b000 r--p 00003000 00:8d 1277513 /usr/lib/x86_64-linux-gnu/libdl-2.31.so 7fbba238b000-7fbba238c000 rw-p 00004000 00:8d 1277513 /usr/lib/x86_64-linux-gnu/libdl-2.31.so 7fbba238c000-7fbba2396000 r--p 00000000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba2396000-7fbba23f6000 r-xp 0000a000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba23f6000-7fbba240d000 r--p 0006a000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba240d000-7fbba240e000 ---p 00081000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba240e000-7fbba240f000 r--p 00081000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba240f000-7fbba2410000 rw-p 00082000 00:8d 1277531 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0 7fbba2410000-7fbba2412000 r--p 00000000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba2412000-7fbba2423000 r-xp 00002000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba2423000-7fbba2429000 r--p 00013000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba2429000-7fbba242a000 ---p 00019000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba242a000-7fbba242b000 r--p 00019000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba242b000-7fbba242c000 rw-p 0001a000 00:8d 1277632 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 7fbba242c000-7fbba242e000 rw-p 00000000 00:00 0 7fbba2432000-7fbba2433000 r--p 00000000 00:8d 5569472 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7fbba2433000-7fbba2434000 r-xp 00001000 00:8d 5569472 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7fbba2434000-7fbba2435000 r--p 00002000 00:8d 5569472 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7fbba2435000-7fbba2436000 r--p 00002000 00:8d 5569472 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7fbba2436000-7fbba2437000 rw-p 00003000 00:8d 5569472 /home/benchmarks/ruby/program/build/.ext/x86_64-linux/enc/encdb.so 7fbba2437000-7fbba2438000 r--p 00000000 00:8d 1277480 /usr/lib/x86_64-linux-gnu/ld-2.31.so 7fbba2438000-7fbba245b000 r-xp 00001000 00:8d 1277480 /usr/lib/x86_64-linux-gnu/ld-2.31.so 7fbba245b000-7fbba2463000 r--p 00024000 00:8d 1277480 /usr/lib/x86_64-linux-gnu/ld-2.31.so 7fbba2464000-7fbba2465000 r--p 0002c000 00:8d 1277480 /usr/lib/x86_64-linux-gnu/ld-2.31.so 7fbba2465000-7fbba2466000 rw-p 0002d000 00:8d 1277480 /usr/lib/x86_64-linux-gnu/ld-2.31.so 7fbba2466000-7fbba2467000 rw-p 00000000 00:00 0 7ffe6306a000-7ffe63869000 rw-p 00000000 00:00 0 [stack] 7ffe6393d000-7ffe63940000 r--p 00000000 00:00 0 [vvar] 7ffe63940000-7ffe63941000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] ``` -- https://bugs.ruby-lang.org/
5 5
0 0
[ruby-core:121372] [Ruby Bug#21185] Range#overlap? is not commutative with doubly-unbounded range argument.
by jeromepl (Jerome Parent-Levesque) 15 Mar '25

15 Mar '25
Issue #21185 has been reported by jeromepl (Jerome Parent-Levesque). ---------------------------------------- Bug #21185: Range#overlap? is not commutative with doubly-unbounded range argument. https://bugs.ruby-lang.org/issues/21185 * Author: jeromepl (Jerome Parent-Levesque) * 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 ---------------------------------------- In https://bugs.ruby-lang.org/issues/20725 the following: ``` ruby (nil..nil).overlap?(..3) ``` was fixed to output `true` instead of `false`. However, when reversing the order of the arguments the output is wrong: ``` ruby (..3).overlap?(nil..nil) # => Outputs `false` but should be `true` ``` I would like to attempt to fix this bug and will take a look at it this weekend. -- https://bugs.ruby-lang.org/
1 1
0 0
[ruby-core:121076] [Ruby master Bug#21142] Lazy enumerator `.each_with_index` ignores `.take(0)` before it
by aaronkison (Aaron Kison) 14 Mar '25

14 Mar '25
Issue #21142 has been reported by aaronkison (Aaron Kison). ---------------------------------------- Bug #21142: Lazy enumerator `.each_with_index` ignores `.take(0)` before it https://bugs.ruby-lang.org/issues/21142 * Author: aaronkison (Aaron Kison) * Status: Open * ruby -v: 3.2.7 * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- Minimum code to produce problem: ``` class Numbers; def each; 100.times { yield _1 }; end; include Enumerable; end Numbers.new.lazy.take(0).each_with_index.map { _1 }.to_a ``` Output (at ruby 3.2.7, and 3.3.0): ``` [0, 1, ..., 99] ``` Expected output (and was as at ruby 3.1.4): ``` [] ``` It works when it opposite ordering: `Numbers.new.lazy.each_with_index.take(0).map { _1 }.to_a`. I suspect it may be related to the change here https://github.com/ruby/ruby/pull/11868/files but I'm not familiar with any of that code. It seems like it replaces an allocated index with a counting index, which my hunch is it works for every value except for 0. -- https://bugs.ruby-lang.org/
4 4
0 0
  • ← Newer
  • 1
  • ...
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.