Updating ldc to 1.10.0 (WIP)

  • Done
  • quality assurance status badge
Details
3 participants
  • Danny Milosavljevic
  • Ludovic Courtès
  • Pjotr Prins
Owner
unassigned
Submitted by
Pjotr Prins
Severity
normal
P
P
Pjotr Prins wrote on 27 Jul 2018 05:48
(address . guix-patches@gnu.org)
20180727034806.vbjuiawcpyelohm5@thebird.nl
I have an updated package coming up for ldc. It compiles on LLVM 3.8.

Need to update to LLVM 6.0 to benefit from the latest optimizations.

LDC - the LLVM D compiler (1.10.0):
based on DMD v2.080.1 and LLVM 3.8.1
built with LDC - the LLVM D compiler (0.17.4)
Default target: x86_64-unknown-linux-gnu
Host CPU: sandybridge
http://dlang.org- http://wiki.dlang.org/LDC

Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_be - AArch64 (big endian)
amdgcn - AMD GCN GPUs
arm - ARM
arm64 - ARM64 (little endian)
armeb - ARM (big endian)
bpf - BPF (host endian)
bpfeb - BPF (big endian)
bpfel - BPF (little endian)
cpp - C++ backend
hexagon - Hexagon
mips - Mips
mips64 - Mips64 [experimental]
mips64el - Mips64el [experimental]
mipsel - Mipsel
msp430 - MSP430 [experimental]
nvptx - NVIDIA PTX 32-bit
nvptx64 - NVIDIA PTX 64-bit
ppc32 - PowerPC 32
ppc64 - PowerPC 64
ppc64le - PowerPC 64 LE
r600 - AMD GPUs HD2XXX-HD6XXX
sparc - Sparc
sparcel - Sparc LE
sparcv9 - Sparc V9
systemz - SystemZ
thumb - Thumb
thumbeb - Thumb (big endian)
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
xcore - XCore
L
L
Ludovic Courtès wrote on 29 Jul 2018 15:56
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32286@debbugs.gnu.org)
87r2jmf8ng.fsf@gnu.org
Hi Pjotr,

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (2 lines)
> I have an updated package coming up for ldc. It compiles on LLVM 3.8.

Did you forget the patch? :-)

Toggle quote (2 lines)
> Need to update to LLVM 6.0 to benefit from the latest optimizations.

Current master has LLVM 6.0.0 (in addition to 3.8 and other versions.)

Thanks,
Ludo’.
P
P
Pjotr Prins wrote on 10 Aug 2018 10:14
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180810081403.erzlqyz74nqnc4oi@thebird.nl
On Sun, Jul 29, 2018 at 03:56:03PM +0200, Ludovic Court�s wrote:
Toggle quote (8 lines)
> Hi Pjotr,
>
> Pjotr Prins <pjotr.public12@thebird.nl> skribis:
>
> > I have an updated package coming up for ldc. It compiles on LLVM 3.8.
>
> Did you forget the patch? :-)

I am back now. Need to clean it up.

Toggle quote (4 lines)
> > Need to update to LLVM 6.0 to benefit from the latest optimizations.
>
> Current master has LLVM 6.0.0 (in addition to 3.8 and other versions.)

I know, still need to test it. I need it so it is coming.

Pj.
P
P
Pjotr Prins wrote on 9 Sep 2018 17:57
[PATCH] Updating ldc to 1.10.0
(address . 32286@debbugs.gnu.org)
20180909155742.15533-1-pjotr.public12@thebird.nl
* gnu/packages/ldc.scm (ldc): Update ldc to 1.10.0 and have it compile with latest llvm.
---
gnu/packages/ldc.scm | 26 ++++---
.../patches/ldc-1.7.0-disable-phobos-tests.patch | 88 ----------------------
.../patches/ldc-disable-phobos-tests.patch | 22 ++++++
3 files changed, 36 insertions(+), 100 deletions(-)
delete mode 100644 gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
create mode 100644 gnu/packages/patches/ldc-disable-phobos-tests.patch

Toggle diff (194 lines)
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 2613db0..8dcdf90 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl>
+;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -172,9 +172,9 @@ and freshness without requiring additional information from the user.")
(base32
"0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
(home-page "http://wiki.dlang.org/LDC")
- (synopsis "LLVM compiler for the D programming language")
+ (synopsis "LLVM-based D compiler for the D programming language")
(description
- "LDC is a compiler for the D programming language. It is based on
+ "LDC is an LLVM compiler for the D programming language. It is based on
the latest DMD compiler that was written in C and is used for
bootstrapping more recent compilers written in D.")
;; Most of the code is released under BSD-3, except for code originally
@@ -188,11 +188,11 @@ bootstrapping more recent compilers written in D.")
;; Phobos, druntime and dmd-testsuite library dependencies do
;; not always have a newer release than the compiler, hence we
;; retain this variable.
- (let ((older-version "1.7.0"))
+ (let ((older-version "1.10.0")) ;; retain this because sometimes the libs are older
(package
(inherit ldc-bootstrap)
(name "ldc")
- (version "1.7.0")
+ (version "1.10.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -201,7 +201,7 @@ bootstrapping more recent compilers written in D.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0rqchmlbhz1pd8ksl1vfhfd5s3cp9h9pqi4k4w2np9sq0zr7abwn"))))
+ "16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -235,6 +235,8 @@ bootstrapping more recent compilers written in D.")
(delete-file "tests/compilable/ctfe_math.d")
(delete-file "tests/debuginfo/nested_gdb.d")
(delete-file "tests/debuginfo/classtypes_gdb.d")
+ ;; the following tests plugins we don't have.
+ (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
;; the following tests requires AVX instruction set in the CPU.
(substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
(("^// DISABLED: ") "^// DISABLED: linux64 "))
@@ -246,8 +248,8 @@ bootstrapping more recent compilers written in D.")
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(native-inputs
- `(("llvm" ,llvm-3.8)
- ("clang" ,clang-3.8)
+ `(("llvm" ,llvm)
+ ("clang" ,clang)
("ldc" ,ldc-bootstrap)
("python-lit" ,python-lit)
("python-wrapper" ,python-wrapper)
@@ -261,7 +263,7 @@ bootstrapping more recent compilers written in D.")
older-version ".tar.gz"))
(sha256
(base32
- "042hn3v0zk353r0h6yclq56z86hi437y969bckyb2qsnv00h60hi"))
+ "0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s"))
;; This patch deactivates some tests that depend on network access
;; to pass. It also deactivates some tests that have some reliance
;; on timezone.
@@ -271,7 +273,7 @@ bootstrapping more recent compilers written in D.")
;; that is being pursued at
;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
;; It also deactivates a test that requires /root
- (patches (search-patches "ldc-1.7.0-disable-phobos-tests.patch"))))
+ (patches (search-patches "ldc-disable-phobos-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
@@ -280,7 +282,7 @@ bootstrapping more recent compilers written in D.")
older-version ".tar.gz"))
(sha256
(base32
- "0pvabk70zw8c1gbmvy2i486bg22bn0l5nbacjz0qwmhf0w9y9ylh"))))
+ "1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
@@ -289,7 +291,7 @@ bootstrapping more recent compilers written in D.")
older-version ".tar.gz"))
(sha256
(base32
- "1i8j1raah7b26bprwkdick443ivdsihgi1l14sn9rh4a95rnrpd9")))))))))
+ "0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99")))))))))
(define-public dub
(package
diff --git a/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch b/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
deleted file mode 100644
index ccc136c..0000000
--- a/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git a/std/path.d b/std/path.d
-index a9f0bd8..f47d103 100644
---- a/std/path.d
-+++ b/std/path.d
-@@ -4041,7 +4041,7 @@ version(unittest) import std.process : environment;
- else version (Android)
- {
- }
-- else
-+ else version (HasRoot)
- {
- assert(expandTilde("~root") == "/root", expandTilde("~root"));
- assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
-
-diff --git a/std/process.d b/std/process.d
-index df83296..d921cdb 100644
---- a/std/process.d
-+++ b/std/process.d
-@@ -1171,7 +1171,7 @@ version (Posix) @system unittest
- assert(exists(buildPath(directory, "bar")));
- }
-
--@system unittest // Specifying a bad working directory.
-+@system version(skipunittest) unittest // Specifying a bad working directory.
- {
- import std.exception : assertThrown;
- TestScript prog = "/bin/echo";
-diff --git a/std/socket.d b/std/socket.d
-index 8a261d5..c1b87b6 100644
---- a/std/socket.d
-+++ b/std/socket.d
-@@ -484,7 +484,7 @@ class Protocol
- // Skip this test on Android because getprotobyname/number are
- // unimplemented in bionic.
- version(CRuntime_Bionic) {} else
--@safe unittest
-+@safe version(hasNetwork) unittest
- {
- softUnittest({
- Protocol proto = new Protocol;
-@@ -804,7 +804,7 @@ class InternetHost
- }
-
- ///
--@safe unittest
-+@safe version(hasNetwork) unittest
- {
- InternetHost ih = new InternetHost;
-
-@@ -959,7 +959,7 @@ AddressInfo[] getAddressInfo(T...)(in char[] node, T options)
- return () @trusted { return getAddressInfoImpl(node, service, &hints); }();
- }
-
--@system unittest
-+@system version(hasNetwork) unittest
- {
- struct Oops
- {
-@@ -1010,7 +1010,7 @@ private AddressInfo[] getAddressInfoImpl(in char[] node, in char[] service, addr
- }
-
-
--@safe unittest
-+@safe version(hasNetwork) unittest
- {
- softUnittest({
- if (getaddrinfoPointer)
-diff --git a/std/stdio.d b/std/stdio.d
-index 10106a5..4b0590e 100644
---- a/std/stdio.d
-+++ b/std/stdio.d
-@@ -1426,8 +1426,7 @@ Removes the lock over the specified file segment.
- g.unlock();
- }
-
-- version(Posix)
-- @system unittest
-+ @system version(skip) unittest
- {
- static import std.file;
- auto deleteme = testFilename();
-@@ -1483,7 +1482,6 @@ Removes the lock over the specified file segment.
- f.unlock();
- }
-
--
- /**
- Writes its arguments in text format to the file.
Toggle diff (30 lines)
diff --git a/gnu/packages/patches/ldc-disable-phobos-tests.patch b/gnu/packages/patches/ldc-disable-phobos-tests.patch
new file mode 100644
index 0000000..f8a9743
--- /dev/null
+++ b/gnu/packages/patches/ldc-disable-phobos-tests.patch
@@ -0,0 +1,22 @@
+diff --git a/std/socket.d b/std/socket.d
+index 111cd17..6d23da9 100644
+--- a/std/socket.d
++++ b/std/socket.d
+@@ -448,7 +448,7 @@ class Protocol
+ // Skip this test on Android because getprotobyname/number are
+ // unimplemented in bionic.
+ version(CRuntime_Bionic) {} else
+-@safe unittest
++@safe version(hasNetwork) unittest
+ {
+ // import std.stdio : writefln;
+ softUnittest({
+@@ -770,7 +770,7 @@ class InternetHost
+ }
+
+ ///
+-@safe unittest
++@safe version(hasNetwork) unittest
+ {
+ InternetHost ih = new InternetHost;
+
--
2.8.4
P
P
Pjotr Prins wrote on 9 Sep 2018 18:16
[PATCH] gnu: rename file ldc.scm to dlang.scm in preparation of adding the GNU D compiler packages
(address . 32286@debbugs.gnu.org)
20180909161611.15898-1-pjotr.public12@thebird.nl
From: Pjotr Prins <pjotr.public01@thebird.nl>

---
gnu/local.mk | 4 +-
gnu/packages/dlang.scm | 338 +++++++++++++++++++++++++++++++++++++++++++++++++
gnu/packages/ldc.scm | 338 -------------------------------------------------
3 files changed, 340 insertions(+), 340 deletions(-)
create mode 100644 gnu/packages/dlang.scm
delete mode 100644 gnu/packages/ldc.scm

Toggle diff (445 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 278afbb..d5cce55 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -245,7 +245,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/key-mon.scm \
%D%/packages/kodi.scm \
%D%/packages/language.scm \
- %D%/packages/ldc.scm \
+ %D%/packages/dlang.scm \
%D%/packages/lego.scm \
%D%/packages/less.scm \
%D%/packages/lesstif.scm \
@@ -851,7 +851,7 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
- %D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \
+ %D%/packages/patches/ldc-disable-phobos-tests.patch \
%D%/packages/patches/ledger-fix-uninitialized.patch \
%D%/packages/patches/ledger-revert-boost-python-fix.patch \
%D%/packages/patches/liba52-enable-pic.patch \
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
new file mode 100644
index 0000000..d53d5ea
--- /dev/null
+++ b/gnu/packages/dlang.scm
@@ -0,0 +1,338 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015, 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
+;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages dlang)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages gdb)
+ #:use-module (gnu packages libedit)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages textutils))
+
+(define-public rdmd
+ (package
+ (name "rdmd")
+ (version "2.077.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check) ; There is no Makefile, so there's no 'make check'.
+ (replace
+ 'build
+ (lambda _
+ (invoke "ldc2" "rdmd.d")))
+ (replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "rdmd" bin)))))))
+ (native-inputs
+ `(("ldc" ,ldc)))
+ (home-page "https://github.com/D-Programming-Language/tools/")
+ (synopsis "Specialized equivalent to 'make' for the D language")
+ (description
+ "rdmd is a companion to the dmd compiler that simplifies the typical
+edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
+make and other tools, rdmd uses the relative dates of the files involved to
+minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
+and freshness without requiring additional information from the user.")
+ (license license:boost1.0)))
+
+(define-public ldc-bootstrap
+ (package
+ (name "ldc")
+ (version "0.17.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/ldc/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
+ (build-system cmake-build-system)
+ (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
+ (properties
+ ;; Some of the tests take a very long time on ARMv7. See
+ ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
+ `((max-silent-time . ,(* 3600 3))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-submodule-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((unpack (lambda (source target)
+ (with-directory-excursion target
+ (zero? (system* "tar" "xvf"
+ (assoc-ref inputs source)
+ "--strip-components=1"))))))
+ (and (unpack "phobos-src" "runtime/phobos")
+ (unpack "druntime-src" "runtime/druntime")
+ (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
+ (add-after 'unpack-submodule-sources 'patch-dmd2
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dmd2/root/port.c"
+ ((" ::isnan") " isnan")
+ ((" ::isinf") " isinf")
+ (("#undef isnan") "")
+ (("#undef isinf") ""))
+ #t))
+ (add-after 'unpack-submodule-sources 'patch-phobos
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "runtime/phobos/std/process.d"
+ (("/bin/sh") (which "sh"))
+ (("echo") (which "echo")))
+ (substitute* "runtime/phobos/std/datetime.d"
+ (("/usr/share/zoneinfo/")
+ (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
+ (("tzName == \"[+]VERSION\"")
+ "(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
+ (substitute* "tests/d2/dmd-testsuite/Makefile"
+ (("/bin/bash") (which "bash")))
+ ;; FIXME: this test cannot be linked.
+ (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
+ ;; the following two tests fail on i686
+ (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
+ (inputs
+ `(("libconfig" ,libconfig)
+ ("libedit" ,libedit)
+ ("tzdata" ,tzdata)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("llvm" ,llvm-3.8)
+ ("clang" ,clang-3.8)
+ ("python-lit" ,python-lit)
+ ("python-wrapper" ,python-wrapper)
+ ("unzip" ,unzip)
+ ("phobos-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/phobos/archive/ldc-v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz"))
+ (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
+ ("druntime-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/druntime/archive/ldc-v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
+ ("dmd-testsuite-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
+ (home-page "http://wiki.dlang.org/LDC")
+ (synopsis "LLVM-based D compiler for the D programming language")
+ (description
+ "LDC is an LLVM compiler for the D programming language. It is based on
+the latest DMD compiler that was written in C and is used for
+bootstrapping more recent compilers written in D.")
+ ;; Most of the code is released under BSD-3, except for code originally
+ ;; written for GDC, which is released under GPLv2+, and the DMD frontend,
+ ;; which is released under the "Boost Software License version 1.0".
+ (license (list license:bsd-3
+ license:gpl2+
+ license:boost1.0))))
+
+(define-public ldc
+ ;; Phobos, druntime and dmd-testsuite library dependencies do
+ ;; not always have a newer release than the compiler, hence we
+ ;; retain this variable.
+ (let ((older-version "1.10.0")) ;; retain this because sometimes the libs are older
+ (package
+ (inherit ldc-bootstrap)
+ (name "ldc")
+ (version "1.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/ldc/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-submodule-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((unpack (lambda (source target)
+ (with-directory-excursion target
+ (zero? (system* "tar" "xvf"
+ (assoc-ref inputs source)
+ "--strip-components=1"))))))
+ (and (unpack "phobos-src" "runtime/phobos")
+ (unpack "druntime-src" "runtime/druntime")
+ (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
+ (add-after 'unpack-submodule-sources 'patch-phobos
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("runtime/phobos/std/process.d"
+ "tests/linking/linker_switches.d")
+ (("/bin/sh") (which "sh"))
+ (("echo") (which "echo")))
+ (substitute* "tests/d2/dmd-testsuite/Makefile"
+ (("/bin/bash") (which "bash")))
+ ;; disable unittests in the following files. We are discussing with
+ ;; upstream
+ (substitute* '("runtime/phobos/std/net/curl.d"
+ "runtime/phobos/std/datetime/systime.d"
+ "runtime/phobos/std/datetime/timezone.d"
+ )
+ (("version(unittest)") "version(skipunittest)")
+ ((" unittest") " version(skipunittest) unittest"))
+ ;; the following tests require a more recent LLVM
+ (delete-file "tests/compilable/ctfe_math.d")
+ (delete-file "tests/debuginfo/nested_gdb.d")
+ (delete-file "tests/debuginfo/classtypes_gdb.d")
+ ;; the following tests plugins we don't have.
+ (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
+ ;; the following tests requires AVX instruction set in the CPU.
+ (substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
+ (("^// DISABLED: ") "^// DISABLED: linux64 "))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; some tests call into gdb binary which needs SHELL and CC set
+ (setenv "SHELL" (which "sh"))
+ (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+ (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
+ (native-inputs
+ `(("llvm" ,llvm)
+ ("clang" ,clang)
+ ("ldc" ,ldc-bootstrap)
+ ("python-lit" ,python-lit)
+ ("python-wrapper" ,python-wrapper)
+ ("unzip" ,unzip)
+ ("gdb" ,gdb)
+ ("phobos-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/phobos/archive/ldc-v"
+ older-version ".tar.gz"))
+ (sha256
+ (base32
+ "0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s"))
+ ;; This patch deactivates some tests that depend on network access
+ ;; to pass. It also deactivates some tests that have some reliance
+ ;; on timezone.
+ ;;
+ ;; For the network tests, there's an effort to get a version flag
+ ;; added to deactivate these tests for distribution packagers
+ ;; that is being pursued at
+ ;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
+ ;; It also deactivates a test that requires /root
+ (patches (search-patches "ldc-disable-phobos-tests.patch"))))
+ ("druntime-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/druntime/archive/ldc-v"
+ older-version ".tar.gz"))
+ (sha256
+ (base32
+ "1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222"))))
+ ("dmd-testsuite-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
+ older-version ".tar.gz"))
+ (sha256
+ (base32
+ "0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99")))))))))
+
+(define-public dub
+ (package
+ (name "dub")
+ (version "1.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dlang/dub/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'build
+ (lambda _
+ (invoke "./build.sh")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "bin/dub" bin)
+ #t))))))
+ (inputs
+ `(("curl" ,curl)))
+ (native-inputs
+ `(("ldc" ,ldc)))
+ (home-page "https://code.dlang.org/getting_started")
+ (synopsis "Package and build manager for D projects")
+ (description
+ "DUB is a package and build manager for applications and
+libraries written in the D programming language. It can
+automatically retrieve a project's dependencies and integrate
+them in the build process.
+
+The design emphasis is on maximum simplicity for simple projects,
+while providing the opportunity to customize things when
+needed.")
+ (license license:expat)))
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
deleted file mode 100644
index 8dcdf90..0000000
--- a/gnu/packages/ldc.scm
+++ /dev/null
@@ -1,338 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
-;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages ldc)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix git-download)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system cmake)
- #:use-module (gnu packages)
- #:use-module (gnu packages base)
- #:use-module (gnu packages check)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages curl)
- #:use-module (gnu packages gdb)
- #:use-module (gnu packages libedit)
- #:use-module (gnu packages llvm)
- #:use-module (gnu packages python)
- #:use-module (gnu packages textutils))
-
-(define-public rdmd
- (package
- (name "rdmd")
- (version "2.077.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
- (build-system gnu-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check) ; There is no Makefile, so there's no 'make check'.
- (replace
- 'build
- (lambda _
- (invoke "ldc2" "rdmd.d")))
- (replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "rdmd" bin)))))))
- (native-inputs
- `(("ldc" ,ldc)))
- (home-page "https://github.com/D-Programming-Language/tools/")
- (synopsis "Specialized equivalent to 'make' for the D language")
- (description
- "rdmd is a companion to the dmd compiler that simplifies the typical
-edit-compile-link-run or edit-make-run c
This message was truncated. Download the full message here.
L
L
Ludovic Courtès wrote on 10 Sep 2018 17:45
Re: [bug#32286] [PATCH] Updating ldc to 1.10.0
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32286-done@debbugs.gnu.org)
87d0tle4qe.fsf@gnu.org
Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (2 lines)
> * gnu/packages/ldc.scm (ldc): Update ldc to 1.10.0 and have it compile with latest llvm.

Applied with minor tweaks (notably adjusting gnu/local.mk) and an
adjusted commit log.

Thank you!

Ludo’.
Closed
L
L
Ludovic Courtès wrote on 10 Sep 2018 17:48
Re: [bug#32286] [PATCH] gnu: rename file ldc.scm to dlang.scm in preparation of adding the GNU D compiler packages
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32286-done@debbugs.gnu.org)
878t49e4l8.fsf@gnu.org
Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (7 lines)
> From: Pjotr Prins <pjotr.public01@thebird.nl>
>
> ---
> gnu/local.mk | 4 +-
> gnu/packages/dlang.scm | 338 +++++++++++++++++++++++++++++++++++++++++++++++++
> gnu/packages/ldc.scm | 338 -------------------------------------------------

Applied, thanks!

Ludo'.
Closed
D
D
Danny Milosavljevic wrote on 10 Sep 2018 19:12
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180910191221.0145d16a@scratchpost.org
Isn't the dub-build-system now broken? It has:

guix/build-system/dub.scm: (let ((ldc (resolve-interface '(gnu packages ldc))))
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAluWpfUACgkQ5xo1VCww
uqV6cAf/e7BWksXjMPhSN4Vascltwnm+uiKB7p/A6LE7TerEy27j3Eg8cNeXh0am
jglBi9hbMXX7XneM4l2/5r9tcpFHbPSxkWSpbcNXaok+eaR/ElCSkncz7SroCTLj
vwjqUYhG2aDt6/oNe1SMWV47R6fUT4eQEp4IHUVCbnjR/Gj6rj+0MLPqHkcFgygd
JFhTlz36A7UpCqyrxzjs5a17eLmJI4sZFmPEkhGovgpJckxqW7itwJZRDYQe5BtB
/2+1TOUyIdoCjJ4jPF6q8iGqHe/oMb9DnBhDK741c+95KvM9L+hQCpXAF8AdOPeO
0xqFW0QNYG/ncMFZ1Unh3GrRGWoVlA==
=UoKA
-----END PGP SIGNATURE-----


Closed
L
L
Ludovic Courtès wrote on 10 Sep 2018 22:32
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
877ejtccv9.fsf@gnu.org
Danny Milosavljevic <dannym@scratchpost.org> skribis:

Toggle quote (4 lines)
> Isn't the dub-build-system now broken? It has:
>
> guix/build-system/dub.scm: (let ((ldc (resolve-interface '(gnu packages ldc))))

Oops, my bad. Thanks Leo for fixing it!

Pjotr: note that Sambamba fails to build:

Toggle snippet (20 lines)
sam_alignment.rl(221): Warning: statement is not reachable
sam_alignment.rl(250): Warning: statement is not reachable
sam_alignment.rl(407): Warning: statement is not reachable
/gnu/store/m87vrhgi279b5715yk0fivdq8g81dxbl-ldc-1.10.0/include/d/std/numeric.d(1845): Error: read-modify-write operations are not allowed for `shared` variables. Use `core.atomic.atomicOp!"+="(s, e)` instead.
/gnu/store/m87vrhgi279b5715yk0fivdq8g81dxbl-ldc-1.10.0/include/d/std/numeric.d(1871): Error: read-modify-write operations are not allowed for `shared` variables. Use `core.atomic.atomicOp!"*="(e, f)` instead.
sambamba/merge.d(407): Error: template instance `std.numeric.normalize!(shared(float)[])` error instantiating
sambamba/markdup.d(1140): Deprecation: struct `std.datetime.StopWatch` is deprecated - Use std.datetime.stopwatch.StopWatch.
sambamba/markdup.d(1140): Deprecation: struct `std.datetime.StopWatch` is deprecated - Use std.datetime.stopwatch.StopWatch.
sambamba/markdup.d(1068): Deprecation: struct `std.datetime.StopWatch` is deprecated - Use std.datetime.stopwatch.StopWatch.
sambamba/markdup.d(1068): Deprecation: struct `std.datetime.StopWatch` is deprecated - Use std.datetime.stopwatch.StopWatch.
sambamba/sort.d(265): Error: template instance `sambamba.sort.Sorter.mergeSortedChunks!(compareReadNames)` error instantiating
sambamba/sort.d(267): Error: template instance `sambamba.sort.Sorter.mergeSortedChunks!(mixedCompareReadNames)` error instantiating
sambamba/sort.d(269): Error: template instance `sambamba.sort.Sorter.mergeSortedChunks!(compareCoordinatesAndStrand)` error instantiating
make: *** [Makefile:75: singleobj] Error 1

[…]

guix build: error: build failed: build of `/gnu/store/wgn2kp7dl5sbi19g9dsbd2299vlkhl7k-sambamba-0.6.7-10-g223fa20.drv' failed

Could you take a look?

Thanks,
Ludo’.
Closed
P
P
Pjotr Prins wrote on 11 Sep 2018 09:02
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180911070252.76vtv2dluxkk4clv@thebird.nl
On Mon, Sep 10, 2018 at 10:32:26PM +0200, Ludovic Court�s wrote:
Toggle quote (10 lines)
> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>
> > Isn't the dub-build-system now broken? It has:
> >
> > guix/build-system/dub.scm: (let ((ldc (resolve-interface '(gnu packages ldc))))
>
> Oops, my bad. Thanks Leo for fixing it!
>
> Pjotr: note that Sambamba fails to build:

Yesterday I did a beta-release of sambamba which fixes it. When I do a
proper release I'll update the package. Within two weeks I expect.

Pj.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 32286@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 32286
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch