julia
7fd69749 - loading: precompile all packages of a `using A, B` statement in one session (#63186)

Commit
3 days ago
loading: precompile all packages of a `using A, B` statement in one session (#63186) * loading: precompile all packages of a `using A, B` statement in one session `using A, B, C` lowers to one `_eval_using` call per package, so each `require` started its own parallel precompile session, and extensions that only became loadable once a later package loaded trailed as further sessions. The REPL already extracts the package names from the lowered statement for the missing-package hook, so use that list to precompile every not-yet-cached package of the statement, plus the extensions the loaded set makes loadable, in a single session before evaluating it. The background precompile task passed requested packages to the driver by name, which cannot resolve an extension from `Main`, so any request naming an extension returned nothing and extensions were compiled serially; pass the ids through instead. The `Precompiling` loading messages drop the uuid when the name maps to a single uuid across the load path's manifests, name extensions by their parent, and name the dependency that is loaded at a different version. The driver's header says "Precompiling packages..." when specific packages were requested rather than the whole project. Fixes #63185 Assisted-by: Claude Code (Fable 5.1)
Parents
Loading