-
Notifications
You must be signed in to change notification settings - Fork 57
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
Docs now take a very long time to build #247
Comments
By setting the environment variable |
The intersection with #219 is that graphics uses the new property graphs... I'll write some benchmarks for different ACSet operations (which is probably a good idea in any case), and we'll see if we can speed them up. |
Or actually, I'll do some profiling first on the API docs. |
Performance is one of my main concerns with ACSets right now. If they exercise the compiler in a big way, then we need to get involved with the Julia compiler team to get that pain point exposed before the 1.6 feature freeze or we will be living with slow Catlab for ~2 years on LTS Julia. |
I have a hard time believing that the slow build is the compiler's fault; it must be a problem with my generated code. The only thing is, when I try to build the docs on my computer so that I can profile the build process, I get a SEGFAULT. I set up a docker container just like the docs.yml file, so I'm not sure what I'm doing wrong... |
Try removing the |
Owen, thanks a lot for investigating. Based on my experiments last night, my current best guess is that there is a bad interaction involving the new ACSets implementation, the Julia compiler, and the specific evaluation logic used by Documenter.jl. To summarize the above, here's what I'm seeing:
|
If it remade the To sum up, I'm pretty happy to blame the Documenter.jl logic. As a work-around, I wonder if we could take the file, do some basic source transformations so that each line spits its output (text, svg or png) to a file whose name was the name of that line, run that new file through the regular julia compiler, and then make a markdown file where the julia code was replaced by something that just includes the output. |
I agree, I don't think there's anything obviously wrong with the code you |
I think I discovered the problem or a large part of it. Issues have been filed upstream at JuliaDocs/Documenter.jl#1438 and JuliaLang/julia#38079. |
Wild guess: Is there some type piracy going on in Catlab? The issue JuliaDocs/Documenter.jl#1438 reminds me of the kind of thing you might see with precompilation invalidations that Tim et al have been working on. Maybe SnoopCompile.jl might help? |
Thanks for the pointer, that could be helpful for debugging. My current guess is that it has something to do with generated functions but I really don't know. First, I'm going to hope that the experts at JuliaLang can weigh in :) |
Since merging #219, there has been a massive jump in the build time for the docs, from ~10 min to one hour, as reported here. I have no idea what is causing this or what to do about it.
The text was updated successfully, but these errors were encountered: