两个不同的 Julia 项目和它们的 toml

Two different Julia projects and their toml

当两个不同的 Julia 项目 toml 文件具有相同的项目名称和相同的 depot 路径时会发生什么?实例化一个会导致其他缓存过时吗?

我假设 缓存 是指存储在软件仓库中的一组包。

Pkg.instantiate() 将确保存在于活动依赖关系图中的所有包版本(由清单文件指定)存在于软件仓库路径中的某处。通常,Pkg 将任何给定项目所需的依赖项集与存储在软件仓库中的包集解耦。这就是 Julia 的项目如此轻量的原因:不同的项目可以自由共享依赖关系,这样就没有不必要的重复。

两个不同的项目具有相同的名称这一事实与此过程无关。

注意:虽然给定的项目只能有一个版本的依赖项,但是一个 depot 可以免费存储同一包的任意数量的版本。


如果您指的是 预编译缓存 :同一个包的多个版本相互破坏是一个问题。 fix 应该在 Julia 1.3 中。