Sorry to follow up, but I've confirmed this is the case (it was also in the original announcement; sorry for overlooking it).
In any case - during this testing phase, would it be possible to make __precompile__() work only for packages that have explicitly opted in, so that dependencies that cannot be precompiled don't suddenly start causing failure of the top-level package? I'd love to have precompilation for LightGraphs, but I don't really want to have to depend on the precompile-safeness of the dependencies to maintain a passing build status for LightGraphs. On Monday, August 10, 2015 at 2:03:54 PM UTC-7, Seth wrote: > > Hi, > > I'm running into a weird problem that I think is related to > precompilation. It seems that __precompile__() will attempt to precompile > all dependencies as well (that is, if you're "using Foo", Foo will get > precompiled). > > Is this true? In my case, it appears that the precompilation in > LightGraphs causes a failure due to "ERROR: LoadError: LoadError: > UndefRefError: access to undefined reference" in LightXML, which may not be > precompile-safe. > > Thanks for any advice. > > > On Thursday, August 6, 2015 at 9:39:23 PM UTC-7, Steven G. Johnson wrote: >> >> Many of you are aware that Julia 0.4 has some facilities for precompiling >> modules, but in the last couple of days they have become significantly more >> automated, which should make much faster load times accessible to all your >> users in 0.4. >> >> If your module (and any modules it imports) are safe to precompile, then >> just add: >> >> VERSION >= v"0.4.0-dev+6521" && __precompile__() >> >> at the top of your module file (*before* module ... end), and it will be >> automatically precompiled (to a cached ".ji" file in ~/.julia/lib) the >> first time it is imported. Thereafter, if any of the dependencies (e.g. >> the included files or imported modules) are updated, it will automatically >> be recompiled the next time it is imported. >> >> See the Julia manual section on modules and precompilation >> <http://docs.julialang.org/en/latest/manual/modules/#module-initialization-and-precompilation>to >> >> find out how to make your module safe for precompiling. >> >> (If your module is *not* safe for precompiling yet and you don't have >> time to fix it, use __precompile__(false) to prevent your module from >> being accidentally precompiled, e.g. by being imported into another module >> that is precompiled.) >> >> --SGJ >> >
