From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:49839) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hsUbc-00082g-8j for guix-patches@gnu.org; Tue, 30 Jul 2019 12:04:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hsUbb-0006Pc-2O for guix-patches@gnu.org; Tue, 30 Jul 2019 12:04:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42242) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hsUba-0006PN-Sr for guix-patches@gnu.org; Tue, 30 Jul 2019 12:04:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hsUba-0003Xo-E6 for guix-patches@gnu.org; Tue, 30 Jul 2019 12:04:02 -0400 Subject: [bug#36856] build: Add julia-build-system Resent-Message-ID: MIME-Version: 1.0 References: <87sgqn629k.fsf@elephly.net> <1DBAF4CE-8BA5-43EF-9CFE-5A73FB8118EB@lepiller.eu> <87o91b619c.fsf@elephly.net> In-Reply-To: <87o91b619c.fsf@elephly.net> From: =?UTF-8?Q?Nicol=C3=B2?= Balzarotti Date: Tue, 30 Jul 2019 16:02:39 +0000 Message-ID: Content-Type: multipart/alternative; boundary="00000000000007451b058ee824e3" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ricardo Wurmus Cc: 36856@debbugs.gnu.org --00000000000007451b058ee824e3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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=3D/my/new/path/:/profile/path/:@stdlib julia --startup=3D= 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 ha scritto: > > Julien Lepiller writes: > > > Le 30 juillet 2019 16:11:19 GMT+02:00, Ricardo Wurmus < > rekado@elephly.net> a =C3=A9crit : > >> > >>Nicol=C3=B2 Balzarotti 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 =3D [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 > > --00000000000007451b058ee824e3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the quick response!

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

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

Thanks

Il giorno mar 30 l= ug 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 = =C3=A9crit :
>>
>>Nicol=C3=B2 Balzarotti <anothersms@gmail.com> writes:
>>
>>> 3. By adding a simple startup.jl script, inspired by what emac= s does.
>>This
>>> is simplified so I'm not sure it works for every corner ca= se.
>>> #+begin_src julia
>>> let paths =3D [expanduser("~/.guix-profile"),
>>"/run/current-system/profile"]
>>>=C2=A0 =C2=A0 =C2=A0("GUIX_ENVIRONMENT" in keys(ENV))= && push!(paths,
>>> ENV["GUIX_ENVIRONMENT"])
>>>=C2=A0 =C2=A0 =C2=A0empty!(LOAD_PATH)
>>>=C2=A0 =C2=A0 =C2=A0push!.(Ref(LOAD_PATH), joinpath.(paths, &qu= ot;share/julia/packages/"))
>>>=C2=A0 =C2=A0 =C2=A0push!(LOAD_PATH, "@stdlib")
>>>=C2=A0 =C2=A0 =C2=A0push!.(Ref(DEPOT_PATH), joinpath.(paths, &q= uot;share/julia/"))
>>>=C2=A0 =C2=A0 =C2=A0nothing
>>> end
>>> #+end_src
>>
>>Could this perhaps be handled by a profile hook that is included on= ly
>>when the profile manifest contains a julia package?
>
> Or simply with an environment variable? GUIX_JULIA_PATH or something?<= br>
If this is the route you go down, please ensure that it can be used as a search path with more than one directory.=C2=A0 This would make it possible=
to extend a Julia environment with the contents of more than one
profile.

--
Ricardo

--00000000000007451b058ee824e3--