From: "rrotter (Ryan Rotter) via ruby-core" Date: 2025-01-27T06:43:07+00:00 Subject: [ruby-core:120797] [Ruby master Bug#21091] recursive require not detected on case insensitive filesystem 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/