GNU bug report logs - #73197
[PATCH] gnu: julia: Update to 1.9.3.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Ludovic Courtès <ludo@HIDDEN>; Keywords: patch; dated Thu, 12 Sep 2024 13:24:01 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 14 Feb 2025 21:12:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 14 16:12:22 2025
Received: from localhost ([127.0.0.1]:52061 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tj2z0-0000TV-4W
	for submit <at> debbugs.gnu.org; Fri, 14 Feb 2025 16:12:22 -0500
Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:51610)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <zimon.toutoune@HIDDEN>)
 id 1tj2yu-0000TC-Tp
 for 73197 <at> debbugs.gnu.org; Fri, 14 Feb 2025 16:12:19 -0500
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4395b367329so16243065e9.3
 for <73197 <at> debbugs.gnu.org>; Fri, 14 Feb 2025 13:12:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739567530; x=1740172330; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=M0cyyeWE6HT5v9Ifah9gNmp576W83b2uHR2MNXchmVA=;
 b=UsHqAjza9qXxZUDTZb+GlpjB9IMbIYU5rXKiqseRXNjN81uhYYu5ACkFzsVzeclqxW
 2aCLgffiNDFM1IiHjJYcL/6vgZQHHQ7xNqOKJpB5iFabZryYUXTstHw2SjzWn0Ec3pe7
 PBJn+bkhBJNM1I8WiGBaMQXPSITN4FvNtGWq6xFlk0tL1vaV+/DHV2bvr7QabepcnOpM
 IFAHxMJxgDKItaRlKm+9HCTVk7tuWsBzKCdehknSivaajDuDVuqX/xdYS7o0n98//rQK
 jqDNzWyxngI6qepf20NISV6H+uRamzAcpqL4rVWGcMR+weFcdDBkslVMOtEHaQSaJylZ
 +/Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739567530; x=1740172330;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=M0cyyeWE6HT5v9Ifah9gNmp576W83b2uHR2MNXchmVA=;
 b=I6BbmAzGVVA/TL+6/3I6lQJgend8W6cqRLrnWpCTRjswGikQMCItglEn84zJqsEuZA
 PmwE64GBNM7aOhLG+R7d6Ng7+ICXVE0K9wKE3B0LoYBLJFIRcNmzs25Krs4ByNf/gqIG
 1ENa3yczzkqimnn6DjiqK6V4kekAP2lTqVTQd+YCHRmj3P4N+w96eR6+od8upImdq2/Q
 23esrSiphJ7hrNEeTxZyw9eqRPVyvCEOgVflUqhOFx+XDbCWxX8mU8VjlcKLEh5drkGr
 JMY3ETVhuFnvFo93RErUqKMajmDEcITigGSxEHt/1lSuXC/OLcZvNlizKsoMu0Bh1jrM
 8WAA==
X-Gm-Message-State: AOJu0YzeNaUHw5Eaeeo9LkuEp8LpPIQX+XVzgGfDGnRn0VsnmJln3u2I
 RoBX/DFDBg3hK8KssBnehlUBGbZbVGjSfRBL7n3t8GXfKdVmWCjt
X-Gm-Gg: ASbGncu760j5ZY0B7H6WUVWL2xlS6wgyHfPI+Prv4Pb5+UbS713LHEvDxd5uAA9MBah
 TUPwx5KKNSR4LO9+nm3fy0fk+BFF4699G1jsDA4AthwY++aMImXT4ENdVkWRYowyS3xzAJkXPz6
 +1UxecelCR7MZLxLA2IX87PJNm9hOAz9ft8jsGeb6WGdu3rnIA8rm5OjRN728ECRamE8IHYhnc2
 D/cKiVNwROS/FF1bTE1xXkNdN4EP3fhpZHNfRuPcw+DwmWCvjG+DsegDOaWD+HpHfUtDYfo8c0j
 YyvVUGNBE0yKBEM=
X-Google-Smtp-Source: AGHT+IEHHi59KIELalKVi0SSpu22IzJ/OqzRB9H5Sn/pka41WXHDQ+FVRGII1g3V4/C/ecKCfg9cPQ==
X-Received: by 2002:a05:600c:4f86:b0:439:4499:54de with SMTP id
 5b1f17b1804b1-4396e77a052mr11257485e9.31.1739567529581; 
 Fri, 14 Feb 2025 13:12:09 -0800 (PST)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43959d3d5f3sm85733455e9.0.2025.02.14.13.12.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Feb 2025 13:12:09 -0800 (PST)
From: zimoun <zimon.toutoune@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Subject: Status wip-julia-update (was Re: bug#73197: [PATCH] gnu: julia:
 Update to 1.9.3.)
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN> <Zu_GE2mleWP15xOO@3900XT>
 <87frlw3q3o.fsf@HIDDEN> <87cygxvb47.fsf@HIDDEN>
 <87bjwa4lcb.fsf@HIDDEN> <87ikpc5z6g.fsf@HIDDEN>
Date: Fri, 14 Feb 2025 22:10:07 +0100
In-Reply-To: <87ikpc5z6g.fsf@HIDDEN> (Simon Tournier's message of "Fri, 14
 Feb 2025 16:22:15 +0100")
Message-ID: <865xlcgrm8.fsf_-_@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Efraim Flashner <efraim@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

On Fri, 14 Feb 2025 at 16:22, Simon Tournier <zimon.toutoune@HIDDEN> wro=
te:

> Well, I=E2=80=99ll (force) push shortly a trivial fix to the branch
> wip-julia-upgrade.

I did. \o/

And waiting the rebuild by ci.guix, I=E2=80=99m rebuilding some on my own. =
 And
I obverse weird behaviour=E2=80=A6

For example, on the top of 5f31ce18b3.

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build --no-grafts      \
     --without-tests=3Djulia-argcheck          \
     --without-tests=3Djulia-documenter        \
     --without-tests=3Djulia-genericschur      \
     --without-tests=3Djulia-static            \
     --without-tests=3Djulia-statsbase         \
     --without-tests=3Djulia-infinity          \
     --without-tests=3Djulia-pycall            \
     --without-tests=3Djulia-http              \
     --without-tests=3Djulia-staticarrays      \
     --without-tests=3Djulia-finitedifferences \
   julia-benchmarktools

/gnu/store/pdj7ilvyh4i96jd5av97vrlghpxc25ni-julia-benchmarktools-1.3.2
--8<---------------cut here---------------end--------------->8---

So far, so good!  Here all =E2=80=99without-tests=E2=80=99 are packages tha=
t need to be
updated or need a fix in their test suite=E2=80=93e.g., one test fails beca=
use
hardware or other as it happens time to time with Julia packages.

Now, let do the same but using the =E2=80=99julia=E2=80=99 package without =
its own
tests.  It should be pass, no?

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build --no-grafts      \
     --without-tests=3Djulia-argcheck          \
     --without-tests=3Djulia-documenter        \
     --without-tests=3Djulia-genericschur      \
     --without-tests=3Djulia-static            \
     --without-tests=3Djulia-statsbase         \
     --without-tests=3Djulia-infinity          \
     --without-tests=3Djulia-pycall            \
     --without-tests=3Djulia-http              \
     --without-tests=3Djulia-staticarrays      \
     --without-tests=3Djulia-finitedifferences \
   --without-tests=3Djulia                     \
   julia-benchmarktools=20

starting phase `precompile'
ERROR: LoadError: ArgumentError: Package Parsers [69de0a69-1ddd-5017-9359-2=
bf0b02dc9f0] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
--8<---------------cut here---------------end--------------->8---

Euh, I=E2=80=99m probably doing wrong something somewhere=E2=80=A6  But it =
does not jump
to my eyes what.  Any idea?

For the record, here the path:

    $ guix graph --path julia-benchmarktools julia-parsers
    julia-benchmarktools@HIDDEN
    julia-json@HIDDEN
    julia-parsers@HIDDEN

And note that julia-parsers is propagated by julia-json then
julia-benchmarktools propagates julia-json.

Therefore, the full =E2=80=99julia=E2=80=99 package finds julia-parsers but=
 not all the
same except running the =E2=80=99check=E2=80=99 phase of julia=E2=80=99.

What do I miss about package transformation?

That=E2=80=99s said, it=E2=80=99s weird behaviour because I also observe th=
e converse:
something that passes using --without-tests=3Djulia but fails with full
=E2=80=99julia=E2=80=99.

Bah=E2=80=A6 my creativity starts to be lacking=E2=80=A6

Cheers,
simon

PS: What about Nix?

1. I don=E2=80=99t clearly understand what they do.
2. So much Julia code=E2=80=A6 Hum, I=E2=80=99m not convinced that=E2=80=99=
s the way=E2=80=A6

https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/julia-modules
https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/compilers/jul=
ia




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 14 Feb 2025 18:08:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 14 13:08:39 2025
Received: from localhost ([127.0.0.1]:51655 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tj07C-0008El-TR
	for submit <at> debbugs.gnu.org; Fri, 14 Feb 2025 13:08:39 -0500
Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:58851)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <zimon.toutoune@HIDDEN>)
 id 1tj079-0008ES-W8
 for 73197 <at> debbugs.gnu.org; Fri, 14 Feb 2025 13:08:37 -0500
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4362bae4d7dso15104155e9.1
 for <73197 <at> debbugs.gnu.org>; Fri, 14 Feb 2025 10:08:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739556510; x=1740161310; darn=debbugs.gnu.org;
 h=mime-version:message-id:date:references:in-reply-to:subject:cc:to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=4qbvQhTIUAdQaxLAIQVw1oH0LlnRiHm38OMwTvLVnRY=;
 b=TEP8cE236USUg2MKhaBOjcEg9WqMhtpq0PKpEQMrS5DW3B6lukeNPxy6Vk19fGGTIW
 FSNOlMXAS1FiquSPYZ15iQA9Wd6P2ryORMqLFXGaqSUWtnnWBtyniaXdVAwsJCoCFZrM
 pQWtUg9OBRyWSnp0ox+ILNYB9uDpkCoySqjMRvftYanRMO3wnu6fQyewE9CkUUegVYK8
 E9N48R6hebF+5Yw0oz+W0MFyhVqTWp1dTVWOu4qH6xHKHwSnFjyr1X14dyFpNE+GR6RP
 EreTltn6lZ/80N3zLr89hc7j42atrV+lRuTKxUG38CRcsWbX6FZR/7ivfhaQeSGlqNMo
 EeIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739556510; x=1740161310;
 h=mime-version:message-id:date:references:in-reply-to:subject:cc:to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=4qbvQhTIUAdQaxLAIQVw1oH0LlnRiHm38OMwTvLVnRY=;
 b=bh4NcH18fvzkv/S/Eyl9L5NtXMRl5szVxl7w1ZMORzOrlCmCiYrimKddNGSX3KJWQr
 oaNnZLmaOX9pAvfD0RG359Q7snUlQnsro+XjW0qOIIWlU6fmgu8NK/hfrkp8OVuf00qC
 KKDbxvkTKR1ePff+nydvIwm7zJ8r9yP/oHHSBybrSWwOTHO3RDXePn2eOfAk/6NL7Exz
 H5eX/IMQcvxxC5uTTWBCDr4gfI2sHaC3tbqbVUm9YZXavgOKOfNZQamp0HBozZbnJ//c
 iSGAWbUproBGKqY+9qc0yCVtw0gkZ5Fb/xbvWdsyDnH40/Fx91avkod54QHFvaI2stZ3
 zKqA==
X-Gm-Message-State: AOJu0Yyu0O3/JqQdEYxwBoQME9LMV1XnFtw7UosHteSeMlaVqygLpomr
 umFXJJxxycj+Pzmvs2Pd+kYJtypjtFWqTIfEw2OsOQU9RPUKAF5q
X-Gm-Gg: ASbGncvX6OSSoWFBCO7OfRB3zY89cxpU9bJkca2Me6lvwmeCReJNXMwhqvW5oP1UE5z
 kH/Tz80AEgMOc/UQ+W8l2k1QxWsnDBr2cIUJLojN/cbiMlzzGM8iCt2setcmO/LRGqytEWaJFPn
 ydNy56jgHglARCNPxTD78lN4KSfVf3mdO1ehHVb+6/n3MbBy3P7Stz3BSq5scBAQzshmQ1JqXla
 luN2gfBbbavomi3o8l37rBhjKgHjul7dRxDVaxEocGZHwZ+e2kV5X577T0V7IJTn/uJK6qbP7QB
 h3Oq4uTQBhE2GGM=
X-Google-Smtp-Source: AGHT+IFtsF00qd2jHCze3E0bQuKJBl3rUgktmvxu8ThGC+g8spHtwcq+pzHNZBXXNjmPWTYx0606PA==
X-Received: by 2002:a05:600c:3593:b0:439:6dfc:232 with SMTP id
 5b1f17b1804b1-4396e6ca465mr3064605e9.8.1739556509280; 
 Fri, 14 Feb 2025 10:08:29 -0800 (PST)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4396180f199sm49907875e9.15.2025.02.14.10.08.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Feb 2025 10:08:28 -0800 (PST)
From: Simon Tournier <zimon.toutoune@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <87bjwa4lcb.fsf@HIDDEN>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN> <Zu_GE2mleWP15xOO@3900XT>
 <87frlw3q3o.fsf@HIDDEN> <87cygxvb47.fsf@HIDDEN>
 <87bjwa4lcb.fsf@HIDDEN>
Date: Fri, 14 Feb 2025 16:22:15 +0100
Message-ID: <87ikpc5z6g.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Efraim Flashner <efraim@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi,

On Mon, 13 Jan 2025 at 19:31, Simon Tournier <zimon.toutoune@HIDDEN> wro=
te:

> For the record, it=E2=80=99s about base/loading.jl:
>
> --8<---------------cut here---------------start------------->8---
>      try
>          toplevel_load[] =3D false
>          # perform the search operation to select the module file require=
 intends to load
> -        path =3D locate_package(pkg)
> +        path =3D locate_package(pkg, env)
>          if path =3D=3D=3D nothing
>              throw(ArgumentError("""
>                  Package $pkg is required but does not seem to be install=
ed:
> --8<---------------cut here---------------end--------------->8---

Welcome to a debugging session using the most advanced technique: print! :-)

Attached the base/loading.jl with many =E2=80=99println=E2=80=99.

Well, that=E2=80=99s very interesting because it seems related to some Julia
internals.  Somehow, the order of LOAD_PATH matters!

In all the dance, the code enters once and it founds it!

--8<---------------cut here---------------start------------->8---
ENTRY _require: Call locate_package( ConstructionBase [187b0558-2788-49d3-a=
be0-74a17ed4e7c9] , /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-julia-unitf=
ul-1.12.2/share/julia/loadpath/ )

[...]

RESULT _require: path =3D /gnu/store/yg4bz2kb7dqb6haaj0v7hj4mrd8rn27l-julia=
-constructionbase-1.3.0/share/julia/loadpath/ConstructionBase/src/Construct=
ionBase.jl
--8<---------------cut here---------------end--------------->8---

Then, it enters later with the same call=E2=80=A6 And bang!

--8<---------------cut here---------------start------------->8---
ENTRY _require: Call locate_package( ConstructionBase [187b0558-2788-49d3-a=
be0-74a17ed4e7c9] , /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-julia-unitf=
ul-1.12.2/share/julia/loadpath/ )

[...]

RESULT _require: path =3D nothing
ERROR: LoadError: ArgumentError: Package ConstructionBase [187b0558-2788-49=
d3-abe0-74a17ed4e7c9] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
--8<---------------cut here---------------end--------------->8---

What=E2=80=99s different?  The call loops over load_path(), something like:

--8<---------------cut here---------------start------------->8---
locate_package_env: START LOOP; over load_path() =3D ["/gnu/store/garmz1dz3=
82ib25p2ckl0kj9rjay4xd4-julia-unitful-1.12.2/share/julia/environments/v1.9/=
Project.toml", "/gnu/store/cp0fbzd4j1znnp4fjpsknap0ksnp2xk1-julia-1.9.3/sha=
re/julia/stdlib/v1.9", "/gnu/store/yg4bz2kb7dqb6haaj0v7hj4mrd8rn27l-julia-c=
onstructionbase-1.3.0/share/julia/loadpath/", "/gnu/store/garmz1dz382ib25p2=
ckl0kj9rjay4xd4-julia-unitful-1.12.2/share/julia/loadpath/"]

locate_package_env: loop =3D 1
locate_package_env: env =3D /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-jul=
ia-unitful-1.12.2/share/julia/environments/v1.9/Project.toml
locate_package_env: path =3D nothing

locate_package_env: loop =3D 2
locate_package_env: env =3D /gnu/store/cp0fbzd4j1znnp4fjpsknap0ksnp2xk1-jul=
ia-1.9.3/share/julia/stdlib/v1.9
locate_package_env: path =3D nothing

locate_package_env: loop =3D 3
locate_package_env: env =3D /gnu/store/yg4bz2kb7dqb6haaj0v7hj4mrd8rn27l-jul=
ia-constructionbase-1.3.0/share/julia/loadpath/
locate_package_env: path =3D /gnu/store/yg4bz2kb7dqb6haaj0v7hj4mrd8rn27l-ju=
lia-constructionbase-1.3.0/share/julia/loadpath/ConstructionBase/src/Constr=
uctionBase.jl
--8<---------------cut here---------------end--------------->8---

And for the second case, tandam!

--8<---------------cut here---------------start------------->8---
locate_package_env: START LOOP; over load_path() =3D ["/tmp/.julia/environm=
ents/v1.9/Project.toml", "/gnu/store/cp0fbzd4j1znnp4fjpsknap0ksnp2xk1-julia=
-1.9.3/share/julia/stdlib/v1.9", "/gnu/store/garmz1dz382ib25p2ckl0kj9rjay4x=
d4-julia-unitful-1.12.2/share/julia/loadpath/", "/gnu/store/yg4bz2kb7dqb6ha=
aj0v7hj4mrd8rn27l-julia-constructionbase-1.3.0/share/julia/loadpath/"]

locate_package_env: loop =3D 1
locate_package_env: env =3D /tmp/.julia/environments/v1.9/Project.toml
locate_package_env: path =3D nothing

locate_package_env: loop =3D 2
locate_package_env: env =3D /gnu/store/cp0fbzd4j1znnp4fjpsknap0ksnp2xk1-jul=
ia-1.9.3/share/julia/stdlib/v1.9
locate_package_env: path =3D nothing

locate_package_env: loop =3D 3
locate_package_env: env =3D /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-jul=
ia-unitful-1.12.2/share/julia/loadpath/
locate_package_env: path =3D nothing
locate_package_env: BREAK: /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-juli=
a-unitful-1.12.2/share/julia/loadpath/ =3D=3D /gnu/store/garmz1dz382ib25p2c=
kl0kj9rjay4xd4-julia-unitful-1.12.2/share/julia/loadpath/
locate_package_env:      : loading_extension =3D false
locate_package_env:      : precompiling_extension =3D false
locate_package_env: END LOOP

locate_package_env: pkg =3D ConstructionBase [187b0558-2788-49d3-abe0-74a17=
ed4e7c9]
locate_package_env: Sys.STDLIB =3D /gnu/store/cp0fbzd4j1znnp4fjpsknap0ksnp2=
xk1-julia-1.9.3/share/julia/stdlib/v1.9
locate_package_env: Call manifest_uuid_path( /gnu/store/cp0fbzd4j1znnp4fjps=
knap0ksnp2xk1-julia-1.9.3/share/julia/stdlib/v1.9 , ConstructionBase [187b0=
558-2788-49d3-abe0-74a17ed4e7c9] )
locate_package_env: mbypath =3D nothing String? false
locate_package_env: RETURN: path =3D nothing ; env =3D /gnu/store/garmz1dz3=
82ib25p2ckl0kj9rjay4xd4-julia-unitful-1.12.2/share/julia/loadpath/
locate_package: RETURN: nothing
_require: Post locate_package( ConstructionBase [187b0558-2788-49d3-abe0-74=
a17ed4e7c9] , /gnu/store/garmz1dz382ib25p2ckl0kj9rjay4xd4-julia-unitful-1.1=
2.2/share/julia/loadpath/ )
RESULT _require: path =3D nothing
--8<---------------cut here---------------end--------------->8---

The attentive reader notes that load_path() is a list of 4 elements =E2=80=
=93the
last contains what we want=E2=80=93 but a test breaks the loop.

Well, I do not know the details about the reasons of all that.  Maybe
something worth to ask upstream. :-)

Well, I=E2=80=99ll (force) push shortly a trivial fix to the branch
wip-julia-upgrade.=20

Cheers,
simon

PS:  For the record, some elements:

1. Checkout wip-julia-upgrade
2. cp $(./pre-inst-env guix build julia -S) /tmp/
3. Uncompress the source and copy (e.g., /home/simon/tmp/julia-1.9.3)
4. Tweak the base/loading.jl file (and other as base/initdefs.jl)
5. Use this source with:

    (source
     (local-file "/home/simon/tmp/julia-1.9.3"
                 #:recursive? #t))

6. guix shell -CPNWD guix --expose=3D/home/simon/tmp/=3D/home/simon/tmp/
7. Build: ./pre-inst-env guix build --no-grafts --without-tests=3Djulia jul=
ia
8. Tweak guix/build-system/julia-build-system.scm
9. Loop ./pre-inst-env guix build --no-grafts --without-tests=3Djulia julia=
-unitful

Hope that helps.

--

--=-=-=
Content-Type: text/x-diff; charset=utf-8
Content-Disposition: inline; filename=loading.diff
Content-Transfer-Encoding: quoted-printable
Content-Description: loading.diff

--- /tmp/julia-1.9.3/base/loading.jl	1970-01-01 01:00:01.000000000 +0100
+++ /home/simon/tmp/julia-1.9.3/base/loading.jl	2025-02-14 15:38:59.8790479=
68 +0100
@@ -391,6 +391,7 @@
 identify_package(name::String)                =3D _nothing_or_first(identi=
fy_package_env(name))
=20
 function locate_package_env(pkg::PkgId, stopenv::Union{String, Nothing}=3D=
nothing)
+    println("locate_package_env: ARGS: ", pkg, " , ", stopenv)
     cache =3D LOADING_CACHE[]
     if cache !=3D=3D nothing
         pathenv =3D get(cache.located, (pkg, stopenv), nothing)
@@ -399,6 +400,7 @@
     path =3D nothing
     env=E2=80=B2 =3D nothing
     if pkg.uuid =3D=3D=3D nothing
+        println("locate_package_env: Case: nothing... TODO")
         for env in load_path()
             env=E2=80=B2 =3D env
             # look for the toplevel pkg `pkg.name` in this entry
@@ -418,9 +420,18 @@
             end
         end
     else
+        println("locate_package_env: pkg =3D ", pkg)
+        println("locate_package_env: START LOOP; over load_path() =3D ", l=
oad_path())
+        #println("locate_package_env: number of loop", length(load_path))
+        loop =3D 1
         for env in load_path()
+            println("locate_package_env: loop =3D ", loop)
+            println("locate_package_env: env =3D ", env)
             env=E2=80=B2 =3D env
+            println("locate_package_env: Call manifest_uuid_path( ", env, =
" , ", pkg, " )")
             path =3D manifest_uuid_path(env, pkg)
+            println("locate_package_env: Post path =3D  manifest_uuid_path=
( ", env, " , ", pkg, " )")
+            println("locate_package_env: path =3D ", path)
             # missing is used as a sentinel to stop looking further down i=
n envs
             if path =3D=3D=3D missing
                 path =3D nothing
@@ -431,14 +442,27 @@
                 @goto done
             end
             if !(loading_extension || precompiling_extension)
+                stopenv =3D=3D env && println("locate_package_env: BREAK: =
", stopenv, " =3D=3D ", env)
+                stopenv =3D=3D env && println("locate_package_env:      : =
loading_extension =3D ", loading_extension)
+                stopenv =3D=3D env && println("locate_package_env:      : =
precompiling_extension =3D ", precompiling_extension)
                 stopenv =3D=3D env && break
             end
+            loop =3D loop + 1
         end
+        println("locate_package_env: END LOOP; No more env")
         # Allow loading of stdlibs if the name/uuid are given
         # e.g. if they have been explicitly added to the project/manifest
+        println("locate_package_env: pkg =3D ", pkg)
+        println("locate_package_env: Sys.STDLIB =3D ", Sys.STDLIB)
+        println("locate_package_env: Call manifest_uuid_path( ", Sys.STDLI=
B, " , ", pkg, " )")
         mbypath =3D manifest_uuid_path(Sys.STDLIB, pkg)
+        println("locate_package_env: Post mbypath =3D manifest_uuid_path( =
", Sys.STDLIB, " , ", pkg, " )")
+        println("locate_package_env: mbypath =3D ", mbypath, " String? ", =
mbypath isa String)
         if mbypath isa String
+            println("locate_package_env: Call entry_path( ", mbypath, " , =
", pkg.name, " )")
             path =3D entry_path(mbypath, pkg.name)
+            println("locate_package_env: Post path =3D entry_path( ", mbyp=
ath, " , ", pkg.name, " )")
+            println("locate_package_env: path =3D ", path)
             @goto done
         end
     end
@@ -446,6 +470,7 @@
     if cache !=3D=3D nothing
         cache.located[(pkg, stopenv)] =3D path, env=E2=80=B2
     end
+    println("locate_package_env: RETURN: path =3D ", path, " ; env =3D ", =
env=E2=80=B2)
     return path, env=E2=80=B2
 end
=20
@@ -464,7 +489,11 @@
 ```
 """
 function locate_package(pkg::PkgId, stopenv::Union{String, Nothing}=3Dnoth=
ing)::Union{Nothing,String}
-    _nothing_or_first(locate_package_env(pkg, stopenv))
+    println("locate_package: ARGS: ", pkg, " , ", stopenv)
+    println("locate_package: Call locate_package_env(", pkg, " , ", stopen=
v, " )")
+    ret =3D _nothing_or_first(locate_package_env(pkg, stopenv))
+    println("locate_package: RETURN: ", ret)
+    return ret
 end
=20
 """
@@ -581,9 +610,14 @@
 #  - `path`: the path of an explicit project file
 function env_project_file(env::String)::Union{Bool,String}
     @lock require_lock begin
+    println("env_project_file: ARGS: ", env)
     cache =3D LOADING_CACHE[]
     if cache !=3D=3D nothing
+        println("env_project_file: cache =3D ", cache)
+        println("env_project_file: cache.env_project_file =3D ", cache.env=
_project_file)
         project_file =3D get(cache.env_project_file, env, nothing)
+        println("env_project_file: project_file =3D ", project_file)
+        project_file =3D=3D=3D nothing || println("env_project_file: RETUR=
N: ", project_file)
         project_file =3D=3D=3D nothing || return project_file
     end
     if isdir(env)
@@ -596,6 +630,7 @@
     if cache !=3D=3D nothing
         cache.env_project_file[env] =3D project_file
     end
+    println("env_project_file: RETURN: ", project_file)
     return project_file
     end
 end
@@ -651,20 +686,31 @@
 end
=20
 function manifest_uuid_path(env::String, pkg::PkgId)::Union{Nothing,String=
,Missing}
+    println("manifest_uuid_path: ARGS: ", env, " , ", pkg)
+    println("manifest_uuid_path: Call env_project_file( ", env, " )")
     project_file =3D env_project_file(env)
+    println("manifest_uuid_path: Post project_file =3D env_project_file( "=
, env, " )")
+    println("manifest_uuid_path: project_file =3D ", project_file, " Strin=
g? ", project_file isa String)
     if project_file isa String
         proj =3D project_file_name_uuid(project_file, pkg.name)
         if proj =3D=3D pkg
             # if `pkg` matches the project, return the project itself
-            return project_file_path(project_file)
+            ret =3D project_file_path(project_file)
+            println("manifest_uuid_path: RETURN: (1) ", ret)
+            return
         end
         mby_ext =3D project_file_ext_path(project_file, pkg.name)
+        mby_ext =3D=3D=3D nothing || println("manifest_uuid_path: RETURN: =
(2) ", mby_ext)
         mby_ext =3D=3D=3D nothing || return mby_ext
         # look for manifest file and `where` stanza
-        return explicit_manifest_uuid_path(project_file, pkg)
+        ret =3D explicit_manifest_uuid_path(project_file, pkg)
+        println("manifest_uuid_path: RETURN: (3) ", ret)
+        return ret
     elseif project_file
         # if env names a directory, search it
-        return implicit_manifest_uuid_path(env, pkg)
+        ret =3D implicit_manifest_uuid_path(env, pkg)
+        println("manifest_uuid_path: RETURN: (4) ", ret)
+        return ret
     end
     return nothing
 end
@@ -1758,6 +1804,7 @@
=20
 # Returns `nothing` or the new(ish) module
 function _require(pkg::PkgId, env=3Dnothing)
+    println("_require: ARGS: ", pkg, " , ", env)
     assert_havelock(require_lock)
     # handle recursive calls to require
     loading =3D get(package_locks, pkg, false)
@@ -1772,7 +1819,10 @@
     try
         toplevel_load[] =3D false
         # perform the search operation to select the module file require i=
ntends to load
+        println("ENTRY _require: Call locate_package( ", pkg, " , ", env, =
" )")
         path =3D locate_package(pkg, env)
+        println("_require: Post locate_package( ", pkg, " , ", env, " )")
+        println("RESULT _require: path =3D ", path)
         if path =3D=3D=3D nothing
             throw(ArgumentError("""
                 Package $pkg is required but does not seem to be installed:

--=-=-=--




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 13 Jan 2025 18:31:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 13 13:31:31 2025
Received: from localhost ([127.0.0.1]:52834 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tXPDm-0004ER-OB
	for submit <at> debbugs.gnu.org; Mon, 13 Jan 2025 13:31:31 -0500
Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:52477)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <zimon.toutoune@HIDDEN>)
 id 1tXPDi-0004E9-Jc
 for 73197 <at> debbugs.gnu.org; Mon, 13 Jan 2025 13:31:27 -0500
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4363ae65100so48860745e9.0
 for <73197 <at> debbugs.gnu.org>; Mon, 13 Jan 2025 10:31:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1736793080; x=1737397880; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
 :reply-to; bh=AWmpX5oog6Im/ywgdyZtx5GztcbY/1j/EWwXyWBq9dM=;
 b=C4dqRrhlONwtlahzfjLbKl25oesGlom8e6MHKrH8JCUJ8flOInrvXwK2iK/u6tyUWA
 oPrBSgYIZmNsPsF0GteKPR5SmVXx8lM+Y5FHDkEFvlNPvv1dg6wb79KGLbHpxvDR1wFF
 DhpPIpcJBQMoWcQUTuBe8wr3ICSdRrhZMwc6xJw5c1bXQoxaZM3p59spHFDi6LTP8zN2
 5Pq+22V+GE1m+hxkIYeiQYUu7iYiBpmazVyVofCuceHZAVIGvOYWAc2P5BTQ3eEYOSgR
 aejWjmtRLWZAUc0xmS4c1dAo/MkZttr8S9e+Sd4sQFjRDVqCUoyRiWkBW+FnSTPpj3js
 3JiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736793080; x=1737397880;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=AWmpX5oog6Im/ywgdyZtx5GztcbY/1j/EWwXyWBq9dM=;
 b=D1sAI3OWcCDg2S2ecXomvZPhdkkTRHKN1giSqRKbZQ0CDVDlb5EoxYS6sC2sZXNaRI
 VZR+B98SWqtjTI+0hSi59QNznKdfYLS6AygKaxBlkeDMjwf9cPlAkehD0MdQLbLAYXPN
 Mhvyg761oWOANJg2sR6PEwUT27TKtTwv16ExRhWSqzNeMPOYxrySFZLQkZrLfinEhA8J
 WaOiGrJKHBpkYoFdSGQPMt+mKtNw47s6mqf+KYttebgWQ2nR2ZCuC3z7QDT19ReO2LCm
 CQ4xr0OjyOMIAXTgpKcqpmmQCFroRFD1+ou92AmIXANPd+cyCUWbIUQ04DhCmKyGdZyj
 I4VA==
X-Gm-Message-State: AOJu0YwVogD9Neta01ToCxSNJ+2o31G1lMJ3eolHab5ocx8SYU1e2tct
 F2Ysgep5Lu75tAtuuq3F/DqtycxrLTvqqYvnrk72Ytft3N8c1dWY
X-Gm-Gg: ASbGncs1dIiK+xPwY24ZQhcLcm5Df8Nv8UWImkgQUl3Juh1XaJRp0eU/HPz23x11SH0
 uhnpmHMcUL2JAem9ArcUlEEuXMJXuKfqF7A2AufzlMmEwDTqP8pDuVAFqsxq3iICo58jq9ZcTM5
 MnB8/S6TDshylzVU6QFOBVI8JxKcwzJy1tcw9KcR9Fc28ufC3bMAJcWz+XeJFjAYLVwKnx95K6J
 DS+a9uQz9DNTE1rzH8KSVJmoiMXAD7VDrK87ASejL9cZI2KugfCkqRU
X-Google-Smtp-Source: AGHT+IEtx0W/vhqR/Pri/JUAzwi6VgTh0HhG7DDs2aL5MQb6dYPmX2229gwQziReqyv/8MJjHw64FQ==
X-Received: by 2002:a05:600c:1e02:b0:434:f131:1e71 with SMTP id
 5b1f17b1804b1-436f04e048cmr122860005e9.8.1736793079704; 
 Mon, 13 Jan 2025 10:31:19 -0800 (PST)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-436e9dc895esm149707805e9.13.2025.01.13.10.31.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 13 Jan 2025 10:31:19 -0800 (PST)
From: Simon Tournier <zimon.toutoune@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <87cygxvb47.fsf@HIDDEN>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN> <Zu_GE2mleWP15xOO@3900XT>
 <87frlw3q3o.fsf@HIDDEN> <87cygxvb47.fsf@HIDDEN>
Date: Mon, 13 Jan 2025 19:31:16 +0100
Message-ID: <87bjwa4lcb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Efraim Flashner <efraim@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Ludo,

On Wed, 08 Jan 2025 at 11:44, Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN=
r> wrote:

> This branch is built already:
> <https://ci.guix.gnu.org/jobset/julia-upgrade>.

Thanks, cool!

>>> The problem is that the julia-build-system needs to be adapted to the
>>> newer versions of Julia.
>
> To be clear, the build failures here have to do with JULIA_LOAD_PATH or
> JULIA_DEPOT_PATH somehow not being set to the right value.  (That=E2=80=
=99s why
> roughly packages with no dependency other than Julia build fine, while
> those that depend on other julia-* packages fails to build.)

It appears to me more complicated than only JULIA_LOAD_PATH and/or
JULIA_DEPOT_PATH.  When I sent the email, I also was thinking something
in this area.  Then it took me some time to understand what=E2=80=99s wrong=
. :-)

For the record, it=E2=80=99s about base/loading.jl:

--8<---------------cut here---------------start------------->8---
     try
         toplevel_load[] =3D false
         # perform the search operation to select the module file require i=
ntends to load
-        path =3D locate_package(pkg)
+        path =3D locate_package(pkg, env)
         if path =3D=3D=3D nothing
             throw(ArgumentError("""
                 Package $pkg is required but does not seem to be installed:
--8<---------------cut here---------------end--------------->8---

My debugging session if someone has a good fix for that. :-) Well, I
instructed the =E2=80=99precompile=E2=80=99 phase of the julia-build-system=
 in order to
better see; here the trace:

--8<---------------cut here---------------start------------->8---
starting phase `precompile'
(init)JULIA_DEPOT_PATH: "/gnu/store/acvkqdyipdrsa5jrzb185ch37iyliw13-julia-=
1.9.3/share/julia/:/gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-constr=
uctionbase-1.3.0/share/julia/"
(init)JULIA_LOAD_PATH: "/gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-c=
onstructionbase-1.3.0/share/julia/loadpath/"
JULIA_DEPOT_PATH: "/gnu/store/acvkqdyipdrsa5jrzb185ch37iyliw13-julia-1.9.3/=
share/julia/:/gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-construction=
base-1.3.0/share/julia/:/gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-u=
nitful-1.12.2/share/julia/"
JULIA_LOAD_PATH: "/gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful=
-1.12.2/share/julia/loadpath/:/gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-j=
ulia-constructionbase-1.3.0/share/julia/loadpath/"
(before)DEPOT_PATH: ["/homeless-shelter/.julia", "/gnu/store/acvkqdyipdrsa5=
jrzb185ch37iyliw13-julia-1.9.3/local/share/julia", "/gnu/store/acvkqdyipdrs=
a5jrzb185ch37iyliw13-julia-1.9.3/share/julia", "/gnu/store/acvkqdyipdrsa5jr=
zb185ch37iyliw13-julia-1.9.3/share/julia/", "/gnu/store/iiykv7r9ckygxlz0qb9=
aag5zv317ffz9-julia-constructionbase-1.3.0/share/julia/", "/gnu/store/p6iq6=
pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12.2/share/julia/"]
(before)LOAD_PATH: ["@", "@v#.#", "@stdlib", "/gnu/store/p6iq6pkc04lj8c43n5=
a2s058s3ng6rkc-julia-unitful-1.12.2/share/julia/loadpath/", "/gnu/store/iiy=
kv7r9ckygxlz0qb9aag5zv317ffz9-julia-constructionbase-1.3.0/share/julia/load=
path/"]
IDENTIFY_PACKAGE_ENV: (ConstructionBase [187b0558-2788-49d3-abe0-74a17ed4e7=
c9], "/gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-constructionbase-1.=
3.0/share/julia/loadpath/")
LOCATE_PACKAGE: /gnu/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-construct=
ionbase-1.3.0/share/julia/loadpath/ConstructionBase/src/ConstructionBase.jl
DEPOT_PATH: ["/gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.1=
2.2/share/julia/", "/homeless-shelter/.julia", "/gnu/store/acvkqdyipdrsa5jr=
zb185ch37iyliw13-julia-1.9.3/local/share/julia", "/gnu/store/acvkqdyipdrsa5=
jrzb185ch37iyliw13-julia-1.9.3/share/julia", "/gnu/store/acvkqdyipdrsa5jrzb=
185ch37iyliw13-julia-1.9.3/share/julia/", "/gnu/store/iiykv7r9ckygxlz0qb9aa=
g5zv317ffz9-julia-constructionbase-1.3.0/share/julia/"]
LOAD_PATH: ["/gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12=
.2/share/julia/environments/v1.9/Project.toml", "/gnu/store/acvkqdyipdrsa5j=
rzb185ch37iyliw13-julia-1.9.3/share/julia/stdlib/v1.9", "/gnu/store/p6iq6pk=
c04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12.2/share/julia/loadpath/", "/gn=
u/store/iiykv7r9ckygxlz0qb9aag5zv317ffz9-julia-constructionbase-1.3.0/share=
/julia/loadpath/"]
PKG: Unitful [1986cc42-f94f-5a68-af5c-568840ba703d]
ENV: /gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12.2/share=
/julia/loadpath/
PATH: /gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12.2/shar=
e/julia/loadpath/Unitful/src/Unitful.jl
PKG: ConstructionBase [187b0558-2788-49d3-abe0-74a17ed4e7c9]
ENV: /gnu/store/p6iq6pkc04lj8c43n5a2s058s3ng6rkc-julia-unitful-1.12.2/share=
/julia/loadpath/
PATH: nothing
ERROR: LoadError: ArgumentError: Package ConstructionBase [187b0558-2788-49=
d3-abe0-74a17ed4e7c9] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
--8<---------------cut here---------------end--------------->8---

Indeed, it cannot find =E2=80=99ConstructionBase=E2=80=99 under the =E2=80=
=9Cenvironment=E2=80=9D of
=E2=80=99Unitful=E2=80=99 although it clearly appears both via LOAD_PATH
(JULIA_LOAD_PATH) and DEPOT_PATH (JULIA_DEPOT_PATH).  Well, Julia
package management is designed to have one central place (usually
~/.julia), arf!

I will try to be creative if no one beats me. :-)

To be continued=E2=80=A6

Cheers,
simon




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 8 Jan 2025 10:44:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 08 05:44:25 2025
Received: from localhost ([127.0.0.1]:46103 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tVTY0-0003jz-LC
	for submit <at> debbugs.gnu.org; Wed, 08 Jan 2025 05:44:24 -0500
Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:14623)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludovic.courtes@HIDDEN>)
 id 1tVTXx-0003jh-HV
 for 73197 <at> debbugs.gnu.org; Wed, 08 Jan 2025 05:44:23 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc;
 h=from:to:cc:subject:in-reply-to:references:date:
 message-id:mime-version:content-transfer-encoding;
 bh=hjzZrcJr299HdEmhTwsVs8EOIjwxaPhC5AkPQnVkjFI=;
 b=mJSB+/2hNXfL2inGAps8baorbCryOMddIAn727yK8zxvz3MxPr4E1bhg
 HVuoQLYvxgbgR/NTNOukWRY+tlhBbyTpZpkl4zKs7JB+f1pVqlb2ue3YV
 JsQ6NNpd4KK3DSDu9XcznRm6Y5la++9s6mTcXo29+NKkU3h69H+w9BijZ g=;
Authentication-Results: mail2-relais-roc.national.inria.fr;
 dkim=none (message not signed) header.i=none;
 spf=SoftFail smtp.mailfrom=ludovic.courtes@HIDDEN;
 dmarc=fail (p=none dis=none) d=inria.fr
X-IronPort-AV: E=Sophos;i="6.12,298,1728943200"; d="scan'208";a="202018472"
Received: from 91-160-117-201.subs.proxad.net (HELO ribbon) ([91.160.117.201])
 by mail2-relais-roc.national.inria.fr with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jan 2025 11:44:14 +0100
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludovic.courtes@HIDDEN>
To: Simon Tournier <zimon.toutoune@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <87frlw3q3o.fsf@HIDDEN> (Simon Tournier's message of "Mon, 06
 Jan 2025 16:43:23 +0100")
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN> <Zu_GE2mleWP15xOO@3900XT>
 <87frlw3q3o.fsf@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: Nonidi 19 =?utf-8?Q?Niv=C3=B4se?= an 233 de la
 =?utf-8?Q?R=C3=A9volution=2C?= jour du Marbre
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Wed, 08 Jan 2025 11:44:08 +0100
Message-ID: <87cygxvb47.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Efraim Flashner <efraim@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hello,

Simon Tournier <zimon.toutoune@HIDDEN> skribis:

> I am resuming this patch.  And I would like to have it merge before the
> end of this month.  In other words, I would like to mention this update
> in the Guix HPC annual report.

Excellent.  :-)

> Could we have a julia-team branch and that branch built by CI?  It would
> help by saving some resources.

This branch is built already:
<https://ci.guix.gnu.org/jobset/julia-upgrade>.

> From my numbers, ~230 Julia packages fail.  Over ~300 packages.

[...]

>> The problem is that the julia-build-system needs to be adapted to the
>> newer versions of Julia.

To be clear, the build failures here have to do with JULIA_LOAD_PATH or
JULIA_DEPOT_PATH somehow not being set to the right value.  (That=E2=80=99s=
 why
roughly packages with no dependency other than Julia build fine, while
those that depend on other julia-* packages fails to build.)

I=E2=80=99ve rebased the branch and added debugging helpers I was using.

Protip: when fiddling with the =E2=80=98julia=E2=80=99 package, use
=E2=80=98--without-tests=3Djulia=E2=80=99.  :-)

HTH!

Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 6 Jan 2025 15:44:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 06 10:44:31 2025
Received: from localhost ([127.0.0.1]:39720 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tUpHL-0003MF-F6
	for submit <at> debbugs.gnu.org; Mon, 06 Jan 2025 10:44:31 -0500
Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:61678)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <zimon.toutoune@HIDDEN>)
 id 1tUpHJ-0003M2-5X
 for 73197 <at> debbugs.gnu.org; Mon, 06 Jan 2025 10:44:30 -0500
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43675b1155bso137893325e9.2
 for <73197 <at> debbugs.gnu.org>; Mon, 06 Jan 2025 07:44:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1736178268; x=1736783068; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
 :reply-to; bh=GAomBWfHGH/E2jG+DOhTv1GbO8C61QUu33KPXLerHzM=;
 b=GP8tidYozIzIebZQPGY0EY70sv4/M2yEH/ATTVgm97JV0a7Djf9RXvKQqZbyP3D9RS
 P1xcVzaDhxR4taV9Fb1nNSGuPxwXw9TvxIib7NRWMxpjrTrJQ6tZzczWjlub18jaGlZb
 Sx3IZbuehM1i3WTjbPozpC9SOFPqOP20v9v/GkQly3fGwVVVj0CvxYRnm4p195rosiym
 NAsioKbvTCBG1tqIIHl/c7IjcCZO6hXly0hdpCOaJB7glWUrutNyGe6NvDMsC2k3eyCi
 FhrZzfuYeESnATbeKLJvJkO/SW3FnbtCnLee3gztSlTx90o+qXIwfTV3zbF1LWDDi6f3
 aquw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1736178268; x=1736783068;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=GAomBWfHGH/E2jG+DOhTv1GbO8C61QUu33KPXLerHzM=;
 b=qRkY/wq6pdmrDWlONAR2MfkGYFicqgq56PMLoiDO9qpE8impeQeem+fafT2CTENcgL
 2ZA9lQVlmjVf2jV5Bs5rp0TjIKwXHRRdhIK8YzHSSqoOteoZH4F9UpKcnaAKo2rejb0S
 FXM7pRN1Eqk/cj2QkQiNxtbYP3blZHADGQKwjQn3cruOtKlylMBSY10PrwSAiYoCSNrH
 TigG9Uq7R7agNIlRNsy+3RqTSc1JgWK/0bn+KtXUUp8UI+/J/4yBfIHNO0464ZcQ3+9A
 dUQh/Uqzoao8uyIYQ6f9WbUONY6q7rJJ6bnKaFuX06iYHzKvhjGb91JhJsuEJwF8v4MT
 /I/A==
X-Gm-Message-State: AOJu0YyS/THh+8yXZHBr/nkp0zA5Sd9UtHIc0uBFgAFopmGCp0Qeelam
 TR4N936+FBBOKds70azL3BON1b2aLFoZW4gajT6LoJeG5NYAa4ql
X-Gm-Gg: ASbGncsIYJx8REa9x6FkZgeqN2zv35CHJ0zcGL4KJcVoTEKh2PSrqlfuLeKY7SA3hvT
 B6RYZYHQZEDkrCCUAzVjAUertdaB5cDUvgfo9h8PTxlUWIWdT6xc0djlFC22yyZgK2HofX0kb9j
 7NOtYb0yZgcwb3LgocfC10T9B38paBGdWh+kLl/MJQTHAVAU7khUlWfo1GmwKTVR22rWlictBfG
 hJK3yRlxuOa96SrJvqRr7MAoBfyTMCx0Vh9nY9AwgT+wnlKdnXvB88c
X-Google-Smtp-Source: AGHT+IEvpOR/s1Kx3YuAGM4KFF6SFwNgK2IVVn25+yAyzTbi84qaqGr3CAd80kcvbfoEm+aiuwrnzg==
X-Received: by 2002:a05:600c:154a:b0:434:fd15:3adc with SMTP id
 5b1f17b1804b1-43668b786bamr442297455e9.25.1736178267598; 
 Mon, 06 Jan 2025 07:44:27 -0800 (PST)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4366127c488sm571090085e9.27.2025.01.06.07.44.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 06 Jan 2025 07:44:27 -0800 (PST)
From: Simon Tournier <zimon.toutoune@HIDDEN>
To: Efraim Flashner <efraim@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <Zu_GE2mleWP15xOO@3900XT>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN> <Zu_GE2mleWP15xOO@3900XT>
Date: Mon, 06 Jan 2025 16:43:23 +0100
Message-ID: <87frlw3q3o.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

I am resuming this patch.  And I would like to have it merge before the
end of this month.  In other words, I would like to mention this update
in the Guix HPC annual report.

On Sun, 22 Sep 2024 at 10:24, Efraim Flashner <efraim@HIDDEN> wrote:

>> > Let me take a look at those failure to see how bad it is.

Could we have a julia-team branch and that branch built by CI?  It would
help by saving some resources.

From my numbers, ~230 Julia packages fail.  Over ~300 packages.


>> I would suggest to have julia-next.

[...]

>> Users willing stable just install =E2=80=99julia=E2=80=99 and =E2=80=99j=
ulia-=E2=80=99 packages.
>> Adventurous users install =E2=80=99julia-next=E2=80=99 and =E2=80=99juli=
a-*-next=E2=80=99.

> The problem is that the julia-build-system needs to be adapted to the
> newer versions of Julia.

Yes, you have the same with all *-next =E2=80=9Ccompilers=E2=80=9D applied =
to their
packages: emacs-next, ghc-next, guile-next or python-next.  Somehow,
there is no guarantee that the python-build-system works equally for
both python and python-next, and there is no guarantee neither that
python-* packages build with python-next as Python =E2=80=9Ccompiler=E2=80=
=9D.

Somehow, there is the stable and the adventurous. :-)

Well, let keep that aside and let rediscuss it again for Julia 1.10 or
1.11 and let focus on making Julia 1.9.3 the default.

Please note that we already have a Julia package that=E2=80=99s half packag=
ed:
julia-precompiletools.  The test suite fails because the
julia-build-system has not been adapted yet. :-)

Cheers,
simon




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 22 Sep 2024 07:25:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 22 03:25:36 2024
Received: from localhost ([127.0.0.1]:40775 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ssGyO-0008De-92
	for submit <at> debbugs.gnu.org; Sun, 22 Sep 2024 03:25:36 -0400
Received: from mail-wm1-f48.google.com ([209.85.128.48]:57789)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <efraim.flashner@HIDDEN>) id 1ssGyL-00088Q-P8
 for 73197 <at> debbugs.gnu.org; Sun, 22 Sep 2024 03:25:34 -0400
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-42e5e1e6d37so32550185e9.3
 for <73197 <at> debbugs.gnu.org>; Sun, 22 Sep 2024 00:25:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1726989846; x=1727594646; darn=debbugs.gnu.org;
 h=in-reply-to:content-disposition:mime-version:references
 :mail-followup-to:message-id:subject:cc:to:from:date:sender:from:to
 :cc:subject:date:message-id:reply-to;
 bh=9qHbfqgTICcRjvNzoZhXlxjr7dshN8sS1AXxF+vWcwo=;
 b=fwUMe5t8cwocJfavZHoo9Qgq1lsiOLuLw8vELXVXBcqfPOAlXyvtVq44E3iNagc10O
 KzjRg5kVaijUmSUI8HZaQ6wGgtd+UgE/xb4SWxJ4fHhd2yiDkXYqe7DI3+VE6Wzpmacy
 AIbKDIQd6r3U2ly6kUV8Z59Rck3QpsRsp3AfocGgfktZavOtEJrp7YRdvlcDRr2iPRJl
 cKY4gZnA7P4S2HIVptoWQ1Slt97OKhoB5qu6UrzyDQziPp+0T+R9cijxCtPDZE12h19r
 GrVvE7icVoGRABa0xbP/dQZrFnVVHc8mkA+FtRrsSaYGNhw7+Cx+ddkn4IwuKgfsDM11
 0PHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1726989846; x=1727594646;
 h=in-reply-to:content-disposition:mime-version:references
 :mail-followup-to:message-id:subject:cc:to:from:date:sender
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=9qHbfqgTICcRjvNzoZhXlxjr7dshN8sS1AXxF+vWcwo=;
 b=TFWWtU6rU+xFCHRhC9bpoibu3agNz40/IY8y+zngxEQtEEj9opjnzdqB5M7bfYWwlj
 aEtuQcLPyJWeoIpcfqLMXl3ZKgod8y32posnl3Wv4gtEkW9gifaen05nNontWNb/cLXQ
 fxaQU1+PKjZid2NwyHMaWmy6LBTGQtt0btgCpwxEDErzFVu6mR7H02Cs8OUhHxIlnLKE
 n60XVEqARdv0fw14Q0XfW94QlEoQsbcgjc0uEWY822zsutkzdsoBBjLUgnr0HiUJpYNX
 DKvZMXCLtcW4IJwK+L0Kr/qqv6PvXIuXp8Ce0YyAt2btPiQUaiePg6vJnFrvrUt/vJrV
 XbhQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCWAS53AQRKnj7ED36EGW9s0OZhwgw6eitigJYiFPhbLmuu4JK6Mr7swLB/UFN1iKO3elTZtkQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyUyG7mTXsLMpa01U4+D/J4nI9/gRt4NnroUkrkKODatj5hXmbb
 gb7X5/p6vMYHsuNFTDov4kBMxLfdRjGHRU/ts/vcWYvR3kJw825a
X-Google-Smtp-Source: AGHT+IGjsFQL6oxpDwDx8g3wxiZvmJQF2W0ePnSB6f2p0GKu++AfomVRKLZVG58yAaNKxQEgTUYHew==
X-Received: by 2002:a05:600c:1c01:b0:42c:b9c8:2bb0 with SMTP id
 5b1f17b1804b1-42e7c159c17mr49548025e9.4.1726989845852; 
 Sun, 22 Sep 2024 00:24:05 -0700 (PDT)
Received: from localhost ([141.226.162.35]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-42e754c643csm93730925e9.45.2024.09.22.00.24.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 22 Sep 2024 00:24:04 -0700 (PDT)
Date: Sun, 22 Sep 2024 10:24:03 +0300
From: Efraim Flashner <efraim@HIDDEN>
To: Simon Tournier <zimon.toutoune@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
Message-ID: <Zu_GE2mleWP15xOO@3900XT>
Mail-Followup-To: Efraim Flashner <efraim@HIDDEN>,
 Simon Tournier <zimon.toutoune@HIDDEN>,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>,
 73197 <at> debbugs.gnu.org,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
 <87a5g2tkbe.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature"; boundary="oGqg2jESDE9FkaA8"
Content-Disposition: inline
In-Reply-To: <87a5g2tkbe.fsf@HIDDEN>
X-PGP-Key-ID: 0x41AAE7DCCA3D8351
X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc
X-PGP-Fingerprint: A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)


--oGqg2jESDE9FkaA8
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Sep 20, 2024 at 05:29:41PM +0200, Simon Tournier wrote:
> Hi Ludo,
>=20
> On lun., 16 sept. 2024 at 11:47, Ludovic Court=C3=A8s <ludo@HIDDEN> wrot=
e:
>=20
> > I would hope we can migrate straight to 1.9, but if that=E2=80=99s too =
tricky, I
> > agree we should follow the plan you describe.
> >
> > Let me take a look at those failure to see how bad it is.
>=20
> I would suggest to have julia-next.
>=20
> And some =E2=80=99package-with-julia=E2=80=99 transformation similar as
> package-with-python or package-with-ocaml.
>=20
> Somehow, that=E2=80=99s always painful to upgrade Julia because of the Ju=
lia
> world rebuild and some (more than some?) package breakages.
>=20
> That way it would easier to have the CI following the branch team-julia
> where regular package would go, as well as julia-next upgrade.  And the
> manifest could build both set of packages (julia and julia-next) using
> the transformation.
>=20
> Users willing stable just install =E2=80=99julia=E2=80=99 and =E2=80=99ju=
lia-=E2=80=99 packages.
> Adventurous users install =E2=80=99julia-next=E2=80=99 and =E2=80=99julia=
-*-next=E2=80=99.
>=20
> WDYT?

The problem is that the julia-build-system needs to be adapted to the
newer versions of Julia. IMO the benefit of having Julia and Julia-next
is that the julia-* packages are packaged, but those needing a newer
version of Julia can still get it from Guix. Then when we adapt the
julia-build-system we can deprecate julia-next, or have it point to the
next release.

--=20
Efraim Flashner   <efraim@HIDDEN>   =D7=A8=D7=A0=D7=A9=D7=9C=D7=A4 =
=D7=9D=D7=99=D7=A8=D7=A4=D7=90
GPG key =3D A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

--oGqg2jESDE9FkaA8
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmbvxg8ACgkQQarn3Mo9
g1FfbRAAkAFeZXujUPsuzrX4nT5GuBvupX+VXjyfkEX7GFQMAa8cYFmFepzISYkz
asN8hucYvBeqpqQAq99BCpwN0BCZ7japoaZg8Qtf6PS11VYOTrhzWKTqnUyIhG7d
tixTPu66sg4tDhoUMxhWvzC8JIP7jux0IPAMl9ffE0cnmCkUrEiRacY96YCoVIgH
m5I8UU5O+8yybfAIcT03T1tQJIP7MqlabEjQ3+9pTpOdFeiyXGoRGfXGwy14EmMo
w0UaFgUhCdjaT4r8mw1w7/Yr4tyulxz35M45jt+uNbojta83/YyNBaKIQBmhQOby
xdCNgooqdSgqpQXbdEGqz9CJ6j0HAM11WaiGEJKRKT/T4RSYfUp2Uuluy1mUxFAo
bM7QIbzp6FQbjsZofcuEZorXcnDsZETV0ab085zmpjPM4qW1fyjKpL81qgleClMd
tKLS56Qt4pUThLwggwzXVfCTwvEJ7lHWPfwigw0tbP96r8iEojss54wQxjnKPTM6
CrPDYi2jwtanwbPH5uARra5tbXvQr9e42ill0TF6P4yPfVcf4wDETin6xlsR8ieG
9aGWQ2ryJdw+oQCP7ySn5yTLigDTiQvplp2eooTtie4sz62BX2Hd3hrst7PusNBX
Vg0k3D6EjLQtWkB56/pJkXXbBIE9M3PMEYyta6hF/Z14Nzbe+gU=
=OmET
-----END PGP SIGNATURE-----

--oGqg2jESDE9FkaA8--




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 20 Sep 2024 16:11:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 20 12:11:43 2024
Received: from localhost ([127.0.0.1]:36148 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1srgER-000414-GS
	for submit <at> debbugs.gnu.org; Fri, 20 Sep 2024 12:11:43 -0400
Received: from mail-wm1-f44.google.com ([209.85.128.44]:47205)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zimon.toutoune@HIDDEN>) id 1srgEE-0003zY-Tp
 for 73197 <at> debbugs.gnu.org; Fri, 20 Sep 2024 12:11:31 -0400
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-42cc8782869so19827555e9.2
 for <73197 <at> debbugs.gnu.org>; Fri, 20 Sep 2024 09:11:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1726848606; x=1727453406; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
 :reply-to; bh=vJDj0x2MjrCCgPQD6GZhJo9jxx2TMb7MgHsGmg7EEGQ=;
 b=LZf3Avo70F9YAjxkxBWArMe58KeQ57tmHmCMFrez4WQdEfpO9abGcGZ1MBLA/+Dgqe
 +YLk+TOIBOdo3kHCVtVIhr8lNttwzo/WX408JwEdU/1HKgxEv7uFTKJ6N6BbujsdlW3X
 9mIZXlwmoe5quujWsr7InXExmDTtBIXrGYOUpOIbcTXHgx6CaxkMQw0g9sMqFVYEw0BR
 8KjFAzQJx1rbkMlc3bnVDxqTpWme07kU04O/QatM3gLF5XysKn1SRCqPtuonlmgzyaov
 YIcBIHpe1M6rSHIWD6mzMQSBTHgCBB+2/eoqWp48qtdIK+syjxk3aJfUzel1dKIphc5f
 eIhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1726848606; x=1727453406;
 h=content-transfer-encoding:mime-version:message-id:date:references
 :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=vJDj0x2MjrCCgPQD6GZhJo9jxx2TMb7MgHsGmg7EEGQ=;
 b=EqiVf0GalOEnlPc55viC6nis8ANB17P5piFlxWf1DUFsmFaSm9v8hdFgoBHMQMSwRN
 ualPbVyXuWqw2cNWTshjeE+3d2P28k3b1G9xh3R1x3Ur2+fr7AaOT5YvQxe2vOg3sLdf
 D09aVJMcqxCB/1psVkWUcFpxs4XOtWo6tcKaF/5AZ11Ndi9mwMzWYpQKhVjHN0C314VK
 mQlofQ1Oa+0KmmGefhRR8/chHC8OVv/YKUL+6XkpfsYAdBlVKeC9x59O6t8hhRIvER1s
 YOIsUv2LWxhDaZCnrYX9wKRyyP0WvL6wXn4IODf3Saa1VzUU0N/mmH6UbIeapktYru5a
 SIiw==
X-Gm-Message-State: AOJu0YzbKZRMbWtdVAwK1BplpTVnrr72x9nCgbCfJmcLUSb4k8re3Ee2
 8XgUS4ErjBGRBuKeOmEHVI1owvUhHUuHo8R98vMzyi0vcmDJ7FD3
X-Google-Smtp-Source: AGHT+IHGpaukBFvThKqpYLshT8X79JNefqIAQMFuOGT4FBoDFtERGA287eCPjdaOyrQgP6cUf9aTIA==
X-Received: by 2002:a05:600c:3516:b0:42c:b9c7:f54b with SMTP id
 5b1f17b1804b1-42e7ac32ea7mr28814155e9.16.1726848606015; 
 Fri, 20 Sep 2024 09:10:06 -0700 (PDT)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-42e754a6d46sm55026735e9.36.2024.09.20.09.10.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Sep 2024 09:10:05 -0700 (PDT)
From: Simon Tournier <zimon.toutoune@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Efraim Flashner
 <efraim@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <87ed5k7wx5.fsf@HIDDEN>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT> <87ed5k7wx5.fsf@HIDDEN>
Date: Fri, 20 Sep 2024 17:29:41 +0200
Message-ID: <87a5g2tkbe.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Ludo,

On lun., 16 sept. 2024 at 11:47, Ludovic Court=C3=A8s <ludo@HIDDEN> wrote:

> I would hope we can migrate straight to 1.9, but if that=E2=80=99s too tr=
icky, I
> agree we should follow the plan you describe.
>
> Let me take a look at those failure to see how bad it is.

I would suggest to have julia-next.

And some =E2=80=99package-with-julia=E2=80=99 transformation similar as
package-with-python or package-with-ocaml.

Somehow, that=E2=80=99s always painful to upgrade Julia because of the Julia
world rebuild and some (more than some?) package breakages.

That way it would easier to have the CI following the branch team-julia
where regular package would go, as well as julia-next upgrade.  And the
manifest could build both set of packages (julia and julia-next) using
the transformation.

Users willing stable just install =E2=80=99julia=E2=80=99 and =E2=80=99juli=
a-=E2=80=99 packages.
Adventurous users install =E2=80=99julia-next=E2=80=99 and =E2=80=99julia-*=
-next=E2=80=99.

WDYT?

Cheers,
simon




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 16 Sep 2024 09:47:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 16 05:47:30 2024
Received: from localhost ([127.0.0.1]:51133 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sq8KQ-0004Op-2B
	for submit <at> debbugs.gnu.org; Mon, 16 Sep 2024 05:47:30 -0400
Received: from eggs.gnu.org ([209.51.188.92]:37072)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sq8KN-0004OW-6R
 for 73197 <at> debbugs.gnu.org; Mon, 16 Sep 2024 05:47:28 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sq8K2-00029A-Nu; Mon, 16 Sep 2024 05:47:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=Ga92Z4RfufvDtmtoTdxynfYdg3vKVoIL523owd9JPnw=; b=dZJEfHzvM2BUIKXeUUMG
 SDdXZkyd1allLhNZi6sFkBx+VLzWDYX9/RWtH2obg3akzdopmSjvM3C2RaSpl8mGT3PazwQAM3v9o
 HMVYcWOaSWGElcIhS+9u4dKX4Z4LMSJUxt3Lea/IiKZqHWd+t2ZilbX7BMZjh6Q66+y7SbuLD4xVe
 fpZKLHpuZlAhcUMxeMpua4d6w/UxaZV255uHzbcdHfFX7UZJ7Uswld95831zrZD1wGVlYJHqYoAmf
 cJc22gYHnN/EjMRwwtGqcOdZb1fR75rehfltoXsOPtC6E2icIet5fDor/TGxtWEjvUqocFiID+OPH
 hVq5+SJU8IvQvA==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Efraim Flashner <efraim@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
In-Reply-To: <ZufjPjnj4aZbjxiV@3900XT> (Efraim Flashner's message of "Mon, 16
 Sep 2024 10:50:22 +0300")
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
 <ZufjPjnj4aZbjxiV@3900XT>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: Primidi 1 jour =?utf-8?Q?compl=C3=A9mentaire?= an 232
 de la =?utf-8?Q?R=C3=A9volution=2C?= jour de la Vertu
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Mon, 16 Sep 2024 11:47:02 +0200
Message-ID: <87ed5k7wx5.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org, Philippe Virouleau <philippe.virouleau@HIDDEN>,
 Simon Tournier <zimon.toutoune@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hey Efraim,

Efraim Flashner <efraim@HIDDEN> skribis:

> I tested it out on my machines and it built without problems on x86_64
> and aarch64. However, I was unable to compile the julia packages we have
> when there were some julia inputs.
>
> Do we want to add it in as julia-next, and then we can continue pushing
> the version forward and working on the package build failures separately?

Oh, good question.  I was hoping to get some testing from
ci.guix.gnu.org but it hasn=E2=80=99t happened yet (I added a jobset but
apparently that didn=E2=80=99t work).

I would hope we can migrate straight to 1.9, but if that=E2=80=99s too tric=
ky, I
agree we should follow the plan you describe.

Let me take a look at those failure to see how bad it is.

Thanks,
Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at 73197 <at> debbugs.gnu.org:


Received: (at 73197) by debbugs.gnu.org; 16 Sep 2024 07:51:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 16 03:51:46 2024
Received: from localhost ([127.0.0.1]:51028 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sq6WP-0006bI-J3
	for submit <at> debbugs.gnu.org; Mon, 16 Sep 2024 03:51:45 -0400
Received: from mail-wm1-f46.google.com ([209.85.128.46]:47452)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <efraim.flashner@HIDDEN>) id 1sq6WN-0006b4-It
 for 73197 <at> debbugs.gnu.org; Mon, 16 Sep 2024 03:51:44 -0400
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-42cbb08a1a5so40625785e9.3
 for <73197 <at> debbugs.gnu.org>; Mon, 16 Sep 2024 00:51:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1726473025; x=1727077825; darn=debbugs.gnu.org;
 h=in-reply-to:content-disposition:mime-version:references
 :mail-followup-to:message-id:subject:cc:to:from:date:sender:from:to
 :cc:subject:date:message-id:reply-to;
 bh=HmJDZo1EVRgaZef7CAHkYsAOm0Je5CMAjvRpsHN8tN0=;
 b=Op08F+6LsN2U+zdbUw8DdWQJBSX4X1rFtDqaQTMSaafBe5NL42OCpci6cZb7IAlOs9
 ZT8vbnkBstDj6uJ5Ghrk06Yb5Z8DOE4w4c5vFhqUhesq3wbfG8TfZHjtuDmPQuVp6aKz
 rzidnxQmf0AQbyGP8tLjg7DB5ccie4NtSPa/u/i5vOI7Qj5gBVHxCPa/jqr9gXZ28KdR
 b0pdeW1w64MvihdstlFf45OlI8lt013ar1cKyfsAV6erPunq0hZbfPD7lyr9Jto5dTRm
 IsM2+3muOUbV9tUh/odLIBki8/p7h836mKUJTJREb4pd1K2+yG/o/zuZPCk3TqpFX+jl
 +Ntg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1726473025; x=1727077825;
 h=in-reply-to:content-disposition:mime-version:references
 :mail-followup-to:message-id:subject:cc:to:from:date:sender
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=HmJDZo1EVRgaZef7CAHkYsAOm0Je5CMAjvRpsHN8tN0=;
 b=ReYhEyE25nDMY+UTwK1jbMP54pesQhiJ8+Fdu4MbY6cfsr41BsGc3ODxP3bPtrlXd0
 JktFG69348CNDEYOYOIVfSHSaquAZ/4EgOKICRRwtJRJbb6g1tLXe75lgBgmFzClViyr
 ea2Vc96Y2mVaKD6hVeNF01Mb+s7QGKBKkwYamXPVAwmg8+4vVVtcXtauJTlMaltyffSC
 Y8laG6QT0Aja7nUb9C/2oT5pibYvQk4VYVD8lq6WoQ+GjYxgFh7tGR/oOApapLqzI/RL
 9OCY5t4WTR6u5WGYXSFbWjTqha+Z59r6pf+nqeuVJdM0bufQnu/c/p/+vaslqks8KXtH
 ZacA==
X-Gm-Message-State: AOJu0YwAeCFuahaU3QtQxDLBO0jhUhE73KTzzMw9j6TEYpa2rOvXPfv2
 U1+B08YDCNn4EnSijrSdSnSYFlsZuwk169uUOJL5tvIqKMlVRNss
X-Google-Smtp-Source: AGHT+IEm9SpDjlsY6caZ7msWxQDWPuKa2fMnXct1kbdfbJAiW0BJIVAhgCiLT1ZuPa8hKTrnvzgLkg==
X-Received: by 2002:a05:6000:12cb:b0:371:8c75:a085 with SMTP id
 ffacd0b85a97d-378c2d579aamr7158517f8f.58.1726473024402; 
 Mon, 16 Sep 2024 00:50:24 -0700 (PDT)
Received: from localhost ([141.226.162.35]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-42da22db2bdsm68721465e9.20.2024.09.16.00.50.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 16 Sep 2024 00:50:23 -0700 (PDT)
Date: Mon, 16 Sep 2024 10:50:22 +0300
From: Efraim Flashner <efraim@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Subject: Re: [bug#73197] [PATCH] gnu: julia: Update to 1.9.3.
Message-ID: <ZufjPjnj4aZbjxiV@3900XT>
Mail-Followup-To: Efraim Flashner <efraim@HIDDEN>,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>,
 73197 <at> debbugs.gnu.org,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>,
 Simon Tournier <zimon.toutoune@HIDDEN>
References: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature"; boundary="RDlqk/WpWgGx5knI"
Content-Disposition: inline
In-Reply-To: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
X-PGP-Key-ID: 0x41AAE7DCCA3D8351
X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc
X-PGP-Fingerprint: A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73197
Cc: 73197 <at> debbugs.gnu.org,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>,
 Simon Tournier <zimon.toutoune@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)


--RDlqk/WpWgGx5knI
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Sep 12, 2024 at 03:22:50PM +0200, Ludovic Court=C3=A8s wrote:
> From: Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN>
>=20
> * gnu/packages/julia.scm (julia): Update to 1.9.3.
> [arguments]: Use gexps.
> [inputs, native-inputs]: Remove labels.
> * gnu/packages/llvm.scm (llvm-julia): Rename to=E2=80=A6
> (llvm-14-julia): =E2=80=A6 this.  Upgrade to 14.0.6-3.
> * gnu/packages/patches/julia-1.9-build-tweaks.patch: New file.
> * gnu/packages/patches/julia-Use-MPFR-4.2.patch: Remove.
> * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
>=20
> Co-authored-by: Philippe Virouleau <philippe.virouleau@HIDDEN>
> Change-Id: I6ef35c6cd31741a7725b50364dd0f8fa6a0c6424
> ---
>  gnu/local.mk                                  |   2 +-
>  gnu/packages/julia.scm                        | 862 ++++++++++--------
>  gnu/packages/llvm.scm                         |  38 +-
>  .../patches/julia-1.9-build-tweaks.patch      | 152 +++
>  gnu/packages/patches/julia-Use-MPFR-4.2.patch | 228 -----
>  5 files changed, 651 insertions(+), 631 deletions(-)
>  create mode 100644 gnu/packages/patches/julia-1.9-build-tweaks.patch
>  delete mode 100644 gnu/packages/patches/julia-Use-MPFR-4.2.patch
>=20
> Hello comrades!
>=20
> Here is an update of Julia adapted from:
>=20
>   https://gitlab.inria.fr/guix-hpc/guix-hpc/-/commit/eb83e466fe0b9492216a=
bc46da26ec3a89b0a946
>=20
> Version 1.9.3 has been in the guix-hpc channel for a while.  It=E2=80=99s=
 not
> the latest version, not even the latest series, but it=E2=80=99s an impro=
vement
> over what we have.
>=20
> Thoughts?
>=20
> Ludo=E2=80=99.

I tested it out on my machines and it built without problems on x86_64
and aarch64. However, I was unable to compile the julia packages we have
when there were some julia inputs.

Do we want to add it in as julia-next, and then we can continue pushing
the version forward and working on the package build failures separately?

--=20
Efraim Flashner   <efraim@HIDDEN>   =D7=A8=D7=A0=D7=A9=D7=9C=D7=A4 =
=D7=9D=D7=99=D7=A8=D7=A4=D7=90
GPG key =3D A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

--RDlqk/WpWgGx5knI
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmbn4zoACgkQQarn3Mo9
g1GwfA//XljHqoXqbjGgiK5fLu5sK2ZUZvRcj+iAMhk+EQUZFXYk3qL0W0sJC+Mj
J7ktRRyMz+6VxX68sXbWNhHUj3UOW+Uk6OdHdFAfeimYyXQmcG3bTAUo3k1858Ej
wIiAIKRGZxd18ptTI/dUbvEbHgZXyzu7VcTdteB4mQYS6n/P33HC4J1Znx64qjT+
PNlaunzV48m/gSp8xx4dGsBE1AfnOfJak5SCkKetSimM4zWRgckWQFFZqXksm/LF
5RC7U69q8o7WIBUxyHKxs1PTA2TQODNv+nyvuYY+xBFF2z9XtPibswV3nO5b1e1u
NirXNIKS70oaV3I2A3oq8phZBhjSIYdxgCIg0ZRjkNrWLVYVgwG70HaTOyCTVwRj
jRrxx7+7CnPQfmki4pUXu3/gf25Meuy9fE4SnNjAWt3Vm9UjN11KY+Crc/yJGyN8
fGdDwzD33RhTuosfDxGbS3XmrLzN4V+gDPtky7NF5JyKg5jrpU5iEUq2K9XtJJQv
MiOvtdRNUKzX/cLpnlGyKTXEYD7/sZ/h86bEHfEXeb1NuBkub/WHMEjjWhlU7o6d
DatD4CcPShQMXpXvjw4jwM5WGQFdiDl4jYTcfp3xkAqK7lExeQYIRS6Gm7UX680y
sZpX46IHZVZcj1qP4/MMsusQmd/aZ5C9zaBvy7hyxtQ/K++rYCI=
=m4GT
-----END PGP SIGNATURE-----

--RDlqk/WpWgGx5knI--




Information forwarded to guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 12 Sep 2024 13:23:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 12 09:23:21 2024
Received: from localhost ([127.0.0.1]:40403 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sojn4-0001F0-At
	for submit <at> debbugs.gnu.org; Thu, 12 Sep 2024 09:23:21 -0400
Received: from lists.gnu.org ([209.51.188.17]:41112)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sojn0-0001Eo-4R
 for submit <at> debbugs.gnu.org; Thu, 12 Sep 2024 09:23:17 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1sojmr-0006GE-DH
 for guix-patches@HIDDEN; Thu, 12 Sep 2024 09:23:05 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sojmo-0006lm-4j; Thu, 12 Sep 2024 09:23:02 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to:
 references; bh=J+LumnNpAQ7dAOHgUWwG56Z07fQXTurzxQcKpeFIYw4=; b=giI/avu93qDe1k
 XJx4pu39lNNryOSuC/5my936R2jzWNKk+eyIVSsITbG/0+sRMWcW8o+IqgKV/0G2KzH84npBaokJJ
 he8ls2y15c+OgyF+9/RPJR8rwZToilr66ykxIwIlvQp/kk3lNg6LmGMAgpRILiSDtc7GrojRICFn0
 LlR43ep4Zm9Rqp4t35N1LyvN5RaRd3zHbrjbB6Ku9j78Cnbm7iD86m51aOpAUX9zpnwge7oBko+6Z
 RBBOZ4aHnHSY5B2YZW3HWN2oVWxatCOVPFUAzGr/MVZGvvFKOzJ7lvbkRDgR9HBI3FI2O1G23MKvC
 T3MMO1lZUqgZPoiWMDtA==;
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] gnu: julia: Update to 1.9.3.
Date: Thu, 12 Sep 2024 15:22:50 +0200
Message-ID: <d9e54f64579b184f4715713101f13f01c809873a.1726147051.git.ludo@HIDDEN>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Debbugs-Cc: Efraim Flashner <efraim@HIDDEN>,
 Simon Tournier <zimon.toutoune@HIDDEN>
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: submit
Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludovic.courtes@HIDDEN>,
 Philippe Virouleau <philippe.virouleau@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

From: Ludovic Courtès <ludovic.courtes@HIDDEN>

* gnu/packages/julia.scm (julia): Update to 1.9.3.
[arguments]: Use gexps.
[inputs, native-inputs]: Remove labels.
* gnu/packages/llvm.scm (llvm-julia): Rename to…
(llvm-14-julia): … this.  Upgrade to 14.0.6-3.
* gnu/packages/patches/julia-1.9-build-tweaks.patch: New file.
* gnu/packages/patches/julia-Use-MPFR-4.2.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.

Co-authored-by: Philippe Virouleau <philippe.virouleau@HIDDEN>
Change-Id: I6ef35c6cd31741a7725b50364dd0f8fa6a0c6424
---
 gnu/local.mk                                  |   2 +-
 gnu/packages/julia.scm                        | 862 ++++++++++--------
 gnu/packages/llvm.scm                         |  38 +-
 .../patches/julia-1.9-build-tweaks.patch      | 152 +++
 gnu/packages/patches/julia-Use-MPFR-4.2.patch | 228 -----
 5 files changed, 651 insertions(+), 631 deletions(-)
 create mode 100644 gnu/packages/patches/julia-1.9-build-tweaks.patch
 delete mode 100644 gnu/packages/patches/julia-Use-MPFR-4.2.patch

Hello comrades!

Here is an update of Julia adapted from:

  https://gitlab.inria.fr/guix-hpc/guix-hpc/-/commit/eb83e466fe0b9492216abc46da26ec3a89b0a946

Version 1.9.3 has been in the guix-hpc channel for a while.  It’s not
the latest version, not even the latest series, but it’s an improvement
over what we have.

Thoughts?

Ludo’.

diff --git a/gnu/local.mk b/gnu/local.mk
index ed630041ff..76d58c8e38 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1586,8 +1586,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/john-the-ripper-jumbo-with-gcc-11.patch	\
   %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch		\
   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch		\
+  %D%/packages/patches/julia-1.9-build-tweaks.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
-  %D%/packages/patches/julia-Use-MPFR-4.2.patch	                \
   %D%/packages/patches/libcall-ui-make-it-installable.patch	\
   %D%/packages/patches/libcamera-ipa_manager-disable-signature-verification.patch	\
   %D%/packages/patches/libcss-check-format.patch		\
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 9668b3fd1e..5c7d900a09 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -28,6 +28,7 @@ (define-module (gnu packages julia)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
@@ -142,412 +143,493 @@ (define-public libwhich
 (define-public julia
   (package
     (name "julia")
-    (version "1.8.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/JuliaLang/julia/releases/download/v"
-                    version "/julia-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0jf8dr5j7y8cjnr65kn38xps5h9m2qvi8g1yd8qgiip5r87ld3ad"))
-              (patches (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"
-                                       "julia-Use-MPFR-4.2.patch"))))
+    (version "1.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/JuliaLang/julia/releases/download/v" version
+             "/julia-" version ".tar.gz"))
+       (sha256
+        (base32 "0788hbcr1v89crv2j3insy89lxs0zwjbxk9q73jpj4g7j26bszcd"))
+       (patches (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"
+                                "julia-1.9-build-tweaks.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:test-target "test"
-       #:modules ((ice-9 match)
-                  (guix build gnu-build-system)
-                  (guix build utils))
+     (list #:test-target "test"
+           #:modules `((ice-9 match)
+                       (guix build gnu-build-system)
+                       (guix build utils))
 
-       ;; The test suite takes many times longer than building and
-       ;; can easily fail on smaller machines when they run out of memory.
-       #:tests? ,(not (or (%current-target-system)
-                          (target-aarch64?)))
+           ;; The test suite takes many times longer than building and
+           ;; can easily fail on smaller machines when they run out of memory.
+           #:tests? (not (or (%current-target-system)
+                             (target-aarch64?)))
 
-       ;; Do not strip binaries to keep support for full backtraces.
-       ;; See https://github.com/JuliaLang/julia/issues/17831
-       #:strip-binaries? #f
+           ;; Do not strip binaries to keep support for full backtraces.
+           ;; See https://github.com/JuliaLang/julia/issues/17831
+           #:strip-binaries? #f
 
-       ;; The DSOs use $ORIGIN to refer to each other, but (guix build
-       ;; gremlin) doesn't support it yet, so skip this phase.
-       #:validate-runpath? #f
+           ;; The DSOs use $ORIGIN to refer to each other, but (guix build
+           ;; gremlin) doesn't support it yet, so skip this phase.
+           #:validate-runpath? #f
 
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'unpack 'prepare-deps
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; needed by libwhich
-             (setenv "LD_LIBRARY_PATH"
-                     (string-join (map (lambda (pkg)
-                                         (string-append (assoc-ref inputs pkg)
-                                                        "/lib"))
-                                       '("curl" "dsfmt"
-                                         "gmp" "lapack"
-                                         "libssh2" "libnghttp2" "libgit2"
-                                         "libblastrampoline"
-                                         "mbedtls" "mpfr"
-                                         "openblas" "openlibm" "pcre2"
-                                         "suitesparse" "gfortran:lib"))
-                                  ":"))))
-         ;; FIXME: Building the documentation requires Julia packages that
-         ;; would be downloaded from the Internet.  We should build them in a
-         ;; separate build phase.
-         (add-after 'unpack 'disable-documentation
-           (lambda _
-             (substitute* "Makefile"
-               (("(install: .*) \\$\\(BUILDROOT\\)/doc/_build/html/en/index.html" _ line)
-                (string-append line "\n"))
-               (("src ui doc deps")
-                "src ui deps"))))
-         (add-after 'unpack 'activate-gnu-source-for-loader
-           (lambda _
-             (substitute* "cli/Makefile"
-               (("LOADER_CFLAGS =") "LOADER_CFLAGS = -D_GNU_SOURCE"))))
-         ;; libquadmath is not available on all architectures.
-         ;; https://github.com/JuliaLang/julia/issues/41613
-         (add-after 'unpack 'make-libquadmath-optional
-           (lambda _
-             (substitute* "base/Makefile"
-               (("libquadmath,0") "libquadmath,0,ALLOW_FAILURE"))))
-         (add-before 'check 'set-home
-           ;; Some tests require a home directory to be set.
-           (lambda _ (setenv "HOME" "/tmp")))
-         (add-before 'build 'fix-include-and-link-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The REPL must be linked with libuv.
-             (substitute* "cli/Makefile"
-               (("JLDFLAGS \\+= ")
-                (string-append "JLDFLAGS += "
-                               (assoc-ref inputs "libuv")
-                               "/lib/libuv.so ")))))
-         (add-before 'build 'replace-default-shell
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "base/client.jl"
-               (("/bin/sh") (search-input-file inputs "/bin/sh")))))
-         (add-before 'build 'shared-objects-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((jlpath
-                    (lambda (pkgname)
-                      (string-append
-                       "stdlib/" pkgname "_jll/src/" pkgname "_jll.jl")))
-                   (from
-                    (lambda (libname)
-                      (string-append "const " libname " = .*\\.so")))
-                   (to
-                    (lambda* (pkg libname #:optional libname_jl)
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-after 'unpack 'prepare-deps
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; needed by libwhich
+                   (match inputs
+                     (((labels . directories) ...)
+                      (set-path-environment-variable
+                       "LD_LIBRARY_PATH"
+                       '("lib") directories)))))
+               (add-before 'check 'set-home
+                 ;; Some tests require a home directory to be set.
+                 (lambda _
+                   (setenv "HOME" "/tmp")))
+               (add-before 'build 'fix-include-and-link-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; The REPL must be linked with libuv.
+                   (substitute* "cli/Makefile"
+                     (("JLDFLAGS \\+= ")
+                      (string-append "JLDFLAGS += "
+                                     (search-input-file inputs
+                                                        "/lib/libuv.so") " ")))))
+               (add-before 'build 'fix-nested-dlopen
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "Make.inc"
+                     ;; See the patch comment for the explanation, *must* be updated
+                     ;; when updating julia.
+                     (("GUIX_LIBUTF8PROC")
+                      (search-input-file inputs "/lib/libutf8proc.a")))
+                   (substitute* "Makefile"
+                     ;; See the patch comment for the explanation, *must* be updated
+                     ;; when updating julia.
+                     (("GUIX_LIBCHOLMOD")
+                      (search-input-file inputs "/lib/libcholmod.so"))
+                     (("GUIX_LIBSPQR")
+                      (search-input-file inputs "/lib/libspqr.so"))
+                     (("GUIX_LIBSC")
+                      (search-input-file inputs
+                                         "/lib/libsuitesparseconfig.so"))
+                     (("GUIX_LIBUMFPACK")
+                      (search-input-file inputs "/lib/libumfpack.so")))))
+               (add-before 'build 'replace-default-shell
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "base/client.jl"
+                     (("/bin/sh")
+                      (search-input-file inputs "/bin/sh")))))
+               (add-before 'build 'shared-objects-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (let ((jlpath (lambda (pkgname)
+                                   (string-append "stdlib/" pkgname
+                                                  "_jll/src/" pkgname
+                                                  "_jll.jl")))
+                         (jlbasepath (lambda (pkgname)
+                                       (string-append "base/" pkgname
+                                                      ".jl")))
+                         (tolib (lambda (libname)
+                                  (search-input-file inputs
+                                                     (string-append
+                                                      "/lib/" libname
+                                                      ".so"))))
+                         (toquotedlib (lambda (libname)
+                                        (define file
+                                          (string-append "/lib/"
+                                                         libname
+                                                         ".so"))
+                                        (string-append "\""
+                                                       (search-input-file
+                                                        inputs file)
+                                                       "\"")))
+                         (from (lambda (libname)
+                                 (string-append "const " libname
+                                                " = .*\\.so")))
+                         (to (lambda* (libname #:optional libname_jl)
+                               (define file
+                                 (string-append "/lib/" libname ".so"))
+
+                               (string-append "const "
+                                              (or libname_jl libname)
+                                              " = \""
+                                              (search-input-file
+                                               inputs file)))))
+                     (substitute* "src/jitlayers.cpp"
+                       (("libatomic.so")
+                        (search-input-file inputs "/lib/libatomic.so")))
+                     (substitute* (list (jlbasepath "linking")
+                                        (jlpath "LLD"))
+                       (("\"lld\"")
+                        (string-append "\""
+                                       (search-input-file inputs
+                                                          "/bin/lld")
+                                       "\"")))
+                     (substitute* (jlbasepath "pcre")
+                       (("libpcre2-8")
+                        (tolib "libpcre2-8")))
+                     (substitute* (jlbasepath "gmp")
+                       (("libgmp.so.10")
+                        (tolib "libgmp")))
+                     (substitute* (jlbasepath "mpfr")
+                       (("libmpfr.so.6")
+                        (tolib "libmpfr")))
+                     (substitute* (jlbasepath "irrationals")
+                       ((":libmpfr")
+                        (toquotedlib "libmpfr")))
+                     (substitute* "stdlib/Random/src/generation.jl"
+                       ((":libmpfr")
+                        (toquotedlib "libmpfr")))
+                     (substitute* "stdlib/Printf/src/Printf.jl"
+                       (("\"libmpfr\"")
+                        (toquotedlib "libmpfr")))
+                     (substitute* "stdlib/Random/src/DSFMT.jl"
+                       ((":libdSFMT")
+                        (toquotedlib "libdSFMT")))
+                     (for-each (lambda (file)
+                                 (substitute* file
+                                   ((":libgit2")
+                                    (toquotedlib "libgit2"))))
+                               (find-files "stdlib/LibGit2/" "\\.jl$"))
+                     (substitute* (jlpath "CompilerSupportLibraries")
+                       (((from "libgomp"))
+                        (to "libgomp"))
+                       (((from "libgfortran"))
+                        (string-append
+                         "const libgfortran = string(\""
+                         (search-input-file inputs
+                                            "/lib/libgfortran.so"))))
+                     (substitute* (jlpath "dSFMT")
+                       (((from "libdSFMT"))
+                        (to "libdSFMT")))
+                     (substitute* (jlpath "GMP")
+                       (((from "libgmp"))
+                        (to "libgmp"))
+                       (((from "libgmpxx"))
+                        (to "libgmpxx")))
+                     (substitute* (jlpath "libLLVM")
+                       (((from "libLLVM"))
+                        (to "libLLVM")))
+                     (substitute* (jlbasepath "binaryplatforms")
+                       (("libLLVM-14jl")
+                        (tolib "libLLVM-14jl")))
+                     (substitute* (jlpath "LibCURL")
+                       (((from "libcurl"))
+                        (to "libcurl")))
+                     (substitute* (jlpath "LibGit2")
+                       (((from "libgit2"))
+                        (to "libgit2")))
+                     (substitute* (jlpath "LibSSH2")
+                       (((from "libssh2"))
+                        (to "libssh2")))
+                     (substitute* (jlpath "LibUV")
+                       (((from "libuv"))
+                        (to "libuv")))
+                     (substitute* (jlpath "LibUnwind")
+                       (((from "libunwind"))
+                        (to "libunwind")))
+                     (substitute* (jlpath "MPFR")
+                       (((from "libmpfr"))
+                        (to "libmpfr")))
+                     (substitute* (jlpath "MbedTLS")
+                       (((from "libmbedcrypto"))
+                        (to "libmbedcrypto"))
+                       (((from "libmbedtls"))
+                        (to "libmbedtls"))
+                       (((from "libmbedx509"))
+                        (to "libmbedx509")))
+                     (substitute* (jlpath "nghttp2")
+                       (((from "libnghttp2"))
+                        (to "libnghttp2")))
+                     (substitute* (jlpath "OpenBLAS")
+                       (("libgfortran.so")
+                        (tolib "libgfortran"))
+                       (((from "libopenblas"))
+                        #$@(if (target-x86-64?)
+                               `((to "libopenblas64_" "libopenblas"))
+                               `((to "libopenblas")))))
+                     (substitute* (jlpath "OpenLibm")
+                       (((from "libopenlibm"))
+                        (to "libopenlibm")))
+                     (substitute* (jlpath "PCRE2")
+                       (((from "libpcre2_8"))
+                        (to "libpcre2-8" "libpcre2_8")))
+                     (substitute* (jlpath "SuiteSparse")
+                       (((from "libamd"))
+                        (to "libamd"))
+                       (((from "libbtf"))
+                        (to "libbtf"))
+                       (((from "libcamd"))
+                        (to "libcamd"))
+                       (((from "libccolamd"))
+                        (to "libccolamd"))
+                       (((from "libcholmod"))
+                        (to "libcholmod"))
+                       (((from "libcolamd"))
+                        (to "libcolamd"))
+                       (((from "libklu"))
+                        (to "libklu"))
+                       (((from "libldl"))
+                        (to "libldl"))
+                       (((from "librbio"))
+                        (to "librbio"))
+                       (((from "libspqr"))
+                        (to "libspqr"))
+                       (((from "libsuitesparse"))
+                        (to "libsuitesparse"))
+                       (((from "libsuitesparseconfig"))
+                        (to "libsuitesparseconfig"))
+                       (((from "libumfpack"))
+                        (to "libumfpack")))
+                     (substitute* (jlpath "Zlib")
+                       (((from "libz"))
+                        (to "libz")))
+                     (substitute* (jlpath "libblastrampoline")
+                       (("libblastrampoline\\.so")
+                        (search-input-file inputs
+                                           "/lib/libblastrampoline.so"))))))
+               (add-before 'build 'use-ssl-cert-file
+                 (lambda _
+                   ;; We must adapt MozillaCACerts to use SSL_CERT_FILE.
+                   (substitute* "stdlib/MozillaCACerts_jll/src/MozillaCACerts_jll.jl"
+                     (("global cacert = .*")
                       (string-append
-                       "const " (or libname_jl libname)  " = \""
-                       (assoc-ref inputs pkg) "/lib/" libname ".so"))))
-               (substitute* (jlpath "CompilerSupportLibraries")
-                 (((from "libgfortran"))
-                  (string-append "const libgfortran = string(\""
-                                 (search-input-file inputs "/lib/libgfortran.so"))))
-               (substitute* (jlpath "dSFMT")
-                 (((from "libdSFMT")) (to "dsfmt" "libdSFMT")))
-               (substitute* (jlpath "GMP")
-                 (((from "libgmp")) (to "gmp" "libgmp"))
-                 (((from "libgmpxx")) (to "gmp" "libgmpxx")))
-               (substitute* (jlpath "libLLVM")
-                 (((from "libLLVM")) (to "llvm" "libLLVM")))
-               (substitute* (jlpath "LibCURL")
-                 (((from "libcurl")) (to "curl" "libcurl")))
-               (substitute* (jlpath "LibGit2")
-                 (((from "libgit2")) (to "libgit2" "libgit2")))
-               (substitute* (jlpath "LibSSH2")
-                 (((from "libssh2")) (to "libssh2" "libssh2")))
-               (substitute* (jlpath "LibUV")
-                 (((from "libuv")) (to "libuv" "libuv")))
-               (substitute* (jlpath "LibUnwind")
-                 (((from "libunwind")) (to "libunwind" "libunwind")))
-               (substitute* (jlpath "MPFR")
-                 (((from "libmpfr")) (to "mpfr" "libmpfr")))
-               (substitute* (jlpath "MbedTLS")
-                 (((from "libmbedcrypto")) (to "mbedtls" "libmbedcrypto"))
-                 (((from "libmbedtls")) (to "mbedtls" "libmbedtls"))
-                 (((from "libmbedx509")) (to "mbedtls" "libmbedx509")))
-               (substitute* (jlpath "nghttp2")
-                 (((from "libnghttp2")) (to "libnghttp2" "libnghttp2")))
-               (substitute* (jlpath "OpenBLAS")
-                 (((from "libopenblas"))
-                  ,@(if (target-x86-64?)
-                      `((to "openblas" "libopenblas64_" "libopenblas"))
-                      `((to "openblas" "libopenblas")))))
-               (substitute* (jlpath "OpenLibm")
-                 (((from "libopenlibm")) (to "openlibm" "libopenlibm")))
-               (substitute* (jlpath "PCRE2")
-                 (((from "libpcre2_8")) (to "pcre2" "libpcre2-8" "libpcre2_8")))
-               (substitute* (jlpath "SuiteSparse")
-                 (((from "libamd")) (to "suitesparse" "libamd"))
-                 (((from "libbtf")) (to "suitesparse" "libbtf"))
-                 (((from "libcamd")) (to "suitesparse" "libcamd"))
-                 (((from "libccolamd")) (to "suitesparse" "libccolamd"))
-                 (((from "libcholmod")) (to "suitesparse" "libcholmod"))
-                 (((from "libcolamd")) (to "suitesparse" "libcolamd"))
-                 (((from "libklu")) (to "suitesparse" "libklu"))
-                 (((from "libldl")) (to "suitesparse" "libldl"))
-                 (((from "librbio")) (to "suitesparse" "librbio"))
-                 (((from "libspqr")) (to "suitesparse" "libspqr"))
-                 (((from "libsuitesparse")) (to "suitesparse" "libsuitesparse"))
-                 (((from "libsuitesparseconfig"))
-                  (to "suitesparse" "libsuitesparseconfig"))
-                 (((from "libumfpack")) (to "suitesparse" "libumfpack")))
-               (substitute* (jlpath "Zlib")
-                 (((from "libz")) (to "zlib" "libz")))
-               (substitute* (jlpath "libblastrampoline")
-                 (("libblastrampoline\\.so")
-                  (search-input-file inputs "/lib/libblastrampoline.so"))))))
-         (add-before 'build 'use-ssl-cert-file
-           (lambda _
-             ;; We must adapt MozillaCACerts to use SSL_CERT_FILE.
-             (substitute* "stdlib/MozillaCACerts_jll/src/MozillaCACerts_jll.jl"
-               (("global cacert = .*")
-                (string-append
-                  "global cacert = get(ENV, \"SSL_CERT_FILE\","
-                  ;; our fallback location.
-                  "\"/etc/ssl/certs/ca-certificates.crt\")\n")))))
-         (add-after 'unpack 'enable-parallel-tests
-           (lambda* (#:key parallel-tests? #:allow-other-keys)
-             (when parallel-tests?
-               (setenv "JULIA_TEST_USE_MULTIPLE_WORKERS" "true"))))
-         (add-after 'unpack 'adjust-test-suite
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "test/spawn.jl"
-               (("shcmd = `sh`") (string-append "shcmd = `" (which "sh") "`")))
-             ;; Some tests only check to see if the input is the correct version.
-             (substitute* "stdlib/PCRE2_jll/test/runtests.jl"
-               (("10.40.0") ,(package-version (this-package-input "pcre2"))))
-             (substitute* "stdlib/MbedTLS_jll/test/runtests.jl"
-               (("2.28.0") ,(package-version (this-package-input "mbedtls"))))
-             (substitute* "stdlib/MPFR_jll/test/runtests.jl"
-               (("4.1.0") ,(package-version (this-package-input "mpfr"))))
-             (substitute* "stdlib/GMP_jll/test/runtests.jl"
-               (("6.2.1") ,(package-version (this-package-input "gmp"))))
-             (substitute* "stdlib/LibGit2_jll/test/runtests.jl"
-               (("1.3.0") ,(package-version (this-package-input "libgit2"))))
-             (substitute* "stdlib/nghttp2_jll/test/runtests.jl"
-               (("1.48.0") ,(package-version (this-package-input "libnghttp2"))))
-             (substitute* "stdlib/Zlib_jll/test/runtests.jl"
-               (("1.2.12") ,(package-version (this-package-input "zlib"))))
-             (substitute* "stdlib/SuiteSparse_jll/test/runtests.jl"
-               (("5010") ,(string-replace-substring
-                            (version-major+minor
-                              (package-version
-                                (this-package-input "suitesparse"))) "." "0")))))
-         (add-before 'check 'disable-broken-tests
-           (lambda _
-             ;; disabling REPL tests because they require a stdin
-             ;; There are some read-only precompile issues in the 1.6 series.
-             ;; https://github.com/JuliaLang/julia/pull/41614
-             ;; https://github.com/JuliaLang/julia/issues/41156
-             (substitute* "test/choosetests.jl"
-               (("\"cmdlineargs\",") "")
-               (("\"precompile\",") ""))
-             ;; Dates/io tests fail on master when networking is unavailable
-             ;; https://github.com/JuliaLang/julia/issues/34655
-             (substitute* "stdlib/Dates/test/io.jl"
-               (("using Dates") "import Dates
+                       "global cacert = get(ENV, \"SSL_CERT_FILE\","
+                       ;; our fallback location.
+                       "\"/etc/ssl/certs/ca-certificates.crt\")\n")))))
+               (add-after 'unpack 'enable-parallel-tests
+                 (lambda* (#:key parallel-tests? #:allow-other-keys)
+                   (when parallel-tests?
+                     (setenv "JULIA_TEST_USE_MULTIPLE_WORKERS" "true"))))
+               (add-after 'unpack 'adjust-test-suite
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "test/spawn.jl"
+                     (("shcmd = `sh`")
+                      (string-append "shcmd = `"
+                                     (which "sh") "`")))
+
+                   ;; Some tests only check to see if the input is the correct version.
+                   (substitute* "stdlib/PCRE2_jll/test/runtests.jl"
+                     (("10\\.42\\.0")
+                      #$(package-version (this-package-input "pcre2"))))
+                   (substitute* "stdlib/MbedTLS_jll/test/runtests.jl"
+                     (("2\\.28\\.2")
+                      #$(package-version (this-package-input "mbedtls-apache"))))
+                   (substitute* "stdlib/MPFR_jll/test/runtests.jl"
+                     (("4\\.1\\.1")
+                      #$(package-version (this-package-input "mpfr"))))
+                   (substitute* "stdlib/GMP_jll/test/runtests.jl"
+                     (("6\\.2\\.1")
+                      #$(package-version (this-package-input "gmp"))))
+                   (substitute* "stdlib/LibGit2_jll/test/runtests.jl"
+                     (("1\\.5\\.0")
+                      #$(package-version (this-package-input "libgit2"))))
+                   (substitute* "stdlib/nghttp2_jll/test/runtests.jl"
+                     (("1\\.48\\.0")
+                      #$(package-version (this-package-input "nghttp2"))))
+                   (substitute* "stdlib/Zlib_jll/test/runtests.jl"
+                     (("1\\.2\\.13")
+                      #$(package-version (this-package-input "zlib"))))
+                   (substitute* "stdlib/SuiteSparse_jll/test/runtests.jl"
+                     (("5010")
+                      #$(string-replace-substring
+                         (version-major+minor
+                          (package-version
+                           (this-package-input "suitesparse"))) "." "0")))))
+               (add-before 'check 'disable-broken-tests
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; disabling REPL tests because they require a stdin
+                   ;; There are some read-only precompile issues in the 1.6 series.
+                   ;; https://github.com/JuliaLang/julia/pull/41614
+                   ;; https://github.com/JuliaLang/julia/issues/41156
+                   (substitute* "test/choosetests.jl"
+                     (("\"cmdlineargs\",")
+                      "")
+                     (("\"precompile\",")
+                      ""))
+                   ;; Distributed test with remote execution
+                   (substitute* "usr/share/julia/stdlib/v1.9/Distributed/test/distributed_exec.jl"
+                     (("using Test,")
+                      "exit()\n"))
+                   ;; Dates/io tests fail on master when networking is unavailable
+                   ;; https://github.com/JuliaLang/julia/issues/34655
+                   (substitute* "stdlib/Dates/test/io.jl"
+                     (("using Dates")
+                      "import Dates
 using Dates: @dateformat_str, Date, DateTime, DateFormat, Time"))
-             ;; julia embeds a certificate, we are not doing that
-             (substitute* "stdlib/MozillaCACerts_jll/test/runtests.jl"
-               (("@test isfile\\(MozillaCACerts_jll.cacert\\)")
-                "@test_broken isfile(MozillaCACerts_jll.cacert)"))
-             ;; since certificate is not present some tests are failing in network option
-             (substitute* "usr/share/julia/stdlib/v1.8/NetworkOptions/test/runtests.jl"
-               (("@test isfile\\(bundled_ca_roots\\(\\)\\)")
-                "@test_broken isfile(bundled_ca_roots())")
-               (("@test ispath\\(ca_roots_path\\(\\)\\)")
-                "@test_broken ispath(ca_roots_path())")
-               (("@test ca_roots_path\\(\\) \\!= bundled_ca_roots\\(\\)")
-                "@test_broken ca_roots_path() != bundled_ca_roots()"))
-             ;; WARNING: failed to select UTF-8 encoding, using ASCII
-             ;; Using 'setlocale' doesn't affect the test failures.
-             ;(setlocale LC_ALL "en_US.utf8")
-             ;(setenv "LC_ALL" "en_US.utf8")
-             (substitute* "test/cmdlineargs.jl"
-               (("test v\\[3") "test_broken v[3")
-               (("test isempty\\(v\\[3") "test_broken isempty(v[3"))
-             ;; These test(s) randomly fails because they depend on CPU.
-             (substitute* "test/math.jl"
-               ;; @test_broken cannot be used because if the test randomly
-               ;; passes, then it also raises an error.
-               (("@test isinf\\(log1p\\(-one\\(T\\)\\)\\)")
-                " "))
+                   ;; julia embeds a certificate, we are not doing that
+                   (substitute* "stdlib/MozillaCACerts_jll/test/runtests.jl"
+                     (("@test isfile\\(MozillaCACerts_jll.cacert\\)")
+                      "@test_broken isfile(MozillaCACerts_jll.cacert)"))
+                   ;; since certificate is not present some tests are failing in network option
+                   (substitute* "usr/share/julia/stdlib/v1.9/NetworkOptions/test/runtests.jl"
+                     (("@test isfile\\(bundled_ca_roots\\(\\)\\)")
+                      "@test_broken isfile(bundled_ca_roots())")
+                     (("@test ispath\\(ca_roots_path\\(\\)\\)")
+                      "@test_broken ispath(ca_roots_path())")
+                     (("@test ca_roots_path\\(\\) \\!= bundled_ca_roots\\(\\)")
+                      "@test_broken ca_roots_path() != bundled_ca_roots()"))
+                   ;; WARNING: failed to select UTF-8 encoding, using ASCII
+                   ;; Using 'setlocale' doesn't affect the test failures.
+                   ;; (setlocale LC_ALL "en_US.utf8")
+                   ;; (setenv "LC_ALL" "en_US.utf8")
+                   (substitute* "test/cmdlineargs.jl"
+                     (("test v\\[3")
+                      "test_broken v[3")
+                     (("test isempty\\(v\\[3")
+                      "test_broken isempty(v[3"))
+                   ;; These test(s) randomly fails because they depend on CPU.
+                   (substitute* "test/math.jl"
+                     ;; @test_broken cannot be used because if the test randomly
+                     ;; passes, then it also raises an error.
+                     (("@test isinf\\(log1p\\(-one\\(T\\)\\)\\)")
+                      " "))
 
-             ;; These are new test failures for 1.8:
-             ;; This test passes on some architectures and fails on others.
-             (substitute* "stdlib/LinearAlgebra/test/lu.jl"
-               (("@test String") "@test_skip String"))
+                   ;; These are new test failures for 1.8:
+                   ;; This test passes on some architectures and fails on others.
+                   (substitute* "stdlib/LinearAlgebra/test/lu.jl"
+                     (("@test String")
+                      "@test_skip String"))
 
-             (substitute* "stdlib/InteractiveUtils/test/runtests.jl"
-               (("@test !occursin\\(\"Environment")
-                "@test_broken !occursin(\"Environment")
-               (("@test  occursin\\(\"Environment")
-                "@test_broken  occursin(\"Environment"))
-             (substitute* "usr/share/julia/stdlib/v1.8/Statistics/test/runtests.jl"
-               (("@test cov\\(A") "@test_skip cov(A")
-               (("@test isfinite") "@test_skip isfinite"))
-             ;; LoadError: SuiteSparse threads test failed with nthreads == 4
-             (substitute* "usr/share/julia/stdlib/v1.8/SuiteSparse/test/runtests.jl"
-               (("Base\\.USE_GPL_LIBS") "false"))
-             ;; Got exception outside of a @test
-             ;; LinearAlgebra.LAPACKException(16)
-             ;; eliminate all the test bits.
-             (substitute* "stdlib/LinearAlgebra/test/schur.jl"
-               (("f = schur\\(A, B\\)") "f = schur(A, A)")
-               (("@test f\\.Q\\*f\\.S\\*f\\.Z'.*") "\n")
-               (("@test f\\.Q\\*f\\.T\\*f\\.Z'.*") "\n"))
-             (substitute* "test/threads.jl"
-               (("@test success") "@test_broken success"))))
-         ;; Doesn't this just mean they weren't linked correctly?
-         (add-after 'install 'symlink-missing-libraries
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (link
-                      (lambda (pkgname pred)
-                        (map (lambda (file)
-                               (unless (file-exists?
-                                         (string-append out "/lib/julia/"
-                                                        (basename file)))
-                                 (symlink file (string-append out "/lib/julia/"
-                                                              (basename file)))))
-                        (find-files (string-append (assoc-ref inputs pkgname)
-                                                   "/lib") pred)))))
-               (link "libunwind" "libunwind\\.so")
-               (link "llvm" "libLLVM-13jl\\.so")
-               (link "utf8proc" "libutf8proc\\.so")
-               (link "zlib" "libz\\.so"))))
-         (add-after 'install 'make-wrapper
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (program "julia"))
-               (with-directory-excursion bin
-                 (wrap-program program
-                   `("JULIA_LOAD_PATH" ":" prefix
-                     ("" "$JULIA_LOAD_PATH"))
-                   `("JULIA_DEPOT_PATH" ":" prefix
-                     ("" "$JULIA_DEPOT_PATH"))))))))
-       #:make-flags
-       (list
-        "VERBOSE=1" ;; more helpful logging of what make is doing
-        (string-append "prefix=" (assoc-ref %outputs "out"))
+                   (substitute* "usr/share/julia/stdlib/v1.9/Statistics/test/runtests.jl"
+                     (("@test cov\\(A")
+                      "@test_skip cov(A")
+                     (("@test isfinite")
+                      "@test_skip isfinite"))
+                   ;; LoadError: SuiteSparse threads test failed with nthreads == 4
+                   (substitute* "usr/share/julia/stdlib/v1.9/SuiteSparse/test/runtests.jl"
+                     (("Base\\.USE_GPL_LIBS")
+                      "false"))
+                   ;; Got exception outside of a @test
+                   ;; LinearAlgebra.LAPACKException(16)
+                   ;; eliminate all the test bits.
+                   (substitute* "stdlib/LinearAlgebra/test/schur.jl"
+                     (("f = schur\\(A, B\\)")
+                      "f = schur(A, A)")
+                     (("@test f\\.Q\\*f\\.S\\*f\\.Z'.*")
+                      "\n")
+                     (("@test f\\.Q\\*f\\.T\\*f\\.Z'.*")
+                      "\n"))))
+               ;; Doesn't this just mean they weren't linked correctly?
+               (add-after 'install 'symlink-missing-libraries
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (link (lambda (pkgname pred)
+                                  (map (lambda (file)
+                                         (unless (file-exists? (string-append
+                                                                out
+                                                                "/lib/julia/"
+                                                                (basename
+                                                                 file)))
+                                           (symlink file
+                                                    (string-append
+                                                     out
+                                                     "/lib/julia/"
+                                                     (basename file)))))
+                                       (find-files (string-append (assoc-ref
+                                                                   inputs
+                                                                   pkgname)
+                                                                  "/lib") pred)))))
+                     (link "libunwind-julia" "libunwind\\.so")
+                     (link "llvm" "libLLVM-14jl\\.so")
+                     (link "gmp" "libgmp\\.so.10")
+                     (link "mpfr" "libmpfr\\.so.6")
+                     (link "zlib" "libz\\.so"))))
+               (add-after 'install 'make-wrapper
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (string-append out "/bin"))
+                          (program "julia"))
+                     (with-directory-excursion bin
+                       (wrap-program program
+                         `("JULIA_LOAD_PATH" ":" prefix
+                           ("" "$JULIA_LOAD_PATH"))
+                         `("JULIA_DEPOT_PATH" ":" prefix
+                           ("" "$JULIA_DEPOT_PATH"))))))))
 
-         ;; Passing the MARCH or JULIA_CPU_TARGET flag is necessary to build
-         ;; binary substitutes for the supported architectures.  See also
-         ;; https://docs.julialang.org/en/v1/devdocs/sysimg/#Specifying-multiple-system-image-targets
-         ,(match (or (%current-target-system)
-                     (%current-system))
-                 ("x86_64-linux"
-                  ;; These are the flags that upstream uses for their binaries.
-                  "JULIA_CPU_TARGET=generic;generic,-cx16,clone_all;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)")
-                 ("i686-linux" "MARCH=pentium4")
-                 ("armhf-linux" "JULIA_CPU_TARGET=armv7-a,neon")
-                 ("powerpc64le-linux" "JULIA_CPU_TARGET=pwr8")
-                 ;; Prevent errors when querying this package on unsupported
-                 ;; platforms, e.g. when running "guix package --search="
-                 ;; and also of targeting the builder's architecture.
-                 (_ "JULIA_CPU_TARGET=generic"))
+           #:make-flags
+           #~(list (string-append "prefix="
+                                  (assoc-ref %outputs "out"))
 
-         "CONFIG_SHELL=bash -x"     ; needed to build bundled libraries
-         "USE_BINARYBUILDER=0"
-         ;; list (and order!) of "USE_SYSTEM_*" is here:
-         ;; https://github.com/JuliaLang/julia/blob/v1.8.2/Make.inc
-         "USE_SYSTEM_CSL=1"
-         "USE_SYSTEM_LLVM=1"
-         "USE_SYSTEM_LIBUNWIND=1"
-         "USE_SYSTEM_PCRE=1"
-         "USE_SYSTEM_OPENLIBM=1"
-         "USE_SYSTEM_DSFMT=1"
-         "USE_SYSTEM_LIBBLASTRAMPOLINE=1"
-         "USE_SYSTEM_BLAS=1"
-         "USE_SYSTEM_LAPACK=1"
-         "USE_SYSTEM_GMP=1"
-         "USE_SYSTEM_MPFR=1"
-         "USE_SYSTEM_LIBSUITESPARSE=1"
-         "USE_SYSTEM_LIBUV=1"
-         "USE_SYSTEM_UTF8PROC=1"
-         "USE_SYSTEM_MBEDTLS=1"
-         "USE_SYSTEM_LIBSSH2=1"
-         "USE_SYSTEM_NGHTTP2=1"
-         "USE_SYSTEM_CURL=1"
-         "USE_SYSTEM_LIBGIT2=1"
-         "USE_SYSTEM_PATCHELF=1"
-         "USE_SYSTEM_LIBWHICH=1"
-         "USE_SYSTEM_ZLIB=1"
-         "USE_SYSTEM_P7ZIP=1"
+                   ;; Passing the MARCH or JULIA_CPU_TARGET flag is necessary to build
+                   ;; binary substitutes for the supported architectures.  See also
+                   ;; https://docs.julialang.org/en/v1/devdocs/sysimg/#Specifying-multiple-system-image-targets
+                   #$(match (or (%current-target-system)
+                                (%current-system))
+                       ("x86_64-linux"
+                        ;; These are the flags that upstream uses for their binaries.
+                        "JULIA_CPU_TARGET=generic;generic,-cx16,clone_all;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)")
+                       ("i686-linux" "MARCH=pentium4")
+                       ("armhf-linux"
+                        "JULIA_CPU_TARGET=armv7-a,neon")
+                       ("powerpc64le-linux"
+                        "JULIA_CPU_TARGET=pwr8")
+                       ;; Prevent errors when querying this package on unsupported
+                       ;; platforms, e.g. when running "guix package --search="
+                       ;; and also of targeting the builder's architecture.
+                       (_ "JULIA_CPU_TARGET=generic"))
 
-         "USE_LLVM_SHLIB=1"
+                   "CONFIG_SHELL=bash -x" ;needed to build bundled libraries
+                   (string-append "CC="
+                                  #$(cc-for-target))
 
-         "NO_GIT=1"             ; build from release tarball.
-         "USE_GPL_LIBS=1"       ; proudly
+                   #$@(if (target-x86-64?)
+                          `("USE_BLAS64=1"
+                            "LIBBLAS=-lopenblas64_"
+                            "LIBBLASNAME=libopenblas64_")
+                          `("USE_BLAS64=0" "LIBBLAS=-lopenblas"
+                            "LIBBLASNAME=libopenblas"))
 
-         ,@(if (target-x86-64?)
-             `("USE_BLAS64=1"
-               "LIBBLAS=-lopenblas64_"
-               "LIBBLASNAME=libopenblas64_")
-             `("USE_BLAS64=0"
-               "LIBBLAS=-lopenblas"
-               "LIBBLASNAME=libopenblas"))
-
-         (string-append "UTF8PROC_INC="
-                        (assoc-ref %build-inputs "utf8proc")
-                        "/include")
-         ;; Make.inc expects a static library for libuv.
-         (string-append "LIBUV="
-                        (assoc-ref %build-inputs "libuv")
-                        "/lib/libuv.a")
-         (string-append "LIBUV_INC="
-                        (assoc-ref %build-inputs "libuv")
-                        "/include"))))
-    (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("coreutils" ,coreutils) ; for bindings to "mkdir" and the like
-       ("curl" ,curl-ssh)
-       ("gfortran" ,gfortran)
-       ;; required for libgcc_s.so
-       ("gfortran:lib" ,gfortran "lib")
-       ("gmp" ,gmp)
-       ("lapack" ,lapack)
-       ("libblastrampoline" ,libblastrampoline)
-       ("libgit2" ,libgit2-1.3)
-       ("libnghttp2" ,nghttp2 "lib")
-       ("libssh2" ,libssh2)
-       ("libunwind" ,libunwind-julia)
-       ("libuv" ,libuv-julia)
-       ("llvm" ,llvm-julia)
-       ("mbedtls" ,mbedtls-lts)
-       ("mpfr" ,mpfr)
-       ,@(if (target-x86-64?)
-             `(("openblas" ,openblas-ilp64))
-             `(("openblas" ,openblas)))
-       ("openlibm" ,openlibm)
-       ("p7zip" ,p7zip)
-       ("pcre2" ,pcre2)
-       ("suitesparse" ,suitesparse)
-       ("utf8proc" ,utf8proc-2.7.0)
-       ("wget" ,wget)
-       ("which" ,which)
-       ("zlib" ,zlib)
-       ;; Find dependencies versions here:
-       ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.6.0/deps/Versions.make
-       ("dsfmt" ,dsfmt)
-       ("libwhich" ,libwhich)))
-    (native-inputs
-     `(("openssl" ,openssl)
-       ("perl" ,perl)
-       ("patchelf" ,patchelf)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+                   (string-append "UTF8PROC_INC="
+                                  (assoc-ref %build-inputs "utf8proc")
+                                  "/include")
+                   ;; Make.inc expects a static library for libuv.
+                   (string-append "LIBUV="
+                                  (search-input-file %build-inputs
+                                                     "/lib/libuv.a"))
+                   (string-append "LIBUV_INC="
+                                  (dirname
+                                   (search-input-file
+                                    %build-inputs "/include/uv.h"))))))
+    (inputs (list coreutils             ;for bindings to "mkdir" and the like
+                  curl-ssh
+                  gfortran
+                  `(,gfortran "lib")              ;required for libgcc_s.so
+                  gmp
+                  lapack
+                  libblastrampoline
+                  libgit2-1.5
+                  `(,nghttp2 "lib")
+                  libssh2
+                  libunwind-julia
+                  libuv-julia
+                  llvm-14-julia
+                  lld-14
+                  mbedtls-apache
+                  mpfr
+                  (if (target-x86-64?) openblas-ilp64 openblas)
+                  openlibm
+                  p7zip
+                  pcre2
+                  suitesparse
+                  utf8proc-2.7.0
+                  wget
+                  which
+                  zlib
+                  ;; Find dependencies versions here:
+                  ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.6.0/deps/Versions.make
+                  dsfmt
+                  libwhich))
+    (native-inputs (list openssl perl patchelf pkg-config python))
     (native-search-paths
-      (list (search-path-specification
-              (variable "JULIA_LOAD_PATH")
-              (files (list "share/julia/loadpath/")))
-            (search-path-specification
-              (variable "JULIA_DEPOT_PATH")
-              (files (list "share/julia/")))
-            $SSL_CERT_FILE))
+     (list (search-path-specification
+            (variable "JULIA_LOAD_PATH")
+            (files (list "share/julia/loadpath/")))
+           (search-path-specification
+            (variable "JULIA_DEPOT_PATH")
+            (files (list "share/julia/")))
+           $SSL_CERT_FILE))
     ;; Julia only officially supports some of our platforms:
     ;; https://julialang.org/downloads/#supported_platforms
     (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index fd2e815fe0..671aee059e 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2016, 2018 Eric Bavier <bavier@HIDDEN>
 ;;; Copyright © 2015 Mark H Weaver <mhw@HIDDEN>
-;;; Copyright © 2015, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@HIDDEN>
+;;; Copyright © 2015, 2017-2021, 2024 Ludovic Courtès <ludo@HIDDEN>
 ;;; Copyright © 2016 Dennis Mungai <dmngaie@HIDDEN>
 ;;; Copyright © 2016, 2018, 2019, 2020, 2021, 2023 Ricardo Wurmus <rekado@HIDDEN>
 ;;; Copyright © 2017 Roel Janssen <roel@HIDDEN>
@@ -2264,22 +2264,36 @@ (define-public wllvm
 LLVM bitcode files.")
     (license license:expat)))
 
-(define-public llvm-julia
+(define-public llvm-14-julia
   (package
-    (inherit llvm-13)
+    (inherit llvm-14)
+    (version "14.0.6-3-julia")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference (url "https://github.com/JuliaLang/llvm-project")
+                            (commit "julia-14.0.6-3")))
+        (file-name (git-file-name "llvm-project-julia" "14.0.6-3"))
+        (sha256
+          (base32
+            "16ynl9g4paksvglk6asfxdr15gy21bzvsjdkqb1msbcnkz2x610x"))))
     (arguments
-     (substitute-keyword-arguments (package-arguments llvm-13)
-       ((#:configure-flags flags ''())
+     (substitute-keyword-arguments (package-arguments llvm-14)
+       ((#:configure-flags flags
+         ''())
+        ; FIXME: I think we should basically duplicate
+        ; https://github.com/JuliaLang/julia/blob/master/deps/llvm.mk
         #~(cons* "-DLLVM_BUILD_LLVM_DYLIB=ON"
                  "-DLLVM_LINK_LLVM_DYLIB=ON"
-                 ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX"
-                 "-DLLVM_VERSION_SUFFIX:STRING=jl"  ; Perhaps not needed.
-                 #$(string-append "-DLLVM_TARGETS_TO_BUILD="
+                 "-DLLVM_SHLIB_SYMBOL_VERSION:STRING=JL_LLVM_14.0"
+                 "-DLLVM_VERSION_SUFFIX:STRING=jl" ;Perhaps not needed.
+                 #$(string-append "-DLLVM_TARGETS_TO_BUILD=NVPTX;AMDGPU;"
                                   (system->llvm-target))
-                 (delete "-DBUILD_SHARED_LIBS:BOOL=TRUE" #$flags)))
-       ((#:build-type _) "Release")))
-    (properties `((hidden? . #t)
-                  ,@(package-properties llvm-13)))))
+                 (delete "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+                         #$flags)))
+       ((#:build-type _)
+        "Release")))
+    (properties `((hidden? . #t) ,@(package-properties llvm-14)))))
 
 (define llvm-cling
   ;; To determine which version of LLVM a given release of Cling should use,
diff --git a/gnu/packages/patches/julia-1.9-build-tweaks.patch b/gnu/packages/patches/julia-1.9-build-tweaks.patch
new file mode 100644
index 0000000000..25f220b012
--- /dev/null
+++ b/gnu/packages/patches/julia-1.9-build-tweaks.patch
@@ -0,0 +1,152 @@
+Adjust the Julia 1.9 build system to unbundle libraries and otherwise fix things
+here and there.
+
+diff --git a/Make.inc b/Make.inc
+index 5bbb52617a..7e1215a2de 100644
+--- a/Make.inc
++++ b/Make.inc
+@@ -40,33 +40,39 @@ OPENBLAS_USE_THREAD:=1
+ # Flags for using libraries available on the system instead of building them.
+ # Please read the notes around usage of SYSTEM flags in README.md
+ # Issues resulting from use of SYSTEM versions will generally not be accepted.
+-USE_SYSTEM_CSL:=0
+-USE_SYSTEM_LLVM:=0
+-USE_SYSTEM_LIBUNWIND:=0
++USE_SYSTEM_CSL:=1
++USE_SYSTEM_LLVM:=1
++USE_SYSTEM_LIBUNWIND:=1
+ DISABLE_LIBUNWIND:=0
+-USE_SYSTEM_PCRE:=0
++USE_SYSTEM_PCRE:=1
+ USE_SYSTEM_LIBM:=0
+-USE_SYSTEM_OPENLIBM:=0
++USE_SYSTEM_OPENLIBM:=1
+ UNTRUSTED_SYSTEM_LIBM:=0
+-USE_SYSTEM_DSFMT:=0
+-USE_SYSTEM_LIBBLASTRAMPOLINE:=0
+-USE_SYSTEM_BLAS:=0
+-USE_SYSTEM_LAPACK:=0
+-USE_SYSTEM_GMP:=0
+-USE_SYSTEM_MPFR:=0
+-USE_SYSTEM_LIBSUITESPARSE:=0
+-USE_SYSTEM_LIBUV:=0
+-USE_SYSTEM_UTF8PROC:=0
+-USE_SYSTEM_MBEDTLS:=0
+-USE_SYSTEM_LIBSSH2:=0
+-USE_SYSTEM_NGHTTP2:=0
+-USE_SYSTEM_CURL:=0
+-USE_SYSTEM_LIBGIT2:=0
+-USE_SYSTEM_PATCHELF:=0
+-USE_SYSTEM_LIBWHICH:=0
+-USE_SYSTEM_ZLIB:=0
+-USE_SYSTEM_P7ZIP:=0
+-USE_SYSTEM_LLD:=0
++USE_SYSTEM_DSFMT:=1
++USE_SYSTEM_LIBBLASTRAMPOLINE:=1
++USE_SYSTEM_BLAS:=1
++USE_SYSTEM_LAPACK:=1
++USE_SYSTEM_GMP:=1
++USE_SYSTEM_MPFR:=1
++USE_SYSTEM_LIBSUITESPARSE:=1
++USE_SYSTEM_LIBUV:=1
++USE_SYSTEM_UTF8PROC:=1
++USE_SYSTEM_MBEDTLS:=1
++USE_SYSTEM_LIBSSH2:=1
++USE_SYSTEM_NGHTTP2:=1
++USE_SYSTEM_CURL:=1
++USE_SYSTEM_LIBGIT2:=1
++USE_SYSTEM_PATCHELF:=1
++USE_SYSTEM_LIBWHICH:=1
++USE_SYSTEM_ZLIB:=1
++USE_SYSTEM_P7ZIP:=1
++USE_SYSTEM_LLD:=1
++
++# Guix override
++USE_INTEL_JITEVENTS:=0
++USE_PERF_JITEVENTS:=0
++USE_BINARYBUILDER:=0
++
+ 
+ # Link to the LLVM shared library
+ USE_LLVM_SHLIB := 1
+@@ -1124,7 +1130,8 @@ else
+ endif
+ 
+ ifeq ($(USE_SYSTEM_UTF8PROC), 1)
+-  LIBUTF8PROC := -lutf8proc
++  # Point to the static lib in Guix
++  LIBUTF8PROC := GUIX_LIBUTF8PROC
+   UTF8PROC_INC := $(LOCALBASE)/include
+ else
+   LIBUTF8PROC := $(build_libdir)/libutf8proc.a
+diff --git a/Makefile b/Makefile
+index ef0ade09e2..6b9177df60 100644
+--- a/Makefile
++++ b/Makefile
+@@ -11,7 +11,8 @@ all: debug release
+ # sort is used to remove potential duplicates
+ DIRS := $(sort $(build_bindir) $(build_depsbindir) $(build_libdir) $(build_private_libdir) $(build_libexecdir) $(build_includedir) $(build_includedir)/julia $(build_sysconfdir)/julia $(build_datarootdir)/julia $(build_datarootdir)/julia/stdlib $(build_man1dir))
+ ifneq ($(BUILDROOT),$(JULIAHOME))
+-BUILDDIRS := $(BUILDROOT) $(addprefix $(BUILDROOT)/,base src src/flisp src/support src/clangsa cli doc deps stdlib test test/clangsa test/embedding test/gcext test/llvmpasses)
++# FIXME: do not build doc yet
++BUILDDIRS := $(BUILDROOT) $(addprefix $(BUILDROOT)/,base src src/flisp src/support src/clangsa cli deps stdlib test test/clangsa test/embedding test/gcext test/llvmpasses)
+ BUILDDIRMAKE := $(addsuffix /Makefile,$(BUILDDIRS)) $(BUILDROOT)/sysimage.mk
+ DIRS := $(DIRS) $(BUILDDIRS)
+ $(BUILDDIRMAKE): | $(BUILDDIRS)
+@@ -64,6 +65,16 @@ julia-deps: | $(DIRS) $(build_datarootdir)/julia/base $(build_datarootdir)/julia
+ # `julia-stdlib` depends on `julia-deps` so that the fake JLL stdlibs can copy in their Artifacts.toml files.
+ julia-stdlib: | $(DIRS) julia-deps
+ 	@$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/stdlib
++	# These files are checked-out during the build phase, but need to be fixed
++	# before the actual build, therefore we sed with a variable we'll fix before
++	# the build phase. It's twisted but it's the only working way I could find.
++	# The " are important to avoid double substitution when doing 'make' then
++	# 'make check'.
++	sed -i 's|"libcholmod"|"GUIX_LIBCHOLMOD"|' usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/cholmod.jl
++	sed -i 's|:libsuitesparseconfig|"GUIX_LIBSC"|' usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/cholmod.jl
++	sed -i 's|:libcholmod|"GUIX_LIBCHOLMOD"|' usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/LibSuiteSparse.jl
++	sed -i 's|:libspqr|"GUIX_LIBSPQR"|' usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/LibSuiteSparse.jl
++	sed -i 's|:libumfpack|"GUIX_LIBUMFPACK"|' usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/LibSuiteSparse.jl
+ 
+ julia-base: julia-deps $(build_sysconfdir)/julia/startup.jl $(build_man1dir)/julia.1 $(build_datarootdir)/julia/julia-config.jl
+ 	@$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/base
+@@ -236,7 +247,9 @@ define stringreplace
+ endef
+ 
+ 
+-install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html
++# Guix FIXME: building the doc requires internet. We should build them in a
++# separate build phase.
++install: $(build_depsbindir)/stringreplace # $(BUILDROOT)/doc/_build/html/en/index.html
+ 	@$(MAKE) $(QUIET_MAKE) $(JULIA_BUILD_MODE)
+ 	@for subdir in $(bindir) $(datarootdir)/julia/stdlib/$(VERSDIR) $(docdir) $(man1dir) $(includedir)/julia $(libdir) $(private_libdir) $(sysconfdir) $(private_libexecdir); do \
+ 		mkdir -p $(DESTDIR)$$subdir; \
+diff --git a/base/Makefile b/base/Makefile
+index 0ea0359c8c..9cee86aeec 100644
+--- a/base/Makefile
++++ b/base/Makefile
+@@ -239,7 +239,10 @@ endif
+ ifneq (,$(LIBGFORTRAN_VERSION))
+ $(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION)))
+ endif
+-$(eval $(call symlink_system_library,CSL,libquadmath,0))
++
++# libquadmath is not available on all architectures.
++# https://github.com/JuliaLang/julia/issues/41613
++$(eval $(call symlink_system_library,CSL,libquadmath,0,ALLOW_FAILURE))
+ $(eval $(call symlink_system_library,CSL,libstdc++,6))
+ # We allow libssp, libatomic and libgomp to fail as they are not available on all systems
+ $(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE))
+diff --git a/cli/Makefile b/cli/Makefile
+index 7ba238e0de..6540f6384a 100644
+--- a/cli/Makefile
++++ b/cli/Makefile
+@@ -7,7 +7,7 @@ include $(JULIAHOME)/deps/llvm-ver.make
+ 
+ HEADERS := $(addprefix $(SRCDIR)/,jl_exports.h loader.h) $(addprefix $(JULIAHOME)/src/,julia_fasttls.h support/platform.h support/dirpath.h jl_exported_data.inc jl_exported_funcs.inc)
+ 
+-LOADER_CFLAGS = $(JCFLAGS) -I$(BUILDROOT)/src -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) -ffreestanding
++LOADER_CFLAGS = -D_GNU_SOURCE $(JCFLAGS) -I$(BUILDROOT)/src -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) -ffreestanding
+ LOADER_LDFLAGS = $(JLDFLAGS) -ffreestanding -L$(build_shlibdir) -L$(build_libdir)
+ 
+ ifeq ($(OS),WINNT)
diff --git a/gnu/packages/patches/julia-Use-MPFR-4.2.patch b/gnu/packages/patches/julia-Use-MPFR-4.2.patch
deleted file mode 100644
index 73a395c89e..0000000000
--- a/gnu/packages/patches/julia-Use-MPFR-4.2.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-This patch backports part of Julia upstream commit:
-
-    1e5fdb29f8858f3244f6aff116ee12e4c8247f3a
-    Author:     Simon Byrne <simon.byrne@HIDDEN>
-    AuthorDate: Tue Jan 10 14:52:36 2023 -0800
-    Commit:     GitHub <noreply@HIDDEN>
-    CommitDate: Tue Jan 10 17:52:36 2023 -0500
-
-    update MPFR to 4.2.0 (#48165)
-
-    Co-authored-by: Mosè Giordano <giordano@HIDDEN>
-
-    6 files changed, 112 insertions(+), 79 deletions(-)
-    base/mpfr.jl                     | 34 ++++++++++++++--
-    deps/checksums/mpfr              | 68 ++++++++++++++++----------------
-    deps/mpfr.version                |  2 +-
-    stdlib/MPFR_jll/Project.toml     |  2 +-
-    stdlib/MPFR_jll/test/runtests.jl |  2 +-
-    test/math.jl                     | 83 +++++++++++++++++++++-------------------
-
-
-diff -ur julia-1.8.3-orig/base/mpfr.jl julia-1.8.3-patch/base/mpfr.jl
---- julia-1.8.3-orig/base/mpfr.jl	2023-04-13 17:50:58.394891391 +0200
-+++ julia-1.8.3-patch/base/mpfr.jl	2023-04-13 20:42:52.551833467 +0200
-@@ -16,7 +16,8 @@
-         cosh, sinh, tanh, sech, csch, coth, acosh, asinh, atanh, lerpi,
-         cbrt, typemax, typemin, unsafe_trunc, floatmin, floatmax, rounding,
-         setrounding, maxintfloat, widen, significand, frexp, tryparse, iszero,
--        isone, big, _string_n, decompose
-+        isone, big, _string_n, decompose, minmax,
-+        sinpi, cospi, sincospi, sind, cosd, tand, asind, acosd, atand
- 
- import ..Rounding: rounding_raw, setrounding_raw
- 
-@@ -745,7 +746,7 @@
- end
- 
- # Functions for which NaN results are converted to DomainError, following Base
--for f in (:sin, :cos, :tan, :sec, :csc, :acos, :asin, :atan, :acosh, :asinh, :atanh)
-+for f in (:sin, :cos, :tan, :sec, :csc, :acos, :asin, :atan, :acosh, :asinh, :atanh, :sinpi, :cospi)
-     @eval begin
-         function ($f)(x::BigFloat)
-             isnan(x) && return x
-@@ -756,6 +757,7 @@
-         end
-     end
- end
-+sincospi(x::BigFloat) = (sinpi(x), cospi(x))
- 
- function atan(y::BigFloat, x::BigFloat)
-     z = BigFloat()
-@@ -763,6 +765,32 @@
-     return z
- end
- 
-+# degree functions
-+for f in (:sin, :cos, :tan)
-+    @eval begin
-+        function ($(Symbol(f,:d)))(x::BigFloat)
-+            isnan(x) && return x
-+            z = BigFloat()
-+            ccall(($(string(:mpfr_,f,:u)), :libmpfr), Int32, (Ref{BigFloat}, Ref{BigFloat}, Culong, MPFRRoundingMode), z, x, 360, ROUNDING_MODE[])
-+            isnan(z) && throw(DomainError(x, "NaN result for non-NaN input."))
-+            return z
-+        end
-+        function ($(Symbol(:a,f,:d)))(x::BigFloat)
-+            isnan(x) && return x
-+            z = BigFloat()
-+            ccall(($(string(:mpfr_a,f,:u)), :libmpfr), Int32, (Ref{BigFloat}, Ref{BigFloat}, Culong, MPFRRoundingMode), z, x, 360, ROUNDING_MODE[])
-+            isnan(z) && throw(DomainError(x, "NaN result for non-NaN input."))
-+            return z
-+        end
-+    end
-+end
-+function atand(y::BigFloat, x::BigFloat)
-+    z = BigFloat()
-+    ccall((:mpfr_atan2u, :libmpfr), Int32, (Ref{BigFloat}, Ref{BigFloat}, Ref{BigFloat}, Culong, MPFRRoundingMode), z, y, x, 360, ROUNDING_MODE[])
-+    return z
-+end
-+
-+
- # Utility functions
- ==(x::BigFloat, y::BigFloat) = ccall((:mpfr_equal_p, :libmpfr), Int32, (Ref{BigFloat}, Ref{BigFloat}), x, y) != 0
- <=(x::BigFloat, y::BigFloat) = ccall((:mpfr_lessequal_p, :libmpfr), Int32, (Ref{BigFloat}, Ref{BigFloat}), x, y) != 0
-@@ -1018,7 +1046,7 @@
-     isfinite(x) || return string(Float64(x))
-     _prettify_bigfloat(string_mpfr(x, fmt))
- end
--_string(x::BigFloat) = _string(x, "%.Re")
-+_string(x::BigFloat) = _string(x, "%Re")
- _string(x::BigFloat, k::Integer) = _string(x, "%.$(k)Re")
- 
- string(b::BigFloat) = _string(b)
-diff -ur julia-1.8.3-orig/test/math.jl julia-1.8.3-patch/test/math.jl
---- julia-1.8.3-orig/test/math.jl	2023-04-13 17:50:58.382891276 +0200
-+++ julia-1.8.3-patch/test/math.jl	2023-04-13 21:13:55.377279761 +0200
-@@ -411,47 +411,51 @@
-     @test rad2deg(pi + (pi/3)*im) ≈ 180 + 60im
- end
- 
-+# ensure zeros are signed the same
-+⩲(x,y) = typeof(x) == typeof(y) && x == y && signbit(x) == signbit(y)
-+⩲(x::Tuple, y::Tuple) = length(x) == length(y) && all(map(⩲,x,y))
-+
- @testset "degree-based trig functions" begin
--    @testset "$T" for T = (Float32,Float64,Rational{Int})
-+    @testset "$T" for T = (Float32,Float64,Rational{Int},BigFloat)
-         fT = typeof(float(one(T)))
-         fTsc = typeof( (float(one(T)), float(one(T))) )
-         for x = -400:40:400
--            @test sind(convert(T,x))::fT ≈ convert(fT,sin(pi/180*x)) atol=eps(deg2rad(convert(fT,x)))
--            @test cosd(convert(T,x))::fT ≈ convert(fT,cos(pi/180*x)) atol=eps(deg2rad(convert(fT,x)))
-+            @test sind(convert(T,x))::fT ≈ sin(pi*convert(fT,x)/180) atol=eps(deg2rad(convert(fT,x)))
-+            @test cosd(convert(T,x))::fT ≈ cos(pi*convert(fT,x)/180) atol=eps(deg2rad(convert(fT,x)))
- 
-             s,c = sincosd(convert(T,x))
--            @test s::fT ≈ convert(fT,sin(pi/180*x)) atol=eps(deg2rad(convert(fT,x)))
--            @test c::fT ≈ convert(fT,cos(pi/180*x)) atol=eps(deg2rad(convert(fT,x)))
-+            @test s::fT ≈ sin(pi*convert(fT,x)/180) atol=eps(deg2rad(convert(fT,x)))
-+            @test c::fT ≈ cos(pi*convert(fT,x)/180) atol=eps(deg2rad(convert(fT,x)))
-         end
-         @testset "sind" begin
--            @test sind(convert(T,0.0))::fT === zero(fT)
--            @test sind(convert(T,180.0))::fT === zero(fT)
--            @test sind(convert(T,360.0))::fT === zero(fT)
--            T != Rational{Int} && @test sind(convert(T,-0.0))::fT === -zero(fT)
--            @test sind(convert(T,-180.0))::fT === -zero(fT)
--            @test sind(convert(T,-360.0))::fT === -zero(fT)
-+            @test sind(convert(T,0.0))::fT ⩲ zero(fT)
-+            @test sind(convert(T,180.0))::fT ⩲ zero(fT)
-+            @test sind(convert(T,360.0))::fT ⩲ zero(fT)
-+            T != Rational{Int} && @test sind(convert(T,-0.0))::fT ⩲ -zero(fT)
-+            @test sind(convert(T,-180.0))::fT ⩲ -zero(fT)
-+            @test sind(convert(T,-360.0))::fT ⩲ -zero(fT)
-             if T <: AbstractFloat
-                 @test isnan(sind(T(NaN)))
-             end
-         end
-         @testset "cosd" begin
--            @test cosd(convert(T,90))::fT === zero(fT)
--            @test cosd(convert(T,270))::fT === zero(fT)
--            @test cosd(convert(T,-90))::fT === zero(fT)
--            @test cosd(convert(T,-270))::fT === zero(fT)
-+            @test cosd(convert(T,90))::fT ⩲ zero(fT)
-+            @test cosd(convert(T,270))::fT ⩲ zero(fT)
-+            @test cosd(convert(T,-90))::fT ⩲ zero(fT)
-+            @test cosd(convert(T,-270))::fT ⩲ zero(fT)
-             if T <: AbstractFloat
-                 @test isnan(cosd(T(NaN)))
-             end
-         end
-         @testset "sincosd" begin
--            @test sincosd(convert(T,-360))::fTsc === ( -zero(fT),  one(fT) )
--            @test sincosd(convert(T,-270))::fTsc === (   one(fT), zero(fT) )
--            @test sincosd(convert(T,-180))::fTsc === ( -zero(fT), -one(fT) )
--            @test sincosd(convert(T, -90))::fTsc === (  -one(fT), zero(fT) )
--            @test sincosd(convert(T,   0))::fTsc === (  zero(fT),  one(fT) )
--            @test sincosd(convert(T,  90))::fTsc === (   one(fT), zero(fT) )
--            @test sincosd(convert(T, 180))::fTsc === (  zero(fT), -one(fT) )
--            @test sincosd(convert(T, 270))::fTsc === (  -one(fT), zero(fT) )
-+            @test sincosd(convert(T,-360))::fTsc ⩲ ( -zero(fT),  one(fT) )
-+            @test sincosd(convert(T,-270))::fTsc ⩲ (   one(fT), zero(fT) )
-+            @test sincosd(convert(T,-180))::fTsc ⩲ ( -zero(fT), -one(fT) )
-+            @test sincosd(convert(T, -90))::fTsc ⩲ (  -one(fT), zero(fT) )
-+            @test sincosd(convert(T,   0))::fTsc ⩲ (  zero(fT),  one(fT) )
-+            @test sincosd(convert(T,  90))::fTsc ⩲ (   one(fT), zero(fT) )
-+            @test sincosd(convert(T, 180))::fTsc ⩲ (  zero(fT), -one(fT) )
-+            @test sincosd(convert(T, 270))::fTsc ⩲ (  -one(fT), zero(fT) )
-             if T <: AbstractFloat
-                 @test_throws DomainError sincosd(T(Inf))
-                 @test all(isnan.(sincosd(T(NaN))))
-@@ -463,22 +467,22 @@
-             "sincospi" => (x->sincospi(x)[1], x->sincospi(x)[2])
-         )
-             @testset "pi * $x" for x = -3:0.3:3
--                @test sinpi(convert(T,x))::fT ≈ convert(fT,sin(pi*x)) atol=eps(pi*convert(fT,x))
--                @test cospi(convert(T,x))::fT ≈ convert(fT,cos(pi*x)) atol=eps(pi*convert(fT,x))
-+                @test sinpi(convert(T,x))::fT ≈ sin(pi*convert(fT,x)) atol=eps(pi*convert(fT,x))
-+                @test cospi(convert(T,x))::fT ≈ cos(pi*convert(fT,x)) atol=eps(pi*convert(fT,x))
-             end
- 
--            @test sinpi(convert(T,0.0))::fT === zero(fT)
--            @test sinpi(convert(T,1.0))::fT === zero(fT)
--            @test sinpi(convert(T,2.0))::fT === zero(fT)
--            T != Rational{Int} && @test sinpi(convert(T,-0.0))::fT === -zero(fT)
--            @test sinpi(convert(T,-1.0))::fT === -zero(fT)
--            @test sinpi(convert(T,-2.0))::fT === -zero(fT)
-+            @test sinpi(convert(T,0.0))::fT ⩲ zero(fT)
-+            @test sinpi(convert(T,1.0))::fT ⩲ zero(fT)
-+            @test sinpi(convert(T,2.0))::fT ⩲ zero(fT)
-+            T != Rational{Int} && @test sinpi(convert(T,-0.0))::fT ⩲ -zero(fT)
-+            @test sinpi(convert(T,-1.0))::fT ⩲ -zero(fT)
-+            @test sinpi(convert(T,-2.0))::fT ⩲ -zero(fT)
-             @test_throws DomainError sinpi(convert(T,Inf))
- 
--            @test cospi(convert(T,0.5))::fT === zero(fT)
--            @test cospi(convert(T,1.5))::fT === zero(fT)
--            @test cospi(convert(T,-0.5))::fT === zero(fT)
--            @test cospi(convert(T,-1.5))::fT === zero(fT)
-+            @test cospi(convert(T,0.5))::fT ⩲ zero(fT)
-+            @test cospi(convert(T,1.5))::fT ⩲ zero(fT)
-+            @test cospi(convert(T,-0.5))::fT ⩲ zero(fT)
-+            @test cospi(convert(T,-1.5))::fT ⩲ zero(fT)
-             @test_throws DomainError cospi(convert(T,Inf))
-         end
-         @testset "Check exact values" begin
-@@ -489,8 +493,8 @@
-             @test sincospi(one(T)/convert(T,6))[1] == 0.5
-             @test_throws DomainError sind(convert(T,Inf))
-             @test_throws DomainError cosd(convert(T,Inf))
--            T != Float32 && @test cospi(one(T)/convert(T,3)) == 0.5
--            T != Float32 && @test sincospi(one(T)/convert(T,3))[2] == 0.5
-+            fT == Float64 && @test isapprox(cospi(one(T)/convert(T,3)), 0.5)
-+            fT == Float64 && @test isapprox(sincospi(one(T)/convert(T,3))[2], 0.5)
-             T == Rational{Int} && @test sinpi(5//6) == 0.5
-             T == Rational{Int} && @test sincospi(5//6)[1] == 0.5
-         end
-@@ -538,8 +542,8 @@
-             end
-         end
-     end
--    @test @inferred(sinc(0//1)) === 1.0
--    @test @inferred(cosc(0//1)) === -0.0
-+    @test @inferred(sinc(0//1)) ⩲ 1.0
-+    @test @inferred(cosc(0//1)) ⩲ -0.0
- 
-     # test right before/after thresholds of Taylor series
-     @test sinc(0.001) ≈ 0.999998355066745 rtol=1e-15

base-commit: f5449685143be0805a8a9b54ddecee94e368c6e9
-- 
2.46.0





Acknowledgement sent to Ludovic Courtès <ludo@HIDDEN>:
New bug report received and forwarded. Copy sent to efraim@HIDDEN, zimon.toutoune@HIDDEN, guix-patches@HIDDEN. Full text available.
Report forwarded to efraim@HIDDEN, zimon.toutoune@HIDDEN, guix-patches@HIDDEN:
bug#73197; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 14 Feb 2025 21:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.