From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:43462) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isoNU-00041U-3S for guix-patches@gnu.org; Sat, 18 Jan 2020 08:43:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1isoNS-0000pK-MZ for guix-patches@gnu.org; Sat, 18 Jan 2020 08:43:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:34744) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1isoNS-0000pF-Jy for guix-patches@gnu.org; Sat, 18 Jan 2020 08:43:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1isoNS-0007Jk-IS for guix-patches@gnu.org; Sat, 18 Jan 2020 08:43:02 -0500 Subject: [bug#38546] =?UTF-8?Q?[Nicol=C3=B2?= Balzarotti] [PATCH 00/10] Update julia to 1.3.1, fix precompilation, add HTTP.jl In-Reply-To: <87v9qpvbyr.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> Resent-Message-ID: From: anothersms@gmail.com (=?UTF-8?Q?Nicol=C3=B2?= Balzarotti) References: <87zhekvqpj.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> Date: Sat, 18 Jan 2020 14:42:10 +0100 Message-ID: <8736ccvq31.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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: 38546@debbugs.gnu.org Ok I had time to look at this again. 1. Package installation can be done both the julia way and the guix way 2. SOURCE_DATE_EPOCH is respected in package precompile timestamp. Other fi= xes are needed to get reproducible builds, but for now that means that pack= age cache is used. 3. This patch adds some first julia package (HTTP.jl and dependencies)=20 4. Updated julia to 1.3.1 (latest release). It's working great and the build recipe is simplified a lot. However, some test is failing. The "interesting" part is that when running tests alone, they are working. It seems like the problem arise when tests are run on the _same core_ and not on different cores. I opened a issue upstream for this (https://github.com/JuliaLang/julia/issues/34330), I'll have to look further on it, but for now if it's fine for me this is ready to be merged. I'm sending the patch series here. Thanks, Nicol=C3=B2 Ludovic Court=C3=A8s writes: > Hi, > > (+Cc: bug report.) > > Nicol=C3=B2 Balzarotti skribis: > >> Ludovic Court=C3=A8s writes: >> >>> Hi! >>> >>> nixo skribis: >>> >>>> This set of patches improve the state of julia-build-system. >>>> >>>> 1. set path JULIA_LOAD_PATH to enable installing packages, and >>>> JULIA_DEPOT_PATH to allow guix-precompiled cache to be recognized by= julia. To >>> >>> These two environment variables are supported upstream, right? >> >> Yes, those variables are documented here: >> https://docs.julialang.org/en/v1/manual/environment-variables/index.html > > Great. > >> Should user be allowed to manually install packages in his own private >> home folder manually? (I just tried with R: R recognize the store is RO >> and ask for an alternative path). I'll try to allow "standard" package >> installation and submit the patch again (also, I just read you other >> comments, so I'll fix everything!) > > I think users should have the option to install packages in the normal > Julia way, without Guix. > >>>> do this, a small "hack" with libfaketime was required (julia decides= if the >>>> cache is valid by comparing source ".jl" mtime with cache ".ji" file= , in which >>>> julia stores a timestamp. We need to force this timestamp to be equa= l to the >>>> mtime of guix-store files). >>> >>> OK. This hack shouldn=E2=80=99t break =E2=80=9Cnormal=E2=80=9D Julia u= ses (outside of the >>> store), right? >> You are right, the issue is that julia finds its src (.jl) file to have >> a different (although older) timestamp (because guix fixes the >> mtime). This applies only to cache files placed in the store. Other >> cache files (non-guix installed files) have the right timestamp, so are >> not affected (I don't know if this explanation is clear. The TLDR is: >> with this hack store works without double-precompilation, non-store >> works normally, too). >> However, I'll check if I can make it work with SOURCE_DATE_EPOCH. I >> already read the code responsible for precompilation, so hopefully it >> won't take too much time > > Awesome, thanks! > > Ludo=E2=80=99.