-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TOMLCache #68
TOMLCache #68
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
end But 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.