-
Notifications
You must be signed in to change notification settings - Fork 102
Description
While writing #172, I realized that it won't work in Julia 0.7 since the cache directory structure is completely different. In Julia 0.7 it's ~/.julia/compiled/v0.7/{package name}/{slug}.ji
and this is the code that locates the path:
cache_file_entry(pkg::PkgId) = joinpath(
"compiled",
"v$(VERSION.major).$(VERSION.minor)",
pkg.uuid === nothing ? "$(pkg.name).ji" : joinpath(pkg.name, "$(package_slug(pkg.uuid)).ji")
)
function find_all_in_cache_path(pkg::PkgId)
paths = String[]
entry = cache_file_entry(pkg)
for depot in DEPOT_PATH
path = joinpath(depot, entry)
isfile_casesensitive(path) && push!(paths, path)
end
return paths
end
In principle, I guess we can do a similar trick we do with Base.LOAD_CACHE_PATH
in 0.6 with Base.DEPOT_PATH
in 0.7. But creating a depot for each Python version sounds like a overkill since it has more than a cache directory. Here is how they describe Base.DEPOT_PATH
:
The first entry is the “user depot” and should be writable by and owned by the current user. The user depot is where: registries are cloned, new package versions are installed, named environments are created and updated, package repos are cloned, newly compiled package image files are saved, log files are written, development packages are checked out by default, and global configuration data is saved. Later entries in the depot path are treated as read-only and are appropriate for registries, packages, etc. installed and managed by system administrators.
So, what is the best way to support multiple Python interpreters in Julia 0.7?