Using Plots for the first time

I just installed Julia 1.6 and noted the much faster compile times. Thanks!
When executing using Plots for the first time, Julia when through a whole series of compiling steps. Here is a small piece of what scrolled by:

2021-03-31_08-27-38

Notice DifferentialEquations, which does not appear in the Manifest under Plots:

[[Plots]]
deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"]

Nor does DifferentialEquations appear anywhere in the Manifest other than
[[DifferentialEquations]]

So I was wondering how to interpret the output above? Why would DifferentialEquations even make an appearance when loading Plots? Thanks.

1 Like

It is possible that it is a dependency of a dependency. One would need to check the complete dependency tree to see if each of those packages are not there. I guess they are somewhere. (edit: I guess in that case it should appear on Manifest, right?)

Precompilation runs per enviroment.
So if your enviroment contrains DifferentialEquations at all, then it can be precompiled when you install something else to that enviroment (e.g. Plots).
Sometiems things don’t need to be, if it can reuse something that was precompiled before.
but sometimes it can’t.
I don’t actually know why, might be invalidation because of common subdependencies?
E.g. if installing Plots upgraded/downgraded a common subdependency that would void it.

Thank you both. However, DifferentialEquations was already precompiled. In fact if I load another Module (that is already installed), I see DifferentialEquations again. I am not saying it is compiled again. I am saying it is listed. It is strange.

Precompilation runs per enviroment.
It will list everything in your enviroment.
I.e. everything in your Manifest.toml

Thanks, I understand. So if I add a new package, and then import it via using, it will again go through the entire environment, albeit very fast? Thanks.

Yes. At the end of the process you can see that is says that a number of packages was already precompiled.

Thanks! Ok, now I understand.