It is necessary to run --build twice to get a fully-inferred version. sys0
is just an intermediate stage and can go anywhere (unless there are still
some hard-coded paths). Something like this (from julia/base):

julia --build /tmp/sys0 sysimg.jl
julia --build /usr/lib/x86_64-linux-gnu/julia/sys.so -J /tmp/sys0 sysimg.jl
# cache everything

(The PPA doesn't distribute sys0 because it is unnecessary in a compiled
distribution)

On Fri, Oct 24, 2014 at 11:24 AM, Daniel Carrera <[email protected]> wrote:

> Ok. I have had a really hard time finding a solution. I have found many
> posts claiming that it is possible to pre-compile modules, but very few
> posts that actually try to help you do it. That said, I think I have pieced
> together some of the steps:
>
>
> --------------------------
>
> $ cd /usr/share/julia/base
>
> $ sudo vi userimg.jl  # Insert lines like  require("PyCall")
>
> $ sudo julia --build ../usr/lib/julia/sys0 sysimg.jl
> ...
> Cannot open system image file "../usr/lib/julia/sys0.ji" for writing.
> --------------------------
>
> This obviously fails because ../usr does not exist. There is no file in my
> system (Ubuntu) called sys9.ji but there are files called
>
> /usr/lib/x86_64-linux-gnu/julia/sys.so
> /usr/lib/x86_64-linux-gnu/julia/sys.ji
>
>
> After backing up /usr/lib/x86_64-linux-gnu/julia/, I tried the command
>
> $ sudo julia --build /usr/lib/x86_64-linux-gnu/julia/sys sysimg.jl
>
>
> This gave no compile-time errors, but now Julia dies with a seg fault:
>
> $ julia
> zsh: segmentation fault (core dumped)  julia
>
>
> This happens even if userimg.jl has nothing bug comments... I can recover
> Julia from the backup, but if anyone can see an obvious error that I can
> just fix, I would like to hear it.
>
> Cheers,
> Daniel.
>
>
>
>
>
> On 24 October 2014 15:59, Isaiah Norton <[email protected]> wrote:
>
>> It is not strictly necessary to build from source - try searching this
>> list for "sysimg" and look for the "--build" incantation for PPA installs
>> (I'm pretty sure it has come up before).
>>
>>
>>
>> On Fri, Oct 24, 2014 at 9:53 AM, Daniel Carrera <[email protected]>
>> wrote:
>>
>>> Oh, and I now figured out why I can't get Julia to pre-compile the
>>> modules I want. Apparently you have to be building it from source...
>>>
>>> Now I'll go and give that a try.
>>>
>>> Cheers,
>>> Daniel.
>>>
>>>
>>>
>>> On Friday, 24 October 2014 15:47:58 UTC+2, Daniel Carrera wrote:
>>>>
>>>> Yes, it seems to work. Apparently my Julia directory is
>>>>  "/usr/bin/../share/julia/base/", so that's one problem solved.
>>>> Thanks!
>>>>
>>>> Cheers,
>>>> Daniel.
>>>>
>>>> On 24 October 2014 14:53, Till Ehrengruber <[email protected]>
>>>> wrote:
>>>>
>>>>> You cuold look where your julia base library is located for example by
>>>>>
>>>>> functionloc(push!)
>>>>> ("/usr/local/Cellar/julia/0.3.1/bin/../share/julia/base/array.jl",464)
>>>>>
>>>>>
>>>>> I'm on OS X but it should work on Ubuntu as well
>>>>>
>>>>> Am Freitag, 24. Oktober 2014 14:31:32 UTC+2 schrieb Daniel Carrera:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I am running Ubuntu with Julia 0.3.1 installed from PPA. I want to
>>>>>> figure out where my Julia base directory is so I can create a userimg.jl
>>>>>> file so I can pre-compile some modules that I use often. I got the
>>>>>> idea from here:
>>>>>>
>>>>>> https://github.com/JuliaLang/Gtk.jl/blob/master/doc/precompilation.md
>>>>>>
>>>>>> The problem is that I cannot figure out where my jula/base directory
>>>>>> is. It appears to be nowhere. I have two candidate directories:
>>>>>>
>>>>>> /usr/share/julia
>>>>>> /usr/local/julia
>>>>>>
>>>>>> My Julia version is 0.3.1. The file /usr/share/julia/VERSION says it
>>>>>> is 0.3.0-prerelease. On the other hand, /var/lib/dpkg/info/julia.list
>>>>>> seems to say that /usr/share/julia is the correct directory. So that
>>>>>> doesn't make sense. The other directory --- /usr/local/julia ---
>>>>>> does not have any VERSION file or anything that I could that would tell 
>>>>>> me
>>>>>> what version of Julia it is for. I tried adding the "userimg.jl"
>>>>>> file to both directories, but that didn't do anything. Even more 
>>>>>> strangely, neither
>>>>>> directory one seems to be required for Julia to run. Look:
>>>>>>
>>>>>>
>>>>>> $ sudo mv /usr/share/julia $HOME/usr-share-julia
>>>>>> $ sudo mv /usr/local/julia $HOME/usr-local-julia
>>>>>> $
>>>>>> $ julia --version
>>>>>> julia version 0.3.1
>>>>>> $
>>>>>> $ julia
>>>>>>                _
>>>>>>    _       _ _(_)_     |  A fresh approach to technical computing
>>>>>>   (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
>>>>>>    _ _   _| |_  __ _   |  Type "help()" for help.
>>>>>>   | | | | | | |/ _` |  |
>>>>>>   | | |_| | | | (_| |  |  Version 0.3.1 (2014-09-21 21:30 UTC)
>>>>>>  _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org release
>>>>>> |__/                   |  x86_64-linux-gnu
>>>>>>
>>>>>> julia>
>>>>>>
>>>>>>
>>>>>> In other words, neither of those directories seems to be needed to
>>>>>> run Julia. So, I am completely stuck. I have two "base" directories,
>>>>>> neither of which seems to do anything.
>>>>>>
>>>>>> Can anyone help me out?
>>>>>>
>>>>>> Cheers,
>>>>>> Daniel.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> When an engineer says that something can't be done, it's a code phrase
>>>> that means it's not fun to do.
>>>>
>>>
>>
>
>
> --
> When an engineer says that something can't be done, it's a code phrase
> that means it's not fun to do.
>

Reply via email to