On Wednesday, September 30, 2015 at 9:27:29 PM UTC-4, Sebastian Good wrote: > > Setting JULIA_PKGPATH lets me put everything in a more amenable spot, but > transporting everything over to another identical machine results in > inconsistent behavior with precompiled binaries. They are always “stale”. > Is there a good resource to consult to understand binary staleness? > > Staleness is determined by this function:
https://github.com/JuliaLang/julia/blob/e54c38d27028a0c79a10140c8271d484e182b295/base/loading.jl#L421-L449 In particular, it is considered stale if the absolute path changes, or if the modification time of a dependency (which is checked via the absolute path) does not match the modification time of the file when the cache was created. So, a precompiled image will be considered stale if you change the absolute path of the cache or source directories. It might be nice to make these relocatable without invalidating the cache. However, in the meantime I don't think there is much downside to just having the user re-precompile the packages. Precompilation is very different than building the package; it doesn't require internet access or other external resources, and re-running precompilation can basically only fail if importing the package fails, in which case you probably have bigger problems.
