-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Every jll package does the following checks during precompile time
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/wrappers/JuliaArtifacts.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/wrappers/Artifacts.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/wrappers/JuliaProject.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/wrappers/Project.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/JuliaArtifacts.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/Artifacts.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/JuliaProject.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/src/Project.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/JuliaArtifacts.toml" ENOENT (No such file or directory)
statx(AT_FDCWD, "/home/kc/.julia/packages/GR_jll/k8I6U/Artifacts.toml",
Now, stat is pretty cheap on linux/windows but there have been reports about it being quite slow on Windows (JuliaLang/julia#40570).
Since we know the exact layout of a jll package, it should be no need to have to look through the filesystem for the Artifact file.
@staticfloat believes these lookups come from
JLLWrappers.jl/src/wrapper_generators.jl
Lines 13 to 17 in 79226fa
| $(Expr(:macrocall, Symbol("@artifact_str"), __source__, src_name, :(host_platform))) | |
| else | |
| # We explicitly use `macrocall` here so that we can manually pass the `__source__` | |
| # argument, to avoid `@artifact_str` trying to lookup `Artifacts.toml` here. | |
| return $(Expr(:macrocall, Symbol("@artifact_str"), __source__, src_name)) |
Instead of generating a call to @artifact_str, perhaps we can just look up the path from the artifact file which we know where it lives?
tfiers
Metadata
Metadata
Assignees
Labels
No labels