From: cfis@... Date: 2019-03-14T07:30:56+00:00 Subject: [ruby-core:91828] [Ruby trunk Bug#15649] Dir.glob regression with braces and Windows drive letters Issue #15649 has been updated by cfis (Charlie Savage). Seeing the same here. Seems like its the braces that are broken on Windows in Ruby 2.6. Rails autloading feature combines a number of glob patterns into a string for reason, instead of passing in an array. https://github.com/rails/rails/blob/25620f91ca0ab261fbc883763040ec58d205514e/activesupport/lib/active_support/file_update_checker.rb#L143 ---------------------------------------- Bug #15649: Dir.glob regression with braces and Windows drive letters https://bugs.ruby-lang.org/issues/15649#change-77098 * Author: daniel-rikowski (Daniel Rikowski) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32] * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- I noticed that certain glob patterns involving braces and drive letters, which did work in Ruby 2.5.3, no longer work in Ruby 2.6.1. Assume I have a directory `C:\Projects` and my current directory is `C:\Windows`. Using IRB I can observe the following results of `Dir.glob`: Patterns working in 2.6.1 and 2.5.3: ``` Dir['c:'] => ['c:'] Dir['c:/'] => ['c:/'] Dir['c:/projects'] => ['c:/Projects'] ``` Patterns broken in 2.6.1 (but working in 2.5.3) ``` Dir['{c:}'] => ['Windows'] Dir['{c:/}'] => ['Windows/'] Dir['{c:/projects}'] => [] ``` Some background: I noticed this problem first in Rails, where the file modification watcher tries to glob a pattern like `{c:/dir1/**/*.{rb},c:/dir2/**/*.{rb},c:/dir3/**/*.{rb}}` Due to the bug above, the code reloading feature of Rails is broken using Ruby 2.6.1 on Windows. (Because the pattern is always resolved to an empty array) Rubies tested: * ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32] * ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32] -- https://bugs.ruby-lang.org/ Unsubscribe: