Eager load constants in a consistent order #219
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The yield order of
Dir.each_entry
is directly dependent from the file system implementation. On macOS they will be yielded in alphabetical order, because that's how HFS is implemented.However on Linux, different file system expose different orders. Most commonly, files are iterated with the last modified first, which across a fleet of server is akin to "random".
This small disrependency can cause order dependent code to fail. Arguably, it's the user code that is faulty and should be fixed (I agree), but even then, a predictable order makes it easier to debug.
For that same reason, since Ruby 3
Dir[]
is sorted: https://bugs.ruby-lang.org/issues/8709@fxn what do you think?
cc @jeromegn