[FIXME] Dlang ldc and dub packages fail on core-updates

  • Done
  • quality assurance status badge
Details
3 participants
  • Danny Milosavljevic
  • Leo Famulari
  • Pjotr Prins
Owner
unassigned
Submitted by
Pjotr Prins
Severity
normal
P
P
Pjotr Prins wrote on 10 Feb 2018 15:12
(address . guix-patches@gnu.org)
20180210141208.GA13051@thebird.nl
These packages started failing. Since I am using this software I'll
see if I can fix it and reduce the patch load for failing tests with
upstream.

Pj.
P
P
pjotr.public12 wrote on 18 Feb 2018 07:09
[PATCH] gnu: ldc: Update to 1.7.0.
(address . 30411@debbugs.gnu.org)(name . Pjotr Prins)(address . pjotr.public01@thebird.nl)
20180218060944.7608-1-pjotr.public12@thebird.nl
From: Pjotr Prins <pjotr.public01@thebird.nl>

Fixes recent bootstrap and updated ldc compiler and package manager to match.

* gnu/packages/ldc.scm (ldc): Update to 1.7.0.
* gnu/packages/ldc.scm (ldc-bootstrap): Update to 0.17.4.
* gnu/packages/ldc.scm (rdmd): Update to 2.077.1.
* gnu/packages/ldc.scm (dub): Update to 1.7.2.
---
gnu/packages/ldc.scm | 123 +++---
.../patches/ldc-1.1.0-disable-dmd-tests.patch | 35 --
.../patches/ldc-1.1.0-disable-phobos-tests.patch | 414 ---------------------
.../patches/ldc-1.7.0-disable-phobos-tests.patch | 89 +++++
...sts.patch => ldc-bootstrap-disable-tests.patch} | 19 +-
5 files changed, 166 insertions(+), 514 deletions(-)
delete mode 100644 gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch
delete mode 100644 gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch
create mode 100644 gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
rename gnu/packages/patches/{ldc-disable-tests.patch => ldc-bootstrap-disable-tests.patch} (94%)

Toggle diff (445 lines)
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 8fe59679f..797b98b65 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -41,14 +41,14 @@
(define-public rdmd
(package
(name "rdmd")
- (version "2.073.0")
+ (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
- "01if3ivnb7g2myfhymp4d9346s4vmvcl82i1kxfs5iza45almh7v"))))
+ "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -77,7 +77,6 @@ and freshness without requiring additional information from the user.")
(license license:boost1.0)))
(define-public ldc-bootstrap
- (let ((runtime-version "0.17.3"))
(package
(name "ldc")
(version "0.17.4")
@@ -92,6 +91,10 @@ and freshness without requiring additional information from the user.")
"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
@@ -125,7 +128,14 @@ and freshness without requiring additional information from the user.")
(("/bin/bash") (which "bash")))
;; FIXME: this test cannot be linked.
(delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
- #t)))))
+ ;; the following two tests fail on i686
+ (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d"))))
+ (replace 'check
+ ;; the ldc compiler does not use phobos, therefore no need to test in the bootstrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (and
+ (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "-V" "-R" "build-druntime-ldc-unittest"))
+ (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "--output-on-failure" "-E" "dmd-testsuite|lit-tests|ldc2-unittest|llvm-ir-testsuite"))))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
@@ -142,59 +152,51 @@ and freshness without requiring additional information from the user.")
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl"))
- (patches (search-patches "ldc-disable-tests.patch"))))
+ "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"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs"))))
+ "0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x"))))))
-
- (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))))
-
+ "0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM compiler for the D programming language")
(description
- "LDC is a compiler for the D programming language. It is based on the
-latest DMD frontend and uses LLVM as backend.")
+ "LDC is a 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)))))
+ license:boost1.0))))
(define-public ldc
- ;; The phobos, druntime and dmd-testsuite dependencies do not have a newer
- ;; release than 1.1.0-beta4, hence the need to make use of the older-version
- ;; variable to hold this variable.
- (let ((older-version "1.1.0"))
+ ;; 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"))
(package
(inherit ldc-bootstrap)
(name "ldc")
- (version "1.1.1")
- ;; Beta version needed to compile various scientific tools that require
- ;; the newer beta versions, and won't compile successfully with the
- ;; older stable version.
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -203,7 +205,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0yjiwg8pnlm2286bwdkwasaqw6ys7lymrqvhh5xyb1adha1ndcav"))))
+ "0rqchmlbhz1pd8ksl1vfhfd5s3cp9h9pqi4k4w2np9sq0zr7abwn"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -217,20 +219,35 @@ latest DMD frontend and uses LLVM as backend.")
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
- ;; The 'patch-dmd2 step in ldc causes the build to fail since
- ;; dmd2/root/port.c no longer exists. Arguments needed to have
- ;; 'patch-dmd2 step removed, but retain everything else.
(add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "runtime/phobos/std/process.d"
+ (substitute* '("runtime/phobos/std/process.d"
+ "tests/linking/linker_switches.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")))
(substitute* "tests/d2/dmd-testsuite/Makefile"
- (("/bin/bash") (which "bash")))
- #t)))))
+ (("/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")
+ #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"))
+ (zero? (system* "make" "test" "-j" (number->string (parallel-job-count)))))))))
(native-inputs
`(("llvm" ,llvm)
("clang" ,clang)
@@ -247,7 +264,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "0z5v55b9s1ppf0c2ivjq7sbmq688c37c92ihc3qwrbxnqvkkvrlk"))
+ "042hn3v0zk353r0h6yclq56z86hi437y969bckyb2qsnv00h60hi"))
;; This patch deactivates some tests that depend on network access
;; to pass. It also deactivates some tests that have some reliance
;; on timezone.
@@ -257,7 +274,7 @@ latest DMD frontend and uses LLVM as backend.")
;; 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.1.0-disable-phobos-tests.patch"))))
+ (patches (search-patches "ldc-1.7.0-disable-phobos-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
@@ -266,7 +283,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "07qvrqj6vgakd6qr4x5f70w6zwkzd1li5x8i1b5ywnds1z5lnfp6"))))
+ "0pvabk70zw8c1gbmvy2i486bg22bn0l5nbacjz0qwmhf0w9y9ylh"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
@@ -275,18 +292,12 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "12cak7yqmsgjlflx0dp6fwmwb9dac25amgi86n0bb95ard3547wy"))
- ;; Remove the gdb tests that fails with a "Error: No such file or
- ;; directory" error, despite the files being present in the debug
- ;; files left with the --keep-failed flag to guix build.
- (patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch")))))))))
-
-(define-public ldc-beta ldc)
+ "1i8j1raah7b26bprwkdick443ivdsihgi1l14sn9rh4a95rnrpd9")))))))))
(define-public dub
(package
(name "dub")
- (version "1.5.0")
+ (version "1.7.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/dub/archive/"
@@ -294,7 +305,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1p9pmzjsmd7v3jpilv0z0c8ar1ykvri6nn5fv95f8d2vriczj29m"))))
+ "1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
@@ -317,10 +328,12 @@ latest DMD frontend and uses LLVM as backend.")
(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.
+ "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. ")
+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/patches/ldc-1.1.0-disable-dmd-tests.patch b/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch
deleted file mode 100644
index 31eb44aef..000000000
--- a/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-This patch deactivates some tests that fail when ldc is built with the command:
-
-./pre-inst-env guix environment guix --pure -- ./pre-inst-env guix build ldc@1.1.0-beta6
-
-When the --keep-failed flag is added to the build command above, and the tests
-run in the resulting /tmp/guix-build-ldc-1.1.0-beta6.drv-* directory, the tests
-pass.
-
-by Frederick M. Muriithi <fredmanglis@gmail.com>
-
-diff --git a/d_do_test.d b/d_do_test.d
-index aa67169..8173759 100755
---- a/d_do_test.d
-+++ b/d_do_test.d
-@@ -645,8 +645,6 @@ int main(string[] args)
- auto gdb_output = execute(fThisRun, command, true, result_path);
- if (testArgs.gdbMatch !is null)
- {
-- enforce(match(gdb_output, regex(testArgs.gdbMatch)),
-- "\nGDB regex: '"~testArgs.gdbMatch~"' didn't match output:\n----\n"~gdb_output~"\n----\n");
- }
- }
- }
-diff --git a/runnable/gdb15729.sh b/runnable/gdb15729.sh
-index 1d390e0..906b2b6 100755
---- a/runnable/gdb15729.sh
-+++ b/runnable/gdb15729.sh
-@@ -21,7 +21,6 @@ if [ $OS == "linux" ]; then
- echo RESULT=
- p s.val
- EOF
-- gdb ${dir}${SEP}gdb15729 --batch -x ${dir}${SEP}gdb15729.gdb | grep 'RESULT=.*1234' || exit 1
- fi
-
- rm -f ${libname} ${dir}${SEP}{gdb15729${OBJ},gdb15729${EXE},gdb15729.gdb}
diff --git a/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch b/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch
deleted file mode 100644
index 70dd41945..000000000
--- a/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch
+++ /dev/null
@@ -1,414 +0,0 @@
-This patch deactivates failing tests that depend on network connectivity
-to pass in curl.d and socket.d
-It deactivates tests in path.d that assume /root
-
-A thread was started on the ldc forum to pursue the possibility of a
-version flag to deactivate tests conditionally. The thread is at
-https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org
-
-by Frederick M. Muriithi <fredmanglis@gmail.com>
-
-diff --git a/std/datetime.d b/std/datetime.d
-index 4d4afb1..2c91a44 100644
---- a/std/datetime.d
-+++ b/std/datetime.d
-@@ -27306,8 +27306,8 @@ public:
- // leaving it commented out until I can sort it out.
- //assert(equal(tzNames, tzNames.uniq()));
-
-- foreach(tzName; tzNames)
-- assertNotThrown!DateTimeException(testPZSuccess(tzName));
-+ //foreach(tzName; tzNames)
-+ //assertNotThrown!DateTimeException(testPZSuccess(tzName));
- }
-
-
-@@ -29178,8 +29178,8 @@ public:
-
- auto tzNames = getInstalledTZNames();
-
-- foreach(tzName; tzNames)
-- assertNotThrown!DateTimeException(testPTZSuccess(tzName));
-+ //foreach(tzName; tzNames)
-+ //assertNotThrown!DateTimeException(testPTZSuccess(tzName));
-
- // No timezone directories on Android, just a single tzdata file
- version(Android) {} else
-diff --git a/std/net/curl.d b/std/net/curl.d
-index 9c6af66..5fccb38 100644
---- a/std/net/curl.d
-+++ b/std/net/curl.d
-@@ -419,7 +419,7 @@ void download(Conn = AutoProtocol)(const(char)[] url, string saveToPath, Conn co
-
- unittest
- {
-- static import std.file;
-+ /*static import std.file;
- foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
-@@ -430,7 +430,7 @@ unittest
- scope (exit) std.file.remove(fn);
- download(host, fn);
- assert(std.file.readText(fn) == "Hello world");
-- }
-+ }*/
- }
-
- /** Upload file from local files system using the HTTP or FTP protocol.
-@@ -483,7 +483,7 @@ void upload(Conn = AutoProtocol)(string loadFromPath, const(char)[] url, Conn co
-
- unittest
- {
-- static import std.file;
-+ /*static import std.file;
- foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- auto fn = std.file.deleteme;
-@@ -496,7 +496,7 @@ unittest
- s.send(httpOK());
- });
- upload(fn, host ~ "/path");
-- }
-+ }*/
- }
-
- /** HTTP/FTP get content.
-@@ -551,7 +551,7 @@ T[] get(Conn = AutoProtocol, T = char)(const(char)[] url, Conn conn = Conn())
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- assert(s.recvReq.hdrs.canFind("GET /path"));
-@@ -559,7 +559,7 @@ unittest
- });
- auto res = get(host ~ "/path");
- assert(res == "GETRESPONSE");
-- }
-+ }*/
- }
-
-
-@@ -598,7 +598,7 @@ if (is(T == char) || is(T == ubyte))
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
-@@ -608,12 +608,12 @@ unittest
- });
- auto res = post(host ~ "/path", "POSTBODY");
- assert(res == "POSTRESPONSE");
-- }
-+ }*/
- }
-
- unittest
- {
-- auto data = new ubyte[](256);
-+ /*auto data = new ubyte[](256);
- foreach (i, ref ub; data)
- ub = cast(ubyte)i;
-
-@@ -624,7 +624,7 @@ unittest
- s.send(httpOK(cast(ubyte[])[17, 27, 35, 41]));
- });
- auto res = post!ubyte(testServer.addr, data);
-- assert(res == cast(ubyte[])[17, 27, 35, 41]);
-+ assert(res == cast(ubyte[])[17, 27, 35, 41]);*/
- }
-
-
-@@ -680,7 +680,7 @@ T[] put(Conn = AutoProtocol, T = char, PutUnit)(const(char)[] url, const(PutUnit
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
-@@ -690,7 +690,7
This message was truncated. Download the full message here.
D
D
Danny Milosavljevic wrote on 18 Feb 2018 13:34
(address . pjotr.public12@thebird.nl)
20180218133449.0273e0b3@scratchpost.org
Hi Pjotr,

On Sun, 18 Feb 2018 06:09:44 +0000
pjotr.public12@thebird.nl wrote:

Toggle quote (3 lines)
> ;; FIXME: this test cannot be linked.
> (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")

Is there an upstream bugreport?

I wonder who added this line... yep, it was me. Sigh :)

Toggle quote (3 lines)
> + ;; the following two tests fail on i686
> + (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d"))))

Is there an upstream bugreport? What is the error message?

Toggle quote (7 lines)
> + (replace 'check
> + ;; the ldc compiler does not use phobos, therefore no need to test in the bootstrap
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (and
> + (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "-V" "-R" "build-druntime-ldc-unittest"))
> + (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "--output-on-failure" "-E" "dmd-testsuite|lit-tests|ldc2-unittest|llvm-ir-testsuite"))))))))

Please use invoke.

Toggle quote (7 lines)
> (description
> - "LDC is a compiler for the D programming language. It is based on the
> -latest DMD frontend and uses LLVM as backend.")
> + "LDC is a 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.")

Nice!

Toggle quote (7 lines)
> + (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"))
> + (zero? (system* "make" "test" "-j" (number->string (parallel-job-count))))))))

Use invoke.

Toggle quote (2 lines)
> + TestScript prog = "/gnu/store/42d5rjrdkln6nwvzwdc8dyd4w6iy3n5j-coreutils-8.27/bin/echo";

Uuuuuh store reference? Isn't that a bad idea here?
P
P
Pjotr Prins wrote on 18 Feb 2018 22:58
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20180218215838.GA9794@thebird.nl
On Sun, Feb 18, 2018 at 01:34:49PM +0100, Danny Milosavljevic wrote:
Toggle quote (10 lines)
> Hi Pjotr,
>
> On Sun, 18 Feb 2018 06:09:44 +0000
> pjotr.public12@thebird.nl wrote:
>
> > ;; FIXME: this test cannot be linked.
> > (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
>
> Is there an upstream bugreport?

Not yet. The plan is to fix all bugs we are patching for. Meanwhile we
can run as is.

Toggle quote (7 lines)
> I wonder who added this line... yep, it was me. Sigh :)
>
> > + ;; the following two tests fail on i686
> > + (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d"))))
>
> Is there an upstream bugreport? What is the error message?

I can't test i686, but it is on hydra.

Toggle quote (31 lines)
> > + (replace 'check
> > + ;; the ldc compiler does not use phobos, therefore no need to test in the bootstrap
> > + (lambda* (#:key inputs outputs #:allow-other-keys)
> > + (and
> > + (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "-V" "-R" "build-druntime-ldc-unittest"))
> > + (zero? (system* "ctest" "-j" (number->string (parallel-job-count)) "--output-on-failure" "-E" "dmd-testsuite|lit-tests|ldc2-unittest|llvm-ir-testsuite"))))))))
>
> Please use invoke.
>
> > (description
> > - "LDC is a compiler for the D programming language. It is based on the
> > -latest DMD frontend and uses LLVM as backend.")
> > + "LDC is a 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.")
>
> Nice!
>
> > + (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"))
> > + (zero? (system* "make" "test" "-j" (number->string (parallel-job-count))))))))
>
> Use invoke.
>
> > + TestScript prog = "/gnu/store/42d5rjrdkln6nwvzwdc8dyd4w6iy3n5j-coreutils-8.27/bin/echo";
>
> Uuuuuh store reference? Isn't that a bad idea here?

Hmm. How did that sneak in?

Pj.

--
D
D
Danny Milosavljevic wrote on 20 Feb 2018 10:47
20180220104720.2cc49871@scratchpost.org
Hi Pjotr,

On Sun, 18 Feb 2018 22:41:10 +0100
Pjotr Prins <pjotr2017@thebird.nl> wrote:

Toggle quote (3 lines)
> Danny, do you mind fixing. I am on the road and would like to get it
> into the new release.

Sure, no problem.

But building ldc 0.17.4 I get phobos datetime test failures.
Not sure why - because as you've written it, ctest shouldn't have tested phobos.

Also, ldc 1.7 does use phobos. I determined this as follows:
I removed phobos-src from ldc-bootstrap, then used the resulting ldc-bootstrap
to build ldc 1.7. It failed. I tried to excise phobos users from it but gave up.

(Even ldc 1.1 used std.datetime during building)

So I reverted the "check" phase.

Also, ldc 1.7.0 test failure on the X200 laptop:

sh: line 1: 16660 Illegal instruction /tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable/test_cdvecfill_1 > /tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/1d696d6e3478bf73e2aaef0f8b23bba98e05e3cd74f80b02330a43bd3d2595a3 2>&1
... runnable/test_cdvecfill.d -O (-mcpu=avx -mcpu=avx2) -conf=/tmp/guix-build-ldc-1.7.0.drv-0/build/bin/ldc2.conf -g -link-debuglib
Test failed. The logged output:
/tmp/guix-build-ldc-1.7.0.drv-0/build/bin/ldmd2 -conf= -m64 -Irunnable -O -od/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable -of/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable/test_cdvecfill_0 runnable/test_cdvecfill.d
/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable/test_cdvecfill_0

/tmp/guix-build-ldc-1.7.0.drv-0/build/bin/ldmd2 -conf= -m64 -Irunnable -O -mcpu=avx -od/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable -of/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable/test_cdvecfill_1 runnable/test_cdvecfill.d
/tmp/guix-build-ldc-1.7.0.drv-0/build/dmd-testsuite-debug/runnable/test_cdvecfill_1

Which is understandable because the X200 laptop doesn't have AVX.

It's building another round now - let's see.
P
P
Pjotr Prins wrote on 21 Feb 2018 02:26
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 30411@debbugs.gnu.org)
20180221012649.GA22636@thebird.nl
Thanks Danny. Attached a patch that works for me for a latest checkout
of master. I used invoke, added some comments, ran lint and fixed the
datetime issue. Strangely it bails outside the phobos testing.

Hope that helps.

Pj.
Attachment: ldc.patch
P
P
Pjotr Prins wrote on 22 Feb 2018 02:42
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
20180222014230.GA28429@thebird.nl
If you think this patch looks OK, I can resubmit it.

Again, I'll start chasing fixes with upstream. They are pretty
receptive.

Pj.
D
D
Danny Milosavljevic wrote on 23 Feb 2018 12:59
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 30411-done@debbugs.gnu.org)
20180223125932.146ef945@scratchpost.org
Hi Pjotr,

On Thu, 22 Feb 2018 02:42:30 +0100
Pjotr Prins <pjotr.public12@thebird.nl> wrote:

Toggle quote (5 lines)
> If you think this patch looks OK, I can resubmit it.
>
> Again, I'll start chasing fixes with upstream. They are pretty
> receptive.

Yeah, I've applied it to master with some small changes a few days
ago. It builds and tests fine now.
Closed
P
P
Pjotr Prins wrote on 23 Feb 2018 18:10
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20180223171008.GA6186@thebird.nl
On Fri, Feb 23, 2018 at 12:59:32PM +0100, Danny Milosavljevic wrote:
Toggle quote (13 lines)
> Hi Pjotr,
>
> On Thu, 22 Feb 2018 02:42:30 +0100
> Pjotr Prins <pjotr.public12@thebird.nl> wrote:
>
> > If you think this patch looks OK, I can resubmit it.
> >
> > Again, I'll start chasing fixes with upstream. They are pretty
> > receptive.
>
> Yeah, I've applied it to master with some small changes a few days
> ago. It builds and tests fine now.

Thanks! Does this mean it can go into the new Guix release?

i686 and armhf failing on lit-tests looking for make. I'll
take a look when I have time in the coming days.

We should consider changing the name of ldc.scm to dlang.scm. There
are two other D compilers which are libre. Including a GNU one ;). At
the same time the packages could be re-indented. wdyt?

Pj.

--
Closed
L
L
Leo Famulari wrote on 23 Feb 2018 18:31
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
20180223173107.GA24390@jasmine.lan
On Fri, Feb 23, 2018 at 06:10:08PM +0100, Pjotr Prins wrote:
Toggle quote (6 lines)
> On Fri, Feb 23, 2018 at 12:59:32PM +0100, Danny Milosavljevic wrote:
> > Yeah, I've applied it to master with some small changes a few days
> > ago. It builds and tests fine now.
>
> Thanks! Does this mean it can go into the new Guix release?

Yes. I don't know the maintainers' plans for the next release, but
whatever is on the master branch now will be in the release, barring any
surprises.

Toggle quote (7 lines)
> i686 and armhf failing on lit-tests looking for make. I'll
> take a look when I have time in the coming days.
>
> We should consider changing the name of ldc.scm to dlang.scm. There
> are two other D compilers which are libre. Including a GNU one ;). At
> the same time the packages could be re-indented. wdyt?

Sure, patches welcome :)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlqQT9cACgkQJkb6MLrK
fwi9vQ/8CSM/KGXCGo+ght6NiwqUl/11PvShj3qlIvx2VjsmlvWMQtOmVl7x38sg
V8mgoW/JhJSvDXDlG+LA/U4dQ1k8Gh7Nr0eijuuJtpEmEOKOpOx9O78f9xdbViWK
tSqxuuJDJ4uLAYsvaRdPHfF6l4G/Truk3rBAYaYTk51g0uoO46aP2CS86xjW/lpL
XjRQ+l36vXiLq6rzjBGowAIemPkandh9k4xiuxABphkjXzrIutOxRS/BTewirdYz
lwwY/oyG1XauO7jAFQXmsBjJf3COiwgakFvWRAZufUoF019dpw+052rimqfhpFaO
9BDWrO5+zlUCVvvuVeuOKGq1kcxM+g9YSAvuvvGO8hj52xpu8EpWtR/jyJVPEp/v
hoyicD0XqM4euNHdVo5YWYsCVyn/vVcsEVEEqa2+KG9r5LzNvYD2B2HI5feTYJGl
UT15+WSVmy6dUlpO7N5ngYq8tQVuzsrqyEtiPhrN/O4UTIjKSkCvLM40AQ/Q33qq
XJOdjJ7ng3N2vnpKSU9hktnEVjs0vt+Pk4n5F4BJRGL5aQTC31CecF5IGAOsjER+
9Cr2li1FVlT3dE9ol0p3E4eabNEvm3cDUKf7BT5aawSVGLsVIYmB1NjoVNQ0cuQv
gGRtimqpt814fwgxgt6FO2oQj8N6AfFsSnRkrQzxWYzPNEZl8QE=
=hQ1e
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 30411
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