-
-
Notifications
You must be signed in to change notification settings - Fork 117
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
Loading DiffEqBase invalidates package loading #895
Comments
the problem here is that type printing was overloaded incorrectly (and there's no correct way to overload it). |
Then what's the right way to do it? I'm happy to implement it in any way that is suggested, but I was told JuliaLang/julia#48444 isn't going to be making it into v1.9 even as experimental, and this is the best way we have right now. |
This recompilation looks to be triggered when one overloads e.g. on a fresh julia session, one may trigger it w/
snoopr shows
|
If you wanted to pirate something it would be a lot better to pirate exception printing rather than type showing. The problem with pirating type showing is that a ton of functionality uses it (e.g. help mode), and showing non-concrete types correctly is very tricky (since e.g. type parameters might not be assigned). |
One solution is to run package loading in a fixed world. That would make it immune to invalidations, but you couldn't Revise it without removing that. |
Fixed by making stacktraces huge. |
I might have an idea that could possibly reduce invalidations but provide the same functionality (albeit only in stacktraces). The idea would be to take over a part of the stacktrace printing and redirect that to a custom function that can be overloaded (so not show on type). I will experiment and see how it goes. |
Thanks. I think we've proven this experiment has failed though it's very close to having something that can work with just a tweak to Base like that, and we have everything setup so the TruncatedStacktraces macro deprecation path can be to just use that and lots of the printing choices are already in here. So we're ready to go once something shows up that won't invalidate. |
I tried to diagnose but loading DiffEqBase also breaks everything
The text was updated successfully, but these errors were encountered: