emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#56807: closed ([PATCH] [WIP] Update Julia to 1.8.0)


From: GNU bug Tracking System
Subject: bug#56807: closed ([PATCH] [WIP] Update Julia to 1.8.0)
Date: Mon, 12 Dec 2022 13:14:02 +0000

Your message dated Mon, 12 Dec 2022 15:13:46 +0200
with message-id <Y5cpCpT65rwL0lV3@3900XT>
and subject line Re: [bug#56807] [PATCH] [WIP] Update Julia to 1.8.0
has caused the debbugs.gnu.org bug report #56807,
regarding [PATCH] [WIP] Update Julia to 1.8.0
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
56807: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56807
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH] [WIP] Update Julia to 1.8.0 Date: Wed, 27 Jul 2022 20:22:27 -0600 User-agent: mu4e 1.6.11; emacs 29.0.50 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.

>From 6ddc537390e5d278432f6f6fa6d849ef4bbe1b53 Mon Sep 17 00:00:00 2001
From: Akira Kyle <akira@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@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@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@gmail.com>
-AuthorDate: Tue Mar 31 00:43:32 2020 -0400
-Commit:     Dave Watson <dade.watson@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


--- End Message ---
--- Begin Message --- Subject: Re: [bug#56807] [PATCH] [WIP] Update Julia to 1.8.0 Date: Mon, 12 Dec 2022 15:13:46 +0200
With julia pushed to 1.8.3 we can close this bug now.

-- 
Efraim Flashner   <efraim@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

Attachment: signature.asc
Description: PGP signature


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]