aboutsummaryrefslogtreecommitdiff
path: root/gn/packages/ldc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/packages/ldc.scm')
-rw-r--r--gn/packages/ldc.scm326
1 files changed, 119 insertions, 207 deletions
diff --git a/gn/packages/ldc.scm b/gn/packages/ldc.scm
index 45ba1b4..7fa91b9 100644
--- a/gn/packages/ldc.scm
+++ b/gn/packages/ldc.scm
@@ -17,7 +17,7 @@
;;; 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)
+(define-module (gn packages ldc)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -27,152 +27,15 @@
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
+ #:use-module ((gnu packages ldc) #:prefix ldcmain:)
#:use-module (gnu packages libedit)
#:use-module (gnu packages llvm)
#:use-module (gnu packages textutils)
#:use-module (gnu packages zip))
-(define-public rdmd
- (let ((commit "da0a2e0a379b08294015eec9d531f1e5dd4226f0"))
- (package
- (name "rdmd")
- (version (string-append "v2.070.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/D-Programming-Language/tools.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1pcx5lyqzrip86f4vv60x292rpvnwsq2hvl1znm9x9rn68f34m45"))))
- (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 _
- (zero? (system* "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-0.16.1
- (package
- (name "ldc")
- (version "0.16.1")
- (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
- "1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40"))))
- (build-system cmake-build-system)
- ;; LDC currently only supports the x86_64 and i686 architectures.
- (supported-systems '("x86_64-linux" "i686-linux"))
- (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")))
- (substitute* "tests/d2/dmd-testsuite/Makefile"
- (("/bin/bash") (which "bash")))
- #t)))))
- (inputs
- `(("libconfig" ,libconfig)
- ("libedit" ,libedit)
- ("tzdata" ,tzdata)
- ("zlib" ,zlib)))
- (native-inputs
- `(("llvm" ,llvm-3.7)
- ("clang" ,clang-3.7)
- ("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
- "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
- (patches (search-patches "ldc-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
- "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"))))
- ("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
- "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1"))))))
- (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.")
- ;; 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-0.17.2
(package
- (inherit ldc)
+ (inherit ldcmain:ldc)
(name "ldc")
(version "0.17.2")
(source (origin
@@ -220,6 +83,7 @@ latest DMD frontend and uses LLVM as backend.")
(native-inputs
`(("llvm" ,llvm-3.7)
("clang" ,clang-3.7)
+ ("zlib" ,zlib)
("unzip" ,unzip)
("phobos-src"
,(origin
@@ -227,6 +91,7 @@ latest DMD frontend and uses LLVM as backend.")
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
version ".tar.gz"))
+ (file-name (string-append "ldc-phobos-" version ".tar.gz"))
(sha256
(base32
"07hh3ic3r755mq9hn9gfr0wlc5y8cr91xz2ydb6gqy4zy8jgp5s9"))))
@@ -236,6 +101,7 @@ latest DMD frontend and uses LLVM as backend.")
(uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v"
version ".tar.gz"))
+ (file-name (string-append "ldc-druntime-" version ".tar.gz"))
(sha256
(base32
"1m1dhday9dl3s04njmd29z7ism2xn2ksb9qlrwzykdgz27b3dk6x"))))
@@ -245,78 +111,124 @@ latest DMD frontend and uses LLVM as backend.")
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
version ".tar.gz"))
+ (file-name (string-append "testsuite-" version ".tar.gz"))
(sha256
(base32
"0n7gvalxwfmia4gag53r9qhcnk2cqrw3n4icj1yri0zkgc27pm60"))))))))
-(define-public ldc-1.1.0-beta4
- (package
- (inherit ldc)
- (name "ldc")
- (version "1.1.0-beta4")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/ldc-developers/ldc/archive/v"
+(define-public ldc-1.1.0-beta6
+ (let ((version2 "1.1.0-beta4")) ; libraries have not been updated
+ (package
+ (inherit ldcmain:ldc)
+ (name "ldc")
+ (version "1.1.0-beta6")
+ (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
+ "0n53brlkm86jjkppy9xmzx7nyxykzj68kcxgv8q7d10s5hfscxs8"))))
+ (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"
+ (("/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)))
+ #:tests? #f))
+ (native-inputs
+ `(("llvm" ,llvm-3.7)
+ ("ldc" ,ldc-0.17.2)
+ ("zlib" ,zlib)
+ ("phobos-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/phobos/archive/ldc-v"
+ version2 ".tar.gz")) ; older version
+ (file-name (string-append "ldc-phobos-" version2 ".tar.gz"))
+ (sha256
+ (base32
+ "1iwy5rs0rqkicj1zfsa5yqvk8ard99bfr8g69qmhlbzb98q0kpks"))))
+ ("druntime-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/druntime/archive/ldc-v"
+ version2 ".tar.gz"))
+ (file-name (string-append "ldc-druntime-" version2 ".tar.gz"))
+ (sha256
+ (base32
+ "1qsiw5lz1pr8ms9myjf8b94nqi7f1781k226jvxwnhkjg11d0s63"))))
+ ("dmd-testsuite-src"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
+ version2 ".tar.gz")) ; version is behind
+ (file-name (string-append "dmd-testsuite-" version2 ".tar.gz"))
+ (sha256
+ (base32
+ "0jp54hyi75i9g41rvgmm3zg21yzv57q8dghrhb432rb0n9j15mbp")))))))))
+
+(define-public ldc ldc-1.1.0-beta6)
+
+(define-public rdmd
+ (package
+ (name "rdmd")
+ (version "v2.072.1") ;; remove v when putting in mainline
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/dlang/tools/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "04n6sbz6l658s32f7zilpbi9m8a1m4g5wrgl44igkvla30niy5yn"))))
- (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"
- (("/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)))
- #:tests? #f))
- (native-inputs
- `(("llvm" ,llvm-3.7)
- ("ldc" ,ldc-0.17.2)
- ("phobos-src"
- ,(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/ldc-developers/phobos/archive/ldc-v"
- version ".tar.gz"))
- (sha256
- (base32
- "1iwy5rs0rqkicj1zfsa5yqvk8ard99bfr8g69qmhlbzb98q0kpks"))))
- ("druntime-src"
- ,(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/ldc-developers/druntime/archive/ldc-v"
- version ".tar.gz"))
- (sha256
- (base32
- "1qsiw5lz1pr8ms9myjf8b94nqi7f1781k226jvxwnhkjg11d0s63"))))
- ("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
- "0jp54hyi75i9g41rvgmm3zg21yzv57q8dghrhb432rb0n9j15mbp"))))))))
-
-(define-public ldc ldc-1.1.0-beta4)
+ "0ryn4fv1mj8c8d7y4lrr43baahl3z7sk5bryj9kd829paz573va6"))))
+ (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 _
+ (zero? (system* "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)))