Skip to content

Conversation

@kimikage
Copy link
Collaborator

@kimikage kimikage commented Jan 7, 2020

Ref JuliaLang/julia#34121

We have to create release-0.7 branch to release v0.7.1.

@kimikage
Copy link
Collaborator Author

kimikage commented Jan 7, 2020

BTW, I do not yet fully understand how this workaround works.

@timholy
Copy link
Member

timholy commented Jan 7, 2020

Since we don't understand the bug, there's a sense in which I don't understand either. But here's the approximate explanation: when a package is not marked __precompile__(false), then Julia will create a serialized version of the package as a *.ji file in your .julia/compiled directory. This is essentially a record of a subset of a fresh Julia process's actions from the point of opening the toplevel file to the end of module initialization.

Just defining methods does not require that they be specialized for specific types. This is what the precompile directive does, and since it runs while under the --output-incremental=yes flag, it causes additional MethodInstances to be cached to the *.ji file. Thus, by making the function that issues the precompile directives conditional on Julia version, we save less stuff to the *.ji file for Julia 1.0.x than we do for higher versions of Julia.

@johnnychen94
Copy link
Collaborator

BTW, I do not yet fully understand how this workaround works.

This issue is first identified in JuliaImages/juliaimages.github.io#98 (the travis log is missing now) and the cause for that is the upgrade of FileIO v1.2.0 from v1.1.0, which only introduces a precompile operation. In simple words according to my understanding: "since precompilation breaks in Julia v1.0.x, then we don't precompile it."

@kimikage kimikage merged commit 3048c18 into JuliaMath:master Jan 7, 2020
kimikage added a commit that referenced this pull request Jan 7, 2020
@kimikage
Copy link
Collaborator Author

kimikage commented Jan 7, 2020

@johnnychen94, I think your comment is correct. However, if so, we have to stop using all precompile() on v1.0.x. This is not a joke, but a major concern for me.

Please remember the problem with Images.jl. Images.jl depends not only on FileIO.jl but also on Colors.jl, ColorTypes.jl and FixedPointNumbers.jl.
One possibility is that there are some extra trigger conditions. Another possibility is that the trigger conditions have been satisfied and simply the tests do not trigger it.

@kimikage kimikage deleted the julia34121 branch January 7, 2020 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants