Package: guix-patches;
Reported by: Akira Kyle <akira <at> akirakyle.com>
Date: Thu, 28 Jul 2022 04:24:02 UTC
Severity: normal
Tags: patch
Done: Efraim Flashner <efraim <at> flashner.co.il>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56807 in the body.
You can then email your comments to 56807 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#56807
; Package guix-patches
.
(Thu, 28 Jul 2022 04:24:02 GMT) Full text and rfc822 format available.Akira Kyle <akira <at> akirakyle.com>
:guix-patches <at> gnu.org
.
(Thu, 28 Jul 2022 04:24:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Akira Kyle <akira <at> akirakyle.com> To: guix-patches <at> gnu.org Subject: [PATCH] [WIP] Update Julia to 1.8.0 Date: Wed, 27 Jul 2022 20:22:27 -0600
[Message part 1 (text/plain, inline)]
I'm opening this to have something to track getting Julia updated and to avoid duplication of effort in case anyone else may also be working on updating Julia. The current version in guix is 1.6.3 which was released almost a year ago and wasn't building for me on aarch64 due to https://issues.guix.gnu.org/56711 and this motivated me to see if I couldn't also get the most recent Julia to build! The following patch is just a WIP and not in a state to merge, but it does build for me on aarch64 with the tests disabled. I have not tried running the tests yet. But I am able to install packages using the builtin Julia package manager which I wasn't able to do with guix's julia v1.6.3. A few notes: - Julia now appears to work with an unpatched llvm-13, however it requires building llvm as a shared library with the LLVM_BUILD_LLVM_DYLIB option and not the BUILD_SHARED_LIBS option, however this appears to be the recommended option by the llvm docs. I'm not sure if this breaks other things in guix that depend on llvm. There's a possibly related issue here https://issues.guix.gnu.org/42576 - I hard coded the path to the ca-certificates.crt file in guix as /etc/ssl/certs/ca-certificates.crt however I suspect this is not the right way to do this. I'm sure there's other issues as well, but I'm still relatively new to guix, so some help in getting this polished up would be great! Hopefully it can be ready by the time Julia 1.8.0 is actually released.
[0001-Update-Julia-to-1.8.0-rc3.patch (text/x-patch, inline)]
From 6ddc537390e5d278432f6f6fa6d849ef4bbe1b53 Mon Sep 17 00:00:00 2001 From: Akira Kyle <akira <at> akirakyle.com> Date: Wed, 27 Jul 2022 22:21:44 -0600 Subject: [PATCH] Update Julia to 1.8.0-rc3 --- gnu/local.mk | 3 +- gnu/packages/julia.scm | 157 ++++++++---------- gnu/packages/llvm.scm | 126 +------------- gnu/packages/maths.scm | 33 +++- .../julia-SOURCE_DATE_EPOCH-mtime.patch | 6 +- .../patches/julia-allow-parallel-build.patch | 32 ---- .../patches/julia-fix-include-order.patch | 36 ++++ ...libunwind-julia-fix-GCC10-fno-common.patch | 40 ----- gnu/packages/tls.scm | 15 +- 9 files changed, 149 insertions(+), 299 deletions(-) delete mode 100644 gnu/packages/patches/julia-allow-parallel-build.patch create mode 100644 gnu/packages/patches/julia-fix-include-order.patch delete mode 100644 gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch diff --git a/gnu/local.mk b/gnu/local.mk index 412d512775..87a20ddce6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1335,8 +1335,8 @@ dist_patch_DATA = \ %D%/packages/patches/jfsutils-gcc-compat.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ + %D%/packages/patches/julia-fix-include-order.patch \ %D%/packages/patches/julia-tracker-16-compat.patch \ - %D%/packages/patches/julia-allow-parallel-build.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/libffi-3.3-powerpc-fixes.patch \ %D%/packages/patches/libffi-float128-powerpc64le.patch \ @@ -1424,7 +1424,6 @@ dist_patch_DATA = \ %D%/packages/patches/libtirpc-hurd.patch \ %D%/packages/patches/libtommath-fix-linkage.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ - %D%/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ %D%/packages/patches/libutils-add-includes.patch \ diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 0bdac66175..68d6d7316d 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -61,7 +61,7 @@ (define libunwind-julia (package (inherit libunwind) (name "libunwind-julia") - (version "1.3.1") + (version "1.5.0") (source (origin (method url-fetch) @@ -69,19 +69,16 @@ (define libunwind-julia version ".tar.gz")) (sha256 (base32 - "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3")) + "05qhzcg1xag3l5m3c805np6k342gc0f3g087b7g16jidv59pccwh")) (patches (append - ;; Fix linker issue for i686-linux because GCC10 changed default - ;; (see '-fno-common' option). - (search-patches "libunwind-julia-fix-GCC10-fno-common.patch") (list (julia-patch "libunwind-prefer-extbl" - "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1") + "0pf3lsq6zxlmqn86lk4fcj1xwdan9gbxyabrwgxcb59p8jjwsl8r") (julia-patch "libunwind-static-arm" "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq") (julia-patch "libunwind-cfa-rsp" - "1aswjhvysahhldbzh1afbf0hsjxrvs6xidsz2i7s1cjkjbdiia1z")))))) + "0qs5b1h5lsr5qakkv6sddgy5ghlxpjrn2jiqcvg7bkczy24klr6j")))))) (home-page "https://github.com/JuliaLang/tree/master/deps/"))) (define (julia-patch-url version name) @@ -89,7 +86,7 @@ (define (julia-patch-url version name) "/deps/patches/" name ".patch")) (define-public (julia-patch name sha) - (let ((version "1.6.1")) + (let ((version "1.8.0-rc3")) (origin (method url-fetch) (uri (julia-patch-url version name)) (sha256 (base32 sha)) @@ -139,7 +136,7 @@ (define-public libwhich (define-public julia (package (name "julia") - (version "1.6.3") + (version "1.8.0-rc3") (source (origin (method url-fetch) (uri (string-append @@ -147,10 +144,10 @@ (define-public julia version "/julia-" version ".tar.gz")) (sha256 (base32 - "1515x8fs25l3f9csbmd1v4nm041zvjnvigy6s5iidy4yrkwdx4r5")) + "04g5c3py9h53yk42xpzbnbizcnz197mmns3kirisg4x55dhwq055")) (patches (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch" - "julia-allow-parallel-build.patch")))) + "julia-fix-include-order.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -184,7 +181,8 @@ (define-public julia "gmp" "lapack" "libssh2" "libnghttp2" "libgit2" "mbedtls" "mpfr" - "openblas" "openlibm" "pcre2" + "openblas" "openblas" "libblastrampoline" + "openlibm" "pcre2" "suitesparse" "gfortran:lib")) ":")))) ;; FIXME: Building the documentation requires Julia packages that @@ -197,15 +195,6 @@ (define-public julia (string-append line "\n")) (("src ui doc deps") "src ui deps")))) - (add-after 'unpack 'use-system-libwhich - (lambda* (#:key inputs #:allow-other-keys) - ;; don't build it - (substitute* "deps/Makefile" - (("DEP_LIBS \\+= libwhich") "")) - ;; call our version - (substitute* "base/Makefile" - (("\\$\\$\\(build_depsbindir\\)/libwhich") - (search-input-file inputs "/bin/libwhich"))))) (add-after 'unpack 'change-number-of-precompile-statements (lambda _ ;; Remove nss-certs drops the number of statements below 1200, @@ -245,11 +234,7 @@ (define-public julia (("JLDFLAGS \\+= ") (string-append "JLDFLAGS += " (assoc-ref %build-inputs "libuv") - "/lib/libuv.so "))) - - (substitute* "base/Makefile" - (("\\$\\(build_includedir\\)/uv/errno.h") - (search-input-file inputs "/include/uv/errno.h"))))) + "/lib/libuv.so "))))) (add-before 'build 'replace-default-shell (lambda _ (substitute* "base/client.jl" @@ -288,8 +273,6 @@ (define-public julia (substitute* (jlpath "MPFR") (((from "libmpfr")) (to "mpfr" "libmpfr"))) (substitute* (jlpath "MbedTLS") - ;; For the newer version of mbedtls-apache: - (("libmbedcrypto.so.5") "libmbedcrypto.so.6") (((from "libmbedcrypto")) (to "mbedtls" "libmbedcrypto")) (((from "libmbedtls")) (to "mbedtls" "libmbedtls")) (((from "libmbedx509")) (to "mbedtls" "libmbedx509"))) @@ -317,7 +300,10 @@ (define-public julia (to "suitesparse" "libsuitesparseconfig")) (((from "libumfpack")) (to "suitesparse" "libumfpack"))) (substitute* (jlpath "Zlib") - (((from "libz")) (to "zlib" "libz")))))) + (((from "libz")) (to "zlib" "libz"))) + (substitute* (jlpath "MozillaCACerts") + (("global cacert = .*$") ; what's the better way to do this? + "global cacert = \"/etc/ssl/certs/ca-certificates.crt\"\n"))))) (add-after 'unpack 'enable-parallel-tests (lambda* (#:key parallel-tests? #:allow-other-keys) (setenv "JULIA_CPU_THREADS" (if parallel-tests? @@ -328,7 +314,7 @@ (define-public julia (add-after 'unpack 'adjust-test-suite (lambda* (#:key inputs #:allow-other-keys) (let ((pcre2 (assoc-ref inputs "pcre2")) - (mbedtls-apache (assoc-ref inputs "mbedtls")) + (mbedtls-julia (assoc-ref inputs "mbedtls")) (mpfr (assoc-ref inputs "mpfr")) (gmp (assoc-ref inputs "gmp")) (nghttp2 (assoc-ref inputs "libnghttp2")) @@ -337,7 +323,7 @@ (define-public julia (substitute* "stdlib/PCRE2_jll/test/runtests.jl" (("10.36.0") ,(package-version pcre2))) (substitute* "stdlib/MbedTLS_jll/test/runtests.jl" - (("2.24.0") ,(package-version mbedtls-apache))) + (("2.28.0") ,(package-version mbedtls-apache))) (substitute* "stdlib/MPFR_jll/test/runtests.jl" (("4.1.0") ,(package-version mpfr))) (substitute* "stdlib/GMP_jll/test/runtests.jl" @@ -348,56 +334,56 @@ (define-public julia (("5004") ,(string-replace-substring (version-major+minor (package-version 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" - (("skip_tests = \\[\\]") - "skip_tests = [\"REPL\", \"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 -using Dates: @dateformat_str, Date, DateTime, DateFormat, Time")) - ;; Upstream bug I found when packaging - ;; https://github.com/JuliaLang/julia/issues/35785 - (substitute* "test/file.jl" - (("@test dirname\\(t\\) == d") "@test_broken dirname(t) == d")) - ;; 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.6/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 tests randomly fails because they depend on CPU. - (substitute* "stdlib/LinearAlgebra/test/matmul.jl" - ;; Fixed in v1.6.4 (see: - ;; https://github.com/JuliaLang/julia/blob/v1.6.4/ - ;; stdlib/LinearAlgebra/test/matmul.jl#L155). - (("@test mul\\!\\(C, vf, transpose\\(vf\\), 2, 3\\)\ - == 2vf\\*vf' \\.\\+ 3C0") - "@test mul!(C, vf, transpose(vf), 2, 3) ≈ 2vf*vf' .+ 3C0")) - (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\\)\\)\\)") - " ")))) +; (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" +; (("skip_tests = \\[\\]") +; "skip_tests = [\"REPL\", \"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 +;using Dates: @dateformat_str, Date, DateTime, DateFormat, Time")) +; ;; Upstream bug I found when packaging +; ;; https://github.com/JuliaLang/julia/issues/35785 +; (substitute* "test/file.jl" +; (("@test dirname\\(t\\) == d") "@test_broken dirname(t) == d")) +; ;; 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.6/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 tests randomly fails because they depend on CPU. +; (substitute* "stdlib/LinearAlgebra/test/matmul.jl" +; ;; Fixed in v1.6.4 (see: +; ;; https://github.com/JuliaLang/julia/blob/v1.6.4/ +; ;; stdlib/LinearAlgebra/test/matmul.jl#L155). +; (("@test mul\\!\\(C, vf, transpose\\(vf\\), 2, 3\\)\ +; == 2vf\\*vf' \\.\\+ 3C0") +; "@test mul!(C, vf, transpose(vf), 2, 3) ≈ 2vf*vf' .+ 3C0")) +; (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\\)\\)\\)") +; " ")))) (add-before 'install 'symlink-libraries (lambda* (#:key inputs outputs #:allow-other-keys) (let ((link @@ -479,7 +465,8 @@ (define-public julia "USE_SYSTEM_LAPACK=1" "USE_SYSTEM_GMP=1" "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_SUITESPARSE=1" + "USE_SYSTEM_LIBBLASTRAMPOLINE:=1" + "USE_SYSTEM_LIBSUITESPARSE=1" "USE_SYSTEM_LIBUV=1" "USE_SYSTEM_UTF8PROC=1" "USE_SYSTEM_MBEDTLS=1" @@ -488,8 +475,10 @@ (define-public julia "USE_SYSTEM_CURL=1" "USE_SYSTEM_LIBGIT2=1" "USE_SYSTEM_PATCHELF=1" + "USE_SYSTEM_LIBWHICH:=1" "USE_SYSTEM_ZLIB=1" "USE_SYSTEM_P7ZIP=1" + "VERBOSE=1" "NO_GIT=1" ; build from release tarball. "USE_BLAS64=0" ; needed when USE_SYSTEM_BLAS=1 @@ -503,7 +492,6 @@ (define-public julia (string-append "UTF8PROC_INC=" (assoc-ref %build-inputs "utf8proc") "/include") - "LLVM_VER=11.0.0" "USE_LLVM_SHLIB=1" (string-append "LIBUV=" @@ -525,10 +513,11 @@ (define-public julia ("libssh2" ,libssh2) ("libunwind" ,libunwind-julia) ("libuv" ,libuv-julia) - ("llvm" ,llvm-julia) + ("llvm" ,llvm-13) ("mbedtls" ,mbedtls-apache) ("mpfr" ,mpfr) ("openblas" ,openblas) + ("libblastrampoline" ,libblastrampoline) ("openlibm" ,openlibm) ("p7zip" ,p7zip) ("pcre2" ,pcre2) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 5a2f411eb2..5e1d6b9463 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -591,8 +591,9 @@ (define-public llvm-14 '()) "-DCMAKE_SKIP_BUILD_RPATH=FALSE" "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" - "-DBUILD_SHARED_LIBS:BOOL=TRUE" "-DLLVM_ENABLE_FFI:BOOL=TRUE" + "-DLLVM_BUILD_LLVM_DYLIB=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON" "-DLLVM_REQUIRES_RTTI=1" ;for some third-party utilities "-DLLVM_INSTALL_UTILS=ON") ;needed for rustc ;; Don't use '-g' during the build, to save space. @@ -1804,129 +1805,6 @@ (define-public ocaml-llvm-9 (make-ocaml-llvm llvm-9)) (define-public ocaml-llvm-10 (make-ocaml-llvm llvm-10)) (define-public ocaml-llvm-11 (make-ocaml-llvm llvm-11)) -(define-public llvm-julia - (package - (inherit llvm-11) - (name "llvm-julia") - (properties `((hidden? . #t) - ,@(package-properties llvm-11))) - (source (origin - (inherit (package-source llvm-11)) - ;; Those patches are inside the Julia source repo. - ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm) - ;; but they are required to build Julia. - ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628 - (patches - (map (match-lambda - ((name hash) - (julia-patch name hash))) - (list - '("llvm-D27629-AArch64-large_model_6.0.1" - "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") - '("llvm8-D34078-vectorize-fdiv" - "19spqc3xsazn1xs9gpcgv9ldadfkv49rmc5khl7sf1dlmhgi4602") - '("llvm-7.0-D44650" - "1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir") - '("llvm7-symver-jlprefix" - "00ng32x6xhm9czczirn5r1q1mc1myad44fqhi061hwh1vb46dwgm") - '("llvm-6.0-DISABLE_ABI_CHECKS" - "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") - '("llvm9-D50010-VNCoercion-ni" - "1s1d3sjsiq4vxg7ncy5cz56zgy5vcq6ls3iqaiqkvr23wyryqmdx") - '("llvm7-revert-D44485" - "0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n") - '("llvm-11-D75072-SCEV-add-type" - "176xi1lnbnv2rcs05ywhyb7pd0xgmibayvwzksksg44wg2dh8mbx") - '("llvm-julia-tsan-custom-as" - "0awh40kf6lm4wn1nsjd1bmhfwq7rqj811szanp2xkpspykw9hg9s") - '("llvm-D80101" - "1gsdwmgmpbignvqyxcnlprj899259p3dvdznlncd84ss445qgq3j") - '("llvm-D84031" - "0nks9sbk7p0r5gyr0idrmm93a5fmdai8kihz9532dx4zhcvvqbjc") - '("llvm-10-D85553" - "1zjq7j9q2qp56hwkc8yc8f0z7kvam3j7hj8sb7qyd77r255ff78l") - '("llvm-10-unique_function_clang-sa" - "1jys9w2zqk3dasnxqh0qz5ij7rxi6mkgq9pqjsclmamr5169zyan") - ;'("llvm-D88630-clang-cmake" - ; "0rs6s71nqnjkny7i69gqazhqj5jqfdr0bkxs2v5a55sfx8fa1k54") - '("llvm-11-D85313-debuginfo-empty-arange" - "1f672d5385xpgb8yrim8d3b7wg2z1l81agnshm1q61kdvjixqx32") - '("llvm-11-D90722-rtdyld-absolute-relocs" - "0kmnai229yyxkmpk9lxd180mcnhk2i8d87k2sg89gc8as18w10r6") - '("llvm-invalid-addrspacecast-sink" - "1n1b7j4s80vj7x5377aj9vyphmxx1q6bm0chhkxp6zsy3mx3g2ry") - '("llvm-11-D92906-ppc-setjmp" - "0cmd4dsblp7a8m03j16dqxws0ijh55zf4jzzxmj341qxa1gamdp9") - '("llvm-11-PR48458-X86ISelDAGToDAG" - "0vwzvlhsdazhxg4gj8g2f00a4f8qc5cgac23w575xk3pgba1jh6y") - '("llvm-11-D93092-ppc-knownbits" - "1748bypsc7c9lbs3fnkv0kwvch6bn85kj98j4jdaz254ig0wa6xj") - '("llvm-11-D93154-globalisel-as" - "1k5wd4z3pa7zj0gyjkif7viqj906dhqlbb7dc95gig40nbxv6zpj") - '("llvm-11-ppc-half-ctr" - "0piywisfz6cmw3133kz7vzhiqflq2y7igakqxlym0gi8pqylv7w9") - '("llvm-11-ppc-sp-from-bp" - "1wmg3485cx5f9pbykyl3jibk1wwv4w1x30hl4jyfndzr2yh8azf9") - '("llvm-rGb498303066a6-gcc11-header-fix" - "0hkd4rwhvh8g2yh13g29wiwnjpv2yd1hdyiv1ryw8izl25bz9c67") - '("llvm-11-D94813-mergeicmps" - "0cmy0ywkgyrdcvr9bd6pd912lyd4gcsrib4z0v05dwgcdxhk7y29") - '("llvm-11-D94980-CTR-half" - "1yf8cxib3z8hz7zi9n6v2g2c6vpfr4slq9hpx8m8yq8f1jbyw3fw") - '("llvm-11-D94058-sext-atomic-ops" - "1x6p6k6q651z5jcqxx8vj17cxnv196mka7mwn7dpp6c23lwgfdpb") - '("llvm-11-D96283-dagcombine-half" - "0lv4iq2f8qrcz1xyxfic3bcr5p0aqam3a7c6pp6fnw3riixm096k")))) - (patch-flags '("-p1")))) - (arguments - (substitute-keyword-arguments (package-arguments llvm-11) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'patch-round-two - ;; We have to do the patching in two rounds because we can't - ;; pass '-p1' and '-p2' in the source field. - (lambda* (#:key inputs #:allow-other-keys) - (map (lambda (patchname) - (invoke "patch" patchname "-p2")) - (list "llvm-11-AArch64-FastIsel-bug" - "llvm-11-D97435-AArch64-movaddrreg" - "llvm-11-D97571-AArch64-loh" - "llvm-11-aarch64-addrspace")))))) - ((#:build-type _) "Release") - ((#:configure-flags flags) - `(list - ;; Build a native compiler and the NVPTX backend (NVIDIA) since - ;; Julia insists on it, nothing more. This reduces build times and - ;; disk usage. - ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) - "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" - - "-DLLVM_INSTALL_UTILS=ON" - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" - "-DLLVM_ENABLE_DUMP=ON" - "-DLLVM_LINK_LLVM_DYLIB=ON" - "-DLLVM_VERSION_SUFFIX:STRING=jl")))) - (inputs - (append - (package-inputs llvm-11) - `(("llvm-11-AArch64-FastIsel-bug" - ,(julia-patch "llvm-11-AArch64-FastIsel-bug" - "1m2vddj1mw4kbij8hbrx82piyy6bvr2x7wwdnlxfaqcm72ipzyh9")) - ("llvm-11-D97435-AArch64-movaddrreg" - ,(julia-patch "llvm-11-D97435-AArch64-movaddrreg" - "10jnavq9ljkj7j2gqj2zd1pwqpqb5zs3zp9h96pmz0djbmxwa86y")) - ("llvm-11-D97571-AArch64-loh" - ,(julia-patch "llvm-11-D97571-AArch64-loh" - "128zcbg1w1j7hngsf7z1a7alc6lig6l2rqgjp6i8nk3k3f842v6n")) - ("llvm-11-aarch64-addrspace" - ,(julia-patch "llvm-11-aarch64-addrspace" - "0ckbzgfirxrf2d5bpinpngp7gnilbjrk0cbdfyl3h6f5v6i6xj6m"))))))) - (define %cling-version "0.9") (define llvm-cling ;LLVM 9 with approximately 10 patches for cling diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6a84f47468..c702a33cac 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4581,6 +4581,35 @@ (define-public openblas "OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.") (license license:bsd-3))) +(define-public libblastrampoline + (package + (name "libblastrampoline") + (version "5.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaLinearAlgebra/libblastrampoline") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mf79zw11kxyil72y2ly5x8bbz3ng3nsqmp0zcps16b69wvfs19c")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list "-C" "src" + (string-append "prefix=" (assoc-ref %outputs "out")) + "CC=gcc") + #:tests? #f ;no check target + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/JuliaLinearAlgebra/libblastrampoline") + (synopsis "Using PLT trampolines to provide a BLAS and LAPACK demuxing library. ") + (description + "Using PLT trampolines to provide a BLAS and LAPACK demuxing library. ") + (license license:expat))) + (define-public openblas-ilp64 (package/inherit openblas (name "openblas-ilp64") @@ -4700,7 +4729,7 @@ (define ignorance blis) (define-public openlibm (package (name "openlibm") - (version "0.7.4") + (version "0.8.1") (source (origin (method git-fetch) @@ -4709,7 +4738,7 @@ (define-public openlibm (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1azms0lpxb7vxb3bln5lyz0wpwx6jnzbffkclclpq2v5aiw8d14i")))) + (base32 "1xsrcr49z0wdqpwd98jmw2xh18myzsa9xman0kp1h2i89x8mic5b")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch index b60f284923..d156807dab 100644 --- a/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch +++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch @@ -8,15 +8,15 @@ Patch by Nicoló Balzarotti <nicolo <at> nixo.xyz>. --- a/base/loading.jl +++ b/base/loading.jl -@@ -807,7 +807,10 @@ - path = normpath(joinpath(dirname(prev), _path)) +@@ -1131,7 +1131,10 @@ function _include_dependency(mod::Module, _path::AbstractString) end if _track_dependencies[] + @lock require_lock begin - push!(_require_dependencies, (mod, path, mtime(path))) + push!(_require_dependencies, + (mod, path, + haskey(ENV, "SOURCE_DATE_EPOCH") ? + parse(Float64, ENV["SOURCE_DATE_EPOCH"]) : mtime(path))) + end end return path, prev - end diff --git a/gnu/packages/patches/julia-allow-parallel-build.patch b/gnu/packages/patches/julia-allow-parallel-build.patch deleted file mode 100644 index cc1d42fee4..0000000000 --- a/gnu/packages/patches/julia-allow-parallel-build.patch +++ /dev/null @@ -1,32 +0,0 @@ -Allow parallel tests with isolated environment. - -See https://github.com/JuliaLang/julia/issues/43205 and -https://github.com/JuliaLang/julia/pull/43211. - -diff --git a/test/runtests.jl b/test/runtests.jl -index 2f9cd058bb..150395e78c 100644 ---- a/test/runtests.jl -+++ b/test/runtests.jl -@@ -4,7 +4,7 @@ using Test - using Distributed - using Dates - import REPL --using Printf: @sprintf -+using Printf: @sprintf, @printf - using Base: Experimental - - include("choosetests.jl") -@@ -83,11 +83,12 @@ prepend!(tests, linalg_tests) - import LinearAlgebra - cd(@__DIR__) do - n = 1 -- if net_on -+ if net_on || haskey(ENV, "JULIA_CPU_THREADS") - n = min(Sys.CPU_THREADS, length(tests)) - n > 1 && addprocs_with_testenv(n) - LinearAlgebra.BLAS.set_num_threads(1) - end -+ @printf("Number of threads: %i\n", n) - skipped = 0 - - @everywhere include("testdefs.jl") diff --git a/gnu/packages/patches/julia-fix-include-order.patch b/gnu/packages/patches/julia-fix-include-order.patch new file mode 100644 index 0000000000..bc67ba1acd --- /dev/null +++ b/gnu/packages/patches/julia-fix-include-order.patch @@ -0,0 +1,36 @@ +From 3cd2c70ded3eb6b6fa01077c4a57c9611ffd385f Mon Sep 17 00:00:00 2001 +From: Akira Kyle <akira <at> akirakyle.com> +Date: Mon, 25 Jul 2022 21:11:15 -0600 +Subject: [PATCH] Fix ordering of headers so `#define _GNU_SOURCE` comes first + +https://github.com/JuliaLang/julia/pull/46183 + +--- + cli/loader.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cli/loader.h b/cli/loader.h +index 2d0b977f71..0620113048 100644 +--- a/cli/loader.h ++++ b/cli/loader.h +@@ -22,8 +22,6 @@ + #define realloc loader_realloc + #endif + +-#include <stdint.h> +- + #ifdef _OS_WINDOWS_ + + #define WIN32_LEAN_AND_MEAN +@@ -49,6 +47,8 @@ + + #endif + ++#include <stdint.h> ++ + // Borrow definition from `support/dtypes.h` + #ifdef _OS_WINDOWS_ + # ifdef LIBRARY_EXPORTS +-- +2.36.1 + diff --git a/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch b/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch deleted file mode 100644 index 8ef4b111e4..0000000000 --- a/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix compilation with -fno-common. - -Borrowed from upstream 29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e. -Author: Yichao Yu <yyc1992 <at> gmail.com> -AuthorDate: Tue Mar 31 00:43:32 2020 -0400 -Commit: Dave Watson <dade.watson <at> gmail.com> -CommitDate: Tue Mar 31 08:06:29 2020 -0700 - -diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c -index f6b8dc2..9550efa 100644 ---- a/src/x86/Ginit.c -+++ b/src/x86/Ginit.c -@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) - - # endif /* UNW_LOCAL_ONLY */ - --HIDDEN unw_dyn_info_list_t _U_dyn_info_list; -- --/* XXX fix me: there is currently no way to locate the dyn-info list -- by a remote unwinder. On ia64, this is done via a special -- unwind-table entry. Perhaps something similar can be done with -- DWARF2 unwind info. */ -- - static void - put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) - { -@@ -71,7 +64,12 @@ static int - get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, - void *arg) - { -- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; -+#ifndef UNW_LOCAL_ONLY -+# pragma weak _U_dyn_info_list_addr -+ if (!_U_dyn_info_list_addr) -+ return -UNW_ENOINFO; -+#endif -+ *dyn_info_list_addr = _U_dyn_info_list_addr (); - return 0; - } - diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 1ee5400a9c..43b3986fa8 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -948,7 +948,7 @@ (define-public mbedtls-apache (name "mbedtls-apache") ;; XXX Check whether ‘-Wformat-signedness’ still breaks mbedtls-for-hiawatha ;; when updating. - (version "2.26.0") + (version "2.28.0") (source (origin (method git-fetch) @@ -956,17 +956,8 @@ (define-public mbedtls-apache (url "https://github.com/ARMmbed/mbedtls") (commit (string-append "mbedtls-" version)))) (sha256 - (base32 "0scwpmrgvg6q7rvqkc352d2fqlsx0aylcbyibcp1f1rsn8iiif2m")) - (file-name (git-file-name name version)) - (modules '((guix build utils))) - (snippet - '(begin - ;; Can be removed with the next version. - ;; Reduce level of format truncation warnings due to false positives. - ;; https://github.com/ARMmbed/mbedtls/commit/2065a8d8af27c6cb1e40c9462b5933336dca7434 - (substitute* "CMakeLists.txt" - (("Wformat-truncation=2") "Wformat-truncation")) - #t)))) + (base32 "0s37dsi29v7146fi9k4frvx5rz2snxdm6c3rwq2fvnca2r80hfjl")) + (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments `(#:configure-flags -- 2.36.1
guix-patches <at> gnu.org
:bug#56807
; Package guix-patches
.
(Sun, 07 Aug 2022 02:48:01 GMT) Full text and rfc822 format available.Message #8 received at 56807 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: Akira Kyle <akira <at> akirakyle.com> Cc: 56807 <at> debbugs.gnu.org Subject: Re: [bug#56807] [PATCH] [WIP] Update Julia to 1.8.0 Date: Sun, 7 Aug 2022 05:47:09 +0300
[Message part 1 (text/plain, inline)]
I started with your patch and made a few changes on top of it. I haven't started looking into the test suite yet. -- Efraim Flashner <efraim <at> flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
[julia-1.8.0-updates.diff (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#56807
; Package guix-patches
.
(Tue, 23 Aug 2022 08:38:01 GMT) Full text and rfc822 format available.Message #11 received at 56807 <at> debbugs.gnu.org (full text, mbox):
From: Jean-Baptiste Volatier <jbv <at> pm.me> To: "56807 <at> debbugs.gnu.org" <56807 <at> debbugs.gnu.org> Subject: Re: [bug#56807] [PATCH] [WIP] Update Julia to 1.8.0 Date: Tue, 23 Aug 2022 08:37:28 +0000
Hi, I had not seen that patch when I submitted #57324 (update to 1.6.7). Maybe this is still of interest of having both, 1.6 being the long term support version, otherwise #57324 should be closed. Also, as I mentioned in the other bug report it is possible to build the julia package against the git checkout of julia, with the benefit of un-bundling the stdlibs dependencies which can then have their own packages. Best regards, JB.
Efraim Flashner <efraim <at> flashner.co.il>
:Akira Kyle <akira <at> akirakyle.com>
:Message #16 received at 56807-done <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: Akira Kyle <akira <at> akirakyle.com> Cc: 56807-done <at> debbugs.gnu.org Subject: Re: [bug#56807] [PATCH] [WIP] Update Julia to 1.8.0 Date: Mon, 12 Dec 2022 15:13:46 +0200
[Message part 1 (text/plain, inline)]
With julia pushed to 1.8.3 we can close this bug now. -- Efraim Flashner <efraim <at> flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 10 Jan 2023 12:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.