[julia-users] Re: PSA: auto-precompile your modules

2015-08-10 Thread Seth
Issue filed: https://github.com/JuliaLang/julia/issues/12545

On Monday, August 10, 2015 at 2:18:25 PM UTC-7, Seth wrote:
>
> 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 
>>> 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
>>>
>>

[julia-users] Re: PSA: auto-precompile your modules

2015-08-10 Thread Seth
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 
>> 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
>>
>

[julia-users] Re: PSA: auto-precompile your modules

2015-08-10 Thread Seth
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 
> 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
>