Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Imports `Pkg.Artifacts` into its own stdlib, Artifacts. Includes the loading and locating pieces of `Pkg.Artifacts`, but not the pieces for downloading and installing artifacts, which still reside within Pkg. Scripts that want to generate artifacts should still use `Pkg.Artifacts`, but scripts that just want to use artifacts that have already been generated are free to simply `using Artifacts`, which should cut down on time to first load by a nice chunk. If a package attempts to `@artifact"foo"` on an artifact that does not exist the `Artifacts` module will dynamically load `Pkg` and invoke the downloading routines through an inference barrier. Also adds two new (minor) features: * Slash-indexing: by popular demand, supports indexing into files within artifacts in one convenient syntax: `@artifact"FFMPEG/bin/ffmpeg"` will automatically perform the `joinpath()` for you after looking up the `FFMPEG` artifact. * Compile-time constancy; when `@artifact_str` is given a constant `String`, it optimizes the generated code by looking up the appropriate hash at compile-time and embedding just that hash into the resultant code, saving on both lookup time and objects that must be serialized to the eventual precompilation `.ji` file.
- Loading branch information