-
Notifications
You must be signed in to change notification settings - Fork 119
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
Major regression in compile time due to improved error messages #524
Comments
Oh also, it compiles without errors, so it seems a little weird that changing error message handling would affect anything. Unless the changes in that commit also affect warnings somehow? |
Ah I found One in particular is really bad -
I guess maybe it's the worst because it calls all the other complicated capability functions (e.g. Anyway the output looks like this: I killed it after 500k lines of output without finishing that function. Also if I change this line in
Back to
then it's fine again. I guess this is an early exit from the explosion... |
Yes, I see why. I made it continue checking for what I thought would only be a little bit after the first error on a function application to see how many subsequent errors that causes, but the nested ^ applications there are a worst-case scenario for that kind of exploration |
Might be fixed by #526 It's trying to tackle the root cause of why overloaded definitions are slow to typecheck, rather than specifically this error, but it should mean the string literals in this example immediately collapse the state space of what the type-checker can try. |
The above PR brings |
I tried on the latest |
For some reason this commit makes compile time for the RISC-V Sail model much much worse, but annoyingly only for our fork. I couldn't reproduce the issue in the open source one.
On the previous commit:
On that commit:
Actually I killed it after 35 minutes.
Kind of annoying I don't have a public reproducer but maybe you have some clue? Or a suggestion for how to debug it? Does an OCaml profiler exist?
The text was updated successfully, but these errors were encountered: