Patchwork [v8] gnu: Update ldc to 0.17.1.

login
register
mail settings
Submitter Danny Milosavljevic
Date Sept. 13, 2016, 8:01 p.m.
Message ID <20160913200139.17708-1-dannym@scratchpost.org>
Download mbox | patch
Permalink /patch/15600/
State New
Headers show

Comments

Danny Milosavljevic - Sept. 13, 2016, 8:01 p.m.
gnu: Update ldc to 0.17.1.

* gnu/packages/ldc.scm (ldc): Changed.
* gnu/packages/patches/ldc-0.17.1-disable-tests.patch: New patch.
---
 gnu/packages/ldc.scm                               | 25 ++++---
 .../patches/ldc-0.17.1-disable-tests.patch         | 86 ++++++++++++++++++++++
 2 files changed, 101 insertions(+), 10 deletions(-)
 create mode 100644 gnu/packages/patches/ldc-0.17.1-disable-tests.patch
Efraim Flashner - Sept. 14, 2016, 1:25 p.m.
On Tue, Sep 13, 2016 at 10:01:39PM +0200, Danny Milosavljevic wrote:
> gnu: Update ldc to 0.17.1.
> 
> * gnu/packages/ldc.scm (ldc): Changed.
> * gnu/packages/patches/ldc-0.17.1-disable-tests.patch: New patch.
> ---
>  gnu/packages/ldc.scm                               | 25 ++++---
>  .../patches/ldc-0.17.1-disable-tests.patch         | 86 ++++++++++++++++++++++
>  2 files changed, 101 insertions(+), 10 deletions(-)
>  create mode 100644 gnu/packages/patches/ldc-0.17.1-disable-tests.patch
> 

> diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
> index 560fa49..88f3443 100644
> --- a/gnu/packages/ldc.scm
> +++ b/gnu/packages/ldc.scm
> @@ -29,6 +29,7 @@
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages libedit)
>    #:use-module (gnu packages llvm)
> +  #:use-module (gnu packages python)
>    #:use-module (gnu packages textutils)
>    #:use-module (gnu packages zip))
>  
> @@ -76,7 +77,7 @@ and freshness without requiring additional information from the user.")
>  (define-public ldc
>    (package
>      (name "ldc")
> -    (version "0.16.1")
> +    (version "0.17.1")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append
> @@ -85,10 +86,9 @@ and freshness without requiring additional information from the user.")
>                (file-name (string-append name "-" version ".tar.gz"))
>                (sha256
>                 (base32
> -                "1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40"))))
> +                "0rwggnbr60jbajfdw11kx058llmwljiss8rrv8df07vaygiv845i"))))
>      (build-system cmake-build-system)
> -    ;; LDC currently only supports the x86_64 and i686 architectures.
> -    (supported-systems '("x86_64-linux" "i686-linux"))
> +    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
>      (arguments
>       `(#:phases
>         (modify-phases %standard-phases
> @@ -105,10 +105,13 @@ and freshness without requiring additional information from the user.")
>           (add-after 'unpack-submodule-sources 'patch-dmd2
>             (lambda* (#:key inputs #:allow-other-keys)
>               (substitute* "dmd2/root/port.c"
> +               (("#include <math.h>") "#include <cmath>")
>                 ((" ::isnan") " isnan")
>                 ((" ::isinf") " isinf")
> -               (("#undef isnan") "")
> -               (("#undef isinf") ""))
> +               (("#undef isnan") "#undef isnan
> +using namespace std;")
> +               (("#undef isinf") "#undef isinf
> +using namespace std;"))
>               #t))
>           (add-after 'unpack-submodule-sources 'patch-phobos
>             (lambda* (#:key inputs #:allow-other-keys)
> @@ -130,6 +133,8 @@ and freshness without requiring additional information from the user.")
>       `(("llvm" ,llvm-3.7)
>         ("clang" ,clang-3.7)
>         ("unzip" ,unzip)
> +       ("python-wrapper" ,python-wrapper) ; Needed for running tests
> +       ("python-lit" ,python-lit) ; Needed for running tests
>         ("phobos-src"
>          ,(origin
>             (method url-fetch)
> @@ -138,8 +143,8 @@ and freshness without requiring additional information from the user.")
>                   version ".tar.gz"))
>             (sha256
>              (base32
> -             "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
> -           (patches (search-patches "ldc-disable-tests.patch"))))
> +             "17nb1yvqblqj3q42c8nlnwvy823fw6kna28n2b48j4m6kd2w0nan"))
> +           (patches (search-patches "ldc-0.17.1-disable-tests.patch"))))
>         ("druntime-src"
>          ,(origin
>             (method url-fetch)
> @@ -148,7 +153,7 @@ and freshness without requiring additional information from the user.")
>                   version ".tar.gz"))
>             (sha256
>              (base32
> -             "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"))))
> +             "129j7mfd0vnzaw7i6hr5waxm5cb0qcm8gyawy2xy5avlv8hrw5m4"))))
>         ("dmd-testsuite-src"
>          ,(origin
>             (method url-fetch)
> @@ -157,7 +162,7 @@ and freshness without requiring additional information from the user.")
>                   version ".tar.gz"))
>             (sha256
>              (base32
> -             "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1"))))))
> +             "18h16lwwmr3k9dh7mcip17il72mz680wnygv9d0mdnivczn80zyv"))))))
>      (home-page "http://wiki.dlang.org/LDC")
>      (synopsis "LLVM compiler for the D programming language")
>      (description
> diff --git a/gnu/packages/patches/ldc-0.17.1-disable-tests.patch b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
> new file mode 100644
> index 0000000..b213894
> --- /dev/null
> +++ b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
> @@ -0,0 +1,86 @@
> +Adapted from "ldc-disable-tests.patch" from Guix.
> +diff -ru a/std/datetime.d b/std/datetime.d
> +--- a/std/datetime.d	2016-08-02 23:56:13.969292202 +0200
> ++++ b/std/datetime.d	2016-08-02 23:57:39.078408313 +0200
> +@@ -28080,9 +28080,6 @@
> +         import std.algorithm : sort;
> +         import std.range : retro;
> +         import std.format : format;
> +-
> +-        name = strip(name);
> +-
> +         enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
> +         enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
> + 
> +@@ -28094,7 +28091,10 @@
> +             immutable file = buildNormalizedPath(tzDatabaseDir, tzFilename);
> +         }
> +         else
> +-            immutable file = buildNormalizedPath(tzDatabaseDir, name);
> ++        {
> ++            auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
> ++            immutable file = buildNormalizedPath(tzDatabaseDir, filename);
> ++        }
> + 
> +         enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
> +         enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
> +diff -ru a/std/path.d b/std/path.d
> +--- a/std/path.d	2016-08-02 23:56:03.781158908 +0200
> ++++ b/std/path.d	2016-08-02 23:54:06.111624406 +0200
> +@@ -3724,8 +3724,8 @@
> +         }
> +         else
> +         {
> +-            assert(expandTilde("~root") == "/root", expandTilde("~root"));
> +-            assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
> ++            //assert(expandTilde("~root") == "/root", expandTilde("~root"));
> ++            //assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
> +         }
> +         assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
> +     }
> +diff -ru a/std/socket.d b/std/socket.d
> +--- a/std/socket.d	2016-08-02 23:56:22.881408857 +0200
> ++++ b/std/socket.d	2016-08-03 10:09:44.761019447 +0200
> +@@ -501,18 +501,19 @@
> + version(CRuntime_Bionic) {} else
> + unittest
> + {
> +-    softUnittest({
> ++    pragma(msg, "test disabled on GNU Guix");
> ++    //softUnittest({
> +         Protocol proto = new Protocol;
> +-        assert(proto.getProtocolByType(ProtocolType.TCP));
> ++        //assert(proto.getProtocolByType(ProtocolType.TCP));
> +         //writeln("About protocol TCP:");
> +         //writefln("\tName: %s", proto.name);
> +         // foreach(string s; proto.aliases)
> +         // {
> +         //      writefln("\tAlias: %s", s);
> +         // }
> +-        assert(proto.name == "tcp");
> +-        assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
> +-    });
> ++        //assert(proto.name == "tcp");
> ++        //assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
> ++    //});
> + }
> + 
> + 
> +@@ -842,6 +843,8 @@
> + 
> + unittest
> + {
> ++    pragma(msg, "test disabled on GNU Guix");
> ++    /*
> +     InternetHost ih = new InternetHost;
> + 
> +     ih.getHostByAddr(0x7F_00_00_01);
> +@@ -872,6 +875,7 @@
> +         //      writefln("aliases[%d] = %s", i, s);
> +         // }
> +     });
> ++    */
> + }
> + 
> + 
> +Only in b/std: socket.d.orig

With this patch I got:

The following tests FAILED:
238 - std.datetime (Failed)
296 - std.regex.internal.tests (Failed)
568 - std.datetime-debug (Failed)
626 - std.regex.internal.tests-debug (Failed)
670 - dmd-testsuite-debug (Failed)
Ludovic Courtès - Sept. 14, 2016, 2:54 p.m.
Hi Danny,

Here’s what I see in my inbox:

--8<---------------cut here---------------start------------->8---
Yesterday, 21:37 [  10: Danny Milosavljevic    ] [PATCH v5] gnu: Update ldc to 0.17.1.
Yesterday, 21:51 [  10: Danny Milosavljevic    ] [PATCH v6] gnu: Update ldc to 0.17.1.
Yesterday, 21:56 [  11: Danny Milosavljevic    ] [PATCH v7] gnu: Update ldc to 0.17.1.
Yesterday, 22:02 [  60: Stefan Reichör         ] New package: python-glances
Yesterday, 22:01 [  11: Danny Milosavljevic    ] [PATCH v8] gnu: Update ldc to 0.17.1.
--8<---------------cut here---------------end--------------->8---

4 revisions of one patch in 20 minutes without any review in between.
:-)  This can be confusing to potential reviewers!

Ludo’.
Danny Milosavljevic - Sept. 14, 2016, 3:55 p.m.
Hi,

> With this patch I got:
> 
> The following tests FAILED:
> 238 - std.datetime (Failed)
> 296 - std.regex.internal.tests (Failed)
> 568 - std.datetime-debug (Failed)
> 626 - std.regex.internal.tests-debug (Failed)
> 670 - dmd-testsuite-debug (Failed)

Huh really?

I just cloned the guix git repo into a new directory, applied exactly this patch, bootstrapped, built everything, then did ./pre-inst-env guix package -i ldc and it worked, tests and all... (on x86_64 on GuixSD)

Which architecture was your test on?

Can you check what exactly failed? There should be a log in there (if you built it using "--keep-failed" at least).
Efraim Flashner - Sept. 14, 2016, 4:40 p.m.
On Wed, Sep 14, 2016 at 05:55:37PM +0200, Danny Milosavljevic wrote:
> Hi,
> 
> > With this patch I got:
> > 
> > The following tests FAILED:
> > 238 - std.datetime (Failed)
> > 296 - std.regex.internal.tests (Failed)
> > 568 - std.datetime-debug (Failed)
> > 626 - std.regex.internal.tests-debug (Failed)
> > 670 - dmd-testsuite-debug (Failed)
> 
> Huh really?
> 
> I just cloned the guix git repo into a new directory, applied exactly this patch, bootstrapped, built everything, then did ./pre-inst-env guix package -i ldc and it worked, tests and all... (on x86_64 on GuixSD)
> 
> Which architecture was your test on?
> 
> Can you check what exactly failed? There should be a log in there (if you built it using "--keep-failed" at least).

I'm running guix on debian, on x86_64. I didn't build with -K
unfortunately.

Patch

diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 560fa49..88f3443 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -29,6 +29,7 @@ 
   #:use-module (gnu packages compression)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages zip))
 
@@ -76,7 +77,7 @@  and freshness without requiring additional information from the user.")
 (define-public ldc
   (package
     (name "ldc")
-    (version "0.16.1")
+    (version "0.17.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -85,10 +86,9 @@  and freshness without requiring additional information from the user.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40"))))
+                "0rwggnbr60jbajfdw11kx058llmwljiss8rrv8df07vaygiv845i"))))
     (build-system cmake-build-system)
-    ;; LDC currently only supports the x86_64 and i686 architectures.
-    (supported-systems '("x86_64-linux" "i686-linux"))
+    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -105,10 +105,13 @@  and freshness without requiring additional information from the user.")
          (add-after 'unpack-submodule-sources 'patch-dmd2
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "dmd2/root/port.c"
+               (("#include <math.h>") "#include <cmath>")
                ((" ::isnan") " isnan")
                ((" ::isinf") " isinf")
-               (("#undef isnan") "")
-               (("#undef isinf") ""))
+               (("#undef isnan") "#undef isnan
+using namespace std;")
+               (("#undef isinf") "#undef isinf
+using namespace std;"))
              #t))
          (add-after 'unpack-submodule-sources 'patch-phobos
            (lambda* (#:key inputs #:allow-other-keys)
@@ -130,6 +133,8 @@  and freshness without requiring additional information from the user.")
      `(("llvm" ,llvm-3.7)
        ("clang" ,clang-3.7)
        ("unzip" ,unzip)
+       ("python-wrapper" ,python-wrapper) ; Needed for running tests
+       ("python-lit" ,python-lit) ; Needed for running tests
        ("phobos-src"
         ,(origin
            (method url-fetch)
@@ -138,8 +143,8 @@  and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
-           (patches (search-patches "ldc-disable-tests.patch"))))
+             "17nb1yvqblqj3q42c8nlnwvy823fw6kna28n2b48j4m6kd2w0nan"))
+           (patches (search-patches "ldc-0.17.1-disable-tests.patch"))))
        ("druntime-src"
         ,(origin
            (method url-fetch)
@@ -148,7 +153,7 @@  and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"))))
+             "129j7mfd0vnzaw7i6hr5waxm5cb0qcm8gyawy2xy5avlv8hrw5m4"))))
        ("dmd-testsuite-src"
         ,(origin
            (method url-fetch)
@@ -157,7 +162,7 @@  and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1"))))))
+             "18h16lwwmr3k9dh7mcip17il72mz680wnygv9d0mdnivczn80zyv"))))))
     (home-page "http://wiki.dlang.org/LDC")
     (synopsis "LLVM compiler for the D programming language")
     (description
diff --git a/gnu/packages/patches/ldc-0.17.1-disable-tests.patch b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
new file mode 100644
index 0000000..b213894
--- /dev/null
+++ b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
@@ -0,0 +1,86 @@ 
+Adapted from "ldc-disable-tests.patch" from Guix.
+diff -ru a/std/datetime.d b/std/datetime.d
+--- a/std/datetime.d	2016-08-02 23:56:13.969292202 +0200
++++ b/std/datetime.d	2016-08-02 23:57:39.078408313 +0200
+@@ -28080,9 +28080,6 @@
+         import std.algorithm : sort;
+         import std.range : retro;
+         import std.format : format;
+-
+-        name = strip(name);
+-
+         enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
+         enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
+ 
+@@ -28094,7 +28091,10 @@
+             immutable file = buildNormalizedPath(tzDatabaseDir, tzFilename);
+         }
+         else
+-            immutable file = buildNormalizedPath(tzDatabaseDir, name);
++        {
++            auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
++            immutable file = buildNormalizedPath(tzDatabaseDir, filename);
++        }
+ 
+         enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
+         enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
+diff -ru a/std/path.d b/std/path.d
+--- a/std/path.d	2016-08-02 23:56:03.781158908 +0200
++++ b/std/path.d	2016-08-02 23:54:06.111624406 +0200
+@@ -3724,8 +3724,8 @@
+         }
+         else
+         {
+-            assert(expandTilde("~root") == "/root", expandTilde("~root"));
+-            assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
++            //assert(expandTilde("~root") == "/root", expandTilde("~root"));
++            //assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
+         }
+         assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
+     }
+diff -ru a/std/socket.d b/std/socket.d
+--- a/std/socket.d	2016-08-02 23:56:22.881408857 +0200
++++ b/std/socket.d	2016-08-03 10:09:44.761019447 +0200
+@@ -501,18 +501,19 @@
+ version(CRuntime_Bionic) {} else
+ unittest
+ {
+-    softUnittest({
++    pragma(msg, "test disabled on GNU Guix");
++    //softUnittest({
+         Protocol proto = new Protocol;
+-        assert(proto.getProtocolByType(ProtocolType.TCP));
++        //assert(proto.getProtocolByType(ProtocolType.TCP));
+         //writeln("About protocol TCP:");
+         //writefln("\tName: %s", proto.name);
+         // foreach(string s; proto.aliases)
+         // {
+         //      writefln("\tAlias: %s", s);
+         // }
+-        assert(proto.name == "tcp");
+-        assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
+-    });
++        //assert(proto.name == "tcp");
++        //assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
++    //});
+ }
+ 
+ 
+@@ -842,6 +843,8 @@
+ 
+ unittest
+ {
++    pragma(msg, "test disabled on GNU Guix");
++    /*
+     InternetHost ih = new InternetHost;
+ 
+     ih.getHostByAddr(0x7F_00_00_01);
+@@ -872,6 +875,7 @@
+         //      writefln("aliases[%d] = %s", i, s);
+         // }
+     });
++    */
+ }
+ 
+ 
+Only in b/std: socket.d.orig