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

__precompile__(false) in extensions is not applied correctly #56213

Open
topolarity opened this issue Oct 17, 2024 · 0 comments
Open

__precompile__(false) in extensions is not applied correctly #56213

topolarity opened this issue Oct 17, 2024 · 0 comments
Labels
bug Indicates an unexpected problem or unintended behavior package extensions packages Package management and loading

Comments

@topolarity
Copy link
Member

It looks like we're not properly modeling for __precompile__(false) in extensions:

Although, in some scenarios it leads to

│  ┌ Error: Error during loading of extension FlexiMapsDictionariesExt of UnionCollections, use `Base.retry_load_extensions()` to retry.
│  │   exception =
│  │    1-element ExceptionStack:
│  │    Error when precompiling module, potentially caused by a __precompile__(false) declaration in the module.

...

Originally posted by @aplavin in #56204

We should either:

  1. ban __precompile__(false) in extensions
  2. handle __precompile__(false) specially in extensions so that it is non-viral (which means updating loading to avoid loading this extension during pre-compilation)
  3. handle __precompile__(false) the same way we always do - make it viral and exclude all loading packages from pre-compilation

My vote is (1) or (2), because (3) seems very surprising and goes against the grain of "optional functionality" that extensions generally provide.

@topolarity topolarity added bug Indicates an unexpected problem or unintended behavior package extensions packages Package management and loading labels Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior package extensions packages Package management and loading
Projects
None yet
Development

No branches or pull requests

1 participant