Conversation
`using Images` spends about 60ms reparsing Manifest.toml multiple times. If possible, we might as well avoid that.
|
Test failure is JuliaLang/julia#37586 (comment) Companion Revise PR: timholy/Revise.jl#533 But there's one thing that bothers me about this: without Revise to invalidate the cache when the manifest file changes, won't this give wrong answers? It really seems like we should have Base.loading do the invalidation. We could have Base do something like this: const external_tomlcaches = RefValue{Union{Nothing, Base.TOMLCache}}[]
...
# inside the code that changes the active Manifest.toml
for extcache in external_tomlcaches
extcache[] = nothing
endBut even easier, is there any reason not to essentially move the implementation here to Base? |
Yes, it will so I don't think you can have a global cache like this now. You would need these functions to accept a cache, and then you send that from Revise and also invalidate it from Revise.
Not really. I just thought it was hard to do it robustly, but I didn't try for very long. |
|
Regarding JuliaLang/julia#37586 (comment) did you try JuliaLang/julia#37608? |
I'd missed that, will test. |
|
We probably don't want to merge this as-is, so I'm marking it as a draft. |
|
Obviated by JuliaLang/julia#37906 |
This started out as a performance optimization, but I found if you load Revise first and then run the tests they fail, I think because of the new TOMLCache APIs.