Hi, I'm back.

I fixed the problem I had (I forgot the ./pre-inst-env -.-")

Following this discussion, I'm adding ``native-search-paths'' to the julia package. Now, without any other hack (like the setup.jl one), it can find the packages but only when installed with guix package -i . It cannot find them when in an environment (guix environment --ad-hoc julia-package).
Can you help?

Except from this, I cleaned everything a bit, and added a draft of the documentation. I'm attaching the new patches here (without the julia-xyz part one, to which I'll add all package synopsis and description, and I'll split in multiple patches before re-submitting).

Thanks, Nicolò

Il giorno mar 30 lug 2019 alle ore 16:02 Nicolò Balzarotti <anothersms@gmail.com> ha scritto:
Thanks for the quick response!

Well, the environment variable JULIA_LOAD_PATH (that inside julia is just LOAD_PATH) works exactly like that (is a column-concatenated path list). It just needs the special ":@stdlib" path to let julia find its standard libraries.
Example:
> JULIA_LOAD_PATH=/my/new/path/:/profile/path/:@stdlib julia --startup=no -E 'LOAD_PATH'
["/my/new/path/", "/profile/path/", "@stdlib"]

Is setting this variable from guix fine, or we need a special GUIX_SOMETHING variable?
Where exactly should I set this?

Thanks

Il giorno mar 30 lug 2019 alle ore 14:33 Ricardo Wurmus <rekado@elephly.net> ha scritto:

Julien Lepiller <julien@lepiller.eu> writes:

> Le 30 juillet 2019 16:11:19 GMT+02:00, Ricardo Wurmus <rekado@elephly.net> a écrit :
>>
>>Nicolò Balzarotti <anothersms@gmail.com> writes:
>>
>>> 3. By adding a simple startup.jl script, inspired by what emacs does.
>>This
>>> is simplified so I'm not sure it works for every corner case.
>>> #+begin_src julia
>>> let paths = [expanduser("~/.guix-profile"),
>>"/run/current-system/profile"]
>>>     ("GUIX_ENVIRONMENT" in keys(ENV)) && push!(paths,
>>> ENV["GUIX_ENVIRONMENT"])
>>>     empty!(LOAD_PATH)
>>>     push!.(Ref(LOAD_PATH), joinpath.(paths, "share/julia/packages/"))
>>>     push!(LOAD_PATH, "@stdlib")
>>>     push!.(Ref(DEPOT_PATH), joinpath.(paths, "share/julia/"))
>>>     nothing
>>> end
>>> #+end_src
>>
>>Could this perhaps be handled by a profile hook that is included only
>>when the profile manifest contains a julia package?
>
> Or simply with an environment variable? GUIX_JULIA_PATH or something?

If this is the route you go down, please ensure that it can be used as a
search path with more than one directory.  This would make it possible
to extend a Julia environment with the contents of more than one
profile.

--
Ricardo