-
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
Extreme precompilation time #32
Comments
Moving it into a function seemed to help immensely |
Thanks for the observation and pointer. For a systematic optimization ChrisRackauckas note will probably be very instructive: Unsure when I will get to systematic investigation and optimization again, after left recursion and tracing. |
I was experiencing these problems as well. In particular, I am trying to implement a parser for OWL: https://www.w3.org/TR/owl2-syntax/#Definitions_of_OWL_2_Constructs The first problem is the lack of left recursivity, but I only need to parse a less expressive subset, so it's fine. The second problem is the extremely long precompilation times. If you wrap the parser in a function, it disappears completely. But you pay it when you run the function for the first time. And I must be doing something that increases them like crazy because I went from something like 45s to...40 minutes!! I think it's because I am having tons of complex return types and I probably should change approaches. I will report back once I try a different approach to the parser. PS: I really like the library, though. It's really expressive and readable. |
40 minute compile time has to be a bug in Julia itself. |
@gkappler This comment from JeffBezanson seems relevant to the problem: JuliaLang/julia#42502 (comment) I am struggling with finding an approach that works. Is there a way to deal with this to reduce complexity of the return type? |
I am getting some very long precompilation time.
and AFAICT it is just my 1 parser
CombinedParsers.jl is my only direct dependency,
The parser in question is:
The text was updated successfully, but these errors were encountered: