[#120465] [Ruby master Bug#20998] rb_str_locktmp() changes flags of frozen strings and string literals — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Issue #20998 has been reported by Eregon (Benoit Daloze).
17 messages
2025/01/03
[ruby-core:120797] [Ruby master Bug#21091] recursive require not detected on case insensitive filesystem
From:
"rrotter (Ryan Rotter) via ruby-core" <ruby-core@...>
Date:
2025-01-27 06:43:07 UTC
List:
ruby-core #120797
Issue #21091 has been reported by rrotter (Ryan Rotter).
----------------------------------------
Bug #21091: recursive require not detected on case insensitive filesystem
https://bugs.ruby-lang.org/issues/21091
* Author: rrotter (Ryan Rotter)
* 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
----------------------------------------
On case insensitive filesystems `require`ing a file from itself causes the file to be `require`d twice if the initial `require` and the `require` inside the file have different capitalization.
I expect the second `require` to return false, and not execute the file a second time.
```
~ % cat /tmp/foo.rb
puts "loading #{__FILE__}"
require "/tmp/foo"
SOME_GLOBAL = "foobar".freeze
~ % ruby -r/tmp/FOO
loading /tmp/FOO.rb
loading /tmp/foo.rb
/tmp/FOO.rb:3: warning: already initialized constant SOME_GLOBAL
/tmp/foo.rb:3: warning: previous definition of SOME_GLOBAL was here
```
This is on macOS 15.1.1, using the default case-insensitive APFS, and ruby 3.4.1.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/