Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LoadedFeaturesIndex#register: Ignore absolute paths entirely #385

Merged
merged 1 commit into from Jan 10, 2022

Commits on Jan 10, 2022

  1. LoadedFeaturesIndex#register: Ignore absolute paths entirely

    Fix: #383
    Ref: fxn/zeitwerk#198
    
    The loaded feature index goal is to prevent requiring the same "feature"
    twice if the `$LOAD_PATH` was mutated. e.g:
    
    ```ruby
    require "bundler" # ~/gems/bundler/lib/bundler.rb
    $LOAD_PATH.unshift("some/path")
    require "bundler" # some/path/bundler.rb
    ```
    
    In such scenario Ruby remember that you require "bundler" already
    and even though it now maps to a new path, it won't load it again.
    
    This was causing issues with Zeitwerk if it is loaded before bootsnap (see refs),
    because the cache wouldn't be cleared.
    
    But ultimately Zeitwerk always require absolute paths, and the concern
    described above simply doesn't apply to absolute paths. So we can simply
    bail out early in these cases. That fixes the bug, and also means less work
    and a smaller index, so win-win.
    byroot committed Jan 10, 2022
    Copy the full SHA
    6253a68 View commit details
    Browse the repository at this point in the history