From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:16:33 2019 Received: (at submit) by debbugs.gnu.org; 12 Mar 2019 20:16:33 +0000 Received: from localhost ([127.0.0.1]:40634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3npA-0003YC-HG for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:16:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3np9-0003Y1-3g for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:16:31 -0400 Received: from lists.gnu.org ([209.51.188.17]:48891) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h3np3-0002tb-Vr for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:16:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3np0-0007VL-JK for guix-patches@gnu.org; Tue, 12 Mar 2019 16:16:24 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h3noz-0002pf-LT for guix-patches@gnu.org; Tue, 12 Mar 2019 16:16:22 -0400 Received: from flashner.co.il ([178.62.234.194]:39392) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3noz-0002og-Br for guix-patches@gnu.org; Tue, 12 Mar 2019 16:16:21 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id D1D82407D2; Tue, 12 Mar 2019 20:16:19 +0000 (UTC) From: Efraim Flashner To: guix-patches@gnu.org Subject: [PATCH 00/25] Add perl6 Date: Tue, 12 Mar 2019 22:16:08 +0200 Message-Id: <20190312201608.30892-1-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 178.62.234.194 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) I think my perl6 patches are more or less ready. There's a few rough edges but I'm pretty sure it works well enough. I could use some help with the build-system code, two of my flags aren't being transfered correctly and right now I'm working around it. For a list of packages for testing I took the list from rakudo-star and started at the top. The first 3 are to build rakudo itself. The next one is the build system. perl6-tap-harness gives us the 'prove6' binary which is useful for testing. perl6-zef gives us the 'zef' binary which is to perl6 what 'pip' is to perl5. The rest are a bunch of packages I packaged to test everything. To make it easier to review I've also pushed it as 'wip-perl6' to savannah. Efraim Flashner (25): gnu: Add moarvm. gnu: Add nqp. gnu: Add rakudo. build: Add rakudo-build-system. gnu: Add perl6-tap-harness. gnu: Add perl6-zef. gnu: Add perl6-uri. gnu: Add perl6-json-fast. gnu: Add perl6-json-name. gnu: Add perl6-json-unmarshal. gnu: Add perl6-json-marshal. gnu: Add perl6-json-class. gnu: Add perl6-meta6. gnu: Add perl6-license-spdx. gnu: Add perl6-test-meta. gnu: Add perl6-xml-writer. gnu: Add perl6-svg. gnu: Add perl6-svg-plot. gnu: Add perl6-terminal-ansicolor. gnu: Add perl6-oo-monitors. gnu: Add perl6-test-mock. gnu: Add perl6-grammar-profiler-simple. gnu: Add perl6-grammar-debugger. gnu: Add perl6-mime-base64. gnu: Add perl6-json. Makefile.am | 3 + doc/guix.texi | 20 +- gnu/local.mk | 3 +- gnu/packages/perl6.scm | 788 +++++++++++++++++++++++++++++ guix/build-system/rakudo.scm | 155 ++++++ guix/build/rakudo-build-system.scm | 140 +++++ 6 files changed, 1107 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/perl6.scm create mode 100644 guix/build-system/rakudo.scm create mode 100644 guix/build/rakudo-build-system.scm --=20 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:34 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:34 +0000 Received: from localhost ([127.0.0.1]:40639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nsw-0003eN-AV for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:33 -0400 Received: from flashner.co.il ([178.62.234.194]:49686) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nst-0003eA-As for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:24 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 867DF40402; Tue, 12 Mar 2019 20:20:17 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 01/25] gnu: Add moarvm. Date: Tue, 12 Mar 2019 22:19:50 +0200 Message-Id: <20190312202014.31224-1-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (moarvm): New variable. --- gnu/local.mk | 3 +- gnu/packages/perl6.scm | 93 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/perl6.scm diff --git a/gnu/local.mk b/gnu/local.mk index af2bf87273..79b93d5966 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -10,7 +10,7 @@ # Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft # Copyright © 2016, 2017, 2018, 2019 Alex Vong -# Copyright © 2016, 2017 Efraim Flashner +# Copyright © 2016, 2017, 2018, 2019 Efraim Flashner # Copyright © 2016, 2017 Jan Nieuwenhuizen # Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice # Copyright © 2017, 2018 Clément Lassieur @@ -364,6 +364,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/perl-check.scm \ %D%/packages/perl-compression.scm \ %D%/packages/perl-web.scm \ + %D%/packages/perl6.scm \ %D%/packages/photo.scm \ %D%/packages/phabricator.scm \ %D%/packages/php.scm \ diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm new file mode 100644 index 0000000000..7e92c865aa --- /dev/null +++ b/gnu/packages/perl6.scm @@ -0,0 +1,93 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Efraim Flashner +;;; +;;; 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 . + +(define-module (gnu packages perl6) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system perl) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages libevent) + #:use-module (gnu packages libffi) + #:use-module (gnu packages pkg-config)) + +(define-public moarvm + (package + (name "moarvm") + (version "2018.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://moarvm.org/releases/MoarVM-" + version ".tar.gz")) + (sha256 + (base32 + "0fv98712k1gk56a612388db1azjsyabsbygav1pa3z2kd6js4cz4")) + (modules '((guix build utils))) + (snippet + '(begin + ;(delete-file-recursively "3rdparty/dynasm") ; JIT + (delete-file-recursively "3rdparty/dyncall") + (delete-file-recursively "3rdparty/freebsd") + (delete-file-recursively "3rdparty/libatomicops") + (delete-file-recursively "3rdparty/libuv") + ;(delete-file-recursively "3rdparty/libtommath") v1.0 + (delete-file-recursively "3rdparty/msinttypes") + #t)))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (pkg-config (assoc-ref inputs "pkg-config"))) + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib")) + (invoke "perl" "Configure.pl" + "--prefix" out + "--pkgconfig" (string-append pkg-config "/bin/pkg-config") + "--has-libatomic_ops" + "--has-libffi" + "--has-libuv"))))))) + (home-page "https://moarvm.org/") + ;; These should be inputs but moar.h can't find them when building rakudo + (propagated-inputs + `(("libatomic-ops" ,libatomic-ops) + ("libuv" ,libuv))) + (inputs + `(("libffi" ,libffi))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "VM for NQP And Rakudo Perl 6") + (description + "Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual machine +built for the Rakudo Perl 6 compiler and the NQP Compiler Toolchain. Highlights +include: + +@itemize +@item Great Unicode support, with strings represented at grapheme level +@item Dynamic analysis of running code to identify hot functions and loops, and +perform a range of optimizations, including type specialization and inlining +@item Support for threads, a range of concurrency control constructs, and +asynchronous sockets, timers, processes, and more +@item Generational, parallel, garbage collection +@item Support for numerous language features, including first class functions, +exceptions, continuations, runtime loading of code, big integers and interfacing +with native libraries. +@end itemize") + (license license:artistic2.0))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:41 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:41 +0000 Received: from localhost ([127.0.0.1]:40645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt4-0003em-8K for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:41 -0400 Received: from flashner.co.il ([178.62.234.194]:49690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nsy-0003eD-2j for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:28 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 624A9407D7; Tue, 12 Mar 2019 20:20:22 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 02/25] gnu: Add nqp. Date: Tue, 12 Mar 2019 22:19:51 +0200 Message-Id: <20190312202014.31224-2-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (nqp): New variable. --- gnu/packages/perl6.scm | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 7e92c865aa..344bb4efda 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -19,6 +19,7 @@ (define-module (gnu packages perl6) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix build-system perl) #:use-module (gnu packages bdw-gc) @@ -91,3 +92,70 @@ exceptions, continuations, runtime loading of code, big integers and interfacing with native libraries. @end itemize") (license license:artistic2.0))) + +(define-public nqp + (package + (name "nqp") + (version "2018.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/perl6/nqp.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bwvyfyhirqi46p0j5m1ri98rxbfks8wc5amiaqwqyqq7x1l25xd")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "3rdparty") #t)))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda _ + (substitute* '("tools/build/install-jvm-runner.pl.in" + "tools/build/gen-js-cross-runner.pl" + "tools/build/gen-js-runner.pl" + "tools/build/install-js-runner.pl" + "tools/build/install-moar-runner.pl" + "tools/build/gen-moar-runner.pl" + "t/nqp/111-spawnprocasync.t" + "t/nqp/113-run-command.t") + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'unpack 'patch-source-date + (lambda _ + (substitute* "tools/build/gen-version.pl" + (("gmtime") "gmtime(0)")) + #t)) + (add-after 'unpack 'remove-failing-test + ;; One subtest fails for unknown reasons + (lambda _ + (delete-file "t/nqp/019-file-ops.t") + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (moar (assoc-ref inputs "moarvm"))) + (invoke "perl" "Configure.pl" + "--backends=moar" + "--with-moar" (string-append moar "/bin/moar") + "--prefix" out))))))) + (inputs + `(("moarvm" ,moarvm))) + (home-page "https://github.com/perl6/nqp") + (synopsis "Not Quite Perl") + (description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like +environment for virtual machines. The key feature of NQP is that it's designed +to be a very small environment (as compared with, say, perl6 or Rakudo) and is +focused on being a high-level way to create compilers and libraries for virtual +machines like MoarVM, the JVM, and others. + +Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a +runtime footprint as it can, while still providing a Perl 6 object model and +regular expression engine for the virtual machine.") + (license license:artistic2.0))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:41 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:41 +0000 Received: from localhost ([127.0.0.1]:40652 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntB-0003fb-CF for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:41 -0400 Received: from flashner.co.il ([178.62.234.194]:49694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nsz-0003eL-W4 for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:30 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 46833407DE; Tue, 12 Mar 2019 20:20:24 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 03/25] gnu: Add rakudo. Date: Tue, 12 Mar 2019 22:19:52 +0200 Message-Id: <20190312202014.31224-3-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (rakudo): New variable. --- gnu/packages/perl6.scm | 70 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 344bb4efda..9659361309 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -25,7 +25,8 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls)) (define-public moarvm (package @@ -159,3 +160,70 @@ Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a runtime footprint as it can, while still providing a Perl 6 object model and regular expression engine for the virtual machine.") (license license:artistic2.0))) + +(define-public rakudo + (package + (name "rakudo") + (version "2018.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rakudo/rakudo.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g8n1vmpi3g6qd0bj59lwgmcqdwlyg3nciyxbdnq7bw7qp12k0p4")))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source-date + (lambda _ + (substitute* "tools/build/gen-version.pl" + (("gmtime") "gmtime(0)")) + #t)) + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda _ + (substitute* '("tools/build/create-js-runner.pl" + "tools/build/create-moar-runner.p6" + "tools/build/create-jvm-runner.pl" + "src/core/Proc.pm6") + (("/bin/sh") (which "sh"))) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (nqp (assoc-ref inputs "nqp"))) + (invoke "perl" "./Configure.pl" + "--backend=moar" + "--with-nqp" (string-append nqp "/bin/nqp") + "--prefix" out)))) + ;; This is the recommended tool to use for installing perl6 modules as + ;; a distribution. See: https://github.com/ugexe/zef/issues/117 + (add-after 'install 'install-dist-tool + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dest (string-append out "/share/perl6/tools"))) + (install-file "tools/install-dist.p6" dest) + (substitute* (string-append dest "/install-dist.p6") + (("/usr/bin/env perl6") + (string-append out "/bin/perl6")))) + #t))))) + (inputs + `(("moarvm" ,moarvm) + ("nqp" ,nqp) + ("openssl" ,openssl))) + (home-page "https://rakudo.org/") + (native-search-paths + (list (search-path-specification + (variable "PERL6LIB") + (separator ",") + (files '("share/perl6/lib" + "share/perl6/site/lib" + "share/perl6/vendor/lib"))))) + (synopsis "Perl 6 Compiler") + (description "Rakudo Perl is a compiler that implements the Perl 6 +specification and runs on top of several virtual machines.") + (license license:artistic2.0))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:46 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:46 +0000 Received: from localhost ([127.0.0.1]:40654 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntB-0003fj-QD for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:46 -0400 Received: from flashner.co.il ([178.62.234.194]:49698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt1-0003eP-SS for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:32 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 2660140402; Tue, 12 Mar 2019 20:20:26 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 04/25] build: Add rakudo-build-system. Date: Tue, 12 Mar 2019 22:19:53 +0200 Message-Id: <20190312202014.31224-4-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * guix/build-system/rakudo.scm, guix/build/rakudo-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build System): Document it. --- Makefile.am | 3 + doc/guix.texi | 20 +++- guix/build-system/rakudo.scm | 155 +++++++++++++++++++++++++++++ guix/build/rakudo-build-system.scm | 140 ++++++++++++++++++++++++++ 4 files changed, 317 insertions(+), 1 deletion(-) create mode 100644 guix/build-system/rakudo.scm create mode 100644 guix/build/rakudo-build-system.scm diff --git a/Makefile.am b/Makefile.am index cf35770ba7..c3d2525af3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,6 +13,7 @@ # Copyright © 2018 Julien Lepiller # Copyright © 2018 Oleg Pykhalov # Copyright © 2018 Alex Vong +# Copyright © 2019 Efraim Flashner # # This file is part of GNU Guix. # @@ -124,6 +125,7 @@ MODULES = \ guix/build-system/ocaml.scm \ guix/build-system/waf.scm \ guix/build-system/r.scm \ + guix/build-system/rakudo.scm \ guix/build-system/ruby.scm \ guix/build-system/scons.scm \ guix/build-system/texlive.scm \ @@ -164,6 +166,7 @@ MODULES = \ guix/build/python-build-system.scm \ guix/build/ocaml-build-system.scm \ guix/build/r-build-system.scm \ + guix/build/rakudo-build-system.scm \ guix/build/ruby-build-system.scm \ guix/build/scons-build-system.scm \ guix/build/texlive-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 82cf2babb2..5937c86dad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -28,7 +28,7 @@ Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* -Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* +Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* @@ -5893,6 +5893,24 @@ are run after installation using the R function @code{tools::testInstalledPackage}. @end defvr +@defvr {Scheme Variable} rakudo-build-system +This variable is exported by @code{(guix build-system rakudo)} It +implements the build procedure used by @uref{https://rakudo.org/, +Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the +package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and +installs the binaries, library files and the resources, as well as wrap +the files under the @code{bin/} directory. Tests can be skipped by +passing @code{#f} to the @code{tests?} parameter. + +Which rakudo package is used can be specified with @code{rakudo}. +Which perl6-tap-harness package used for the tests can be specified with +@code{#:prove6} or removed by passing @code{#f} to the +@code{with-prove6?} parameter. +Which perl6-zef package used for tests and installing can be specified +with @code{#:zef} or removed by passing @code{#f} to the +@code{with-zef?} parameter. +@end defvr + @defvr {Scheme Variable} texlive-build-system This variable is exported by @code{(guix build-system texlive)}. It is used to build TeX packages in batch mode with a specified engine. The diff --git a/guix/build-system/rakudo.scm b/guix/build-system/rakudo.scm new file mode 100644 index 0000000000..fd469f0bb5 --- /dev/null +++ b/guix/build-system/rakudo.scm @@ -0,0 +1,155 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Efraim Flashner +;;; +;;; 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 . + +(define-module (guix build-system rakudo) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%rakudo-build-system-modules + rakudo-build + rakudo-build-system)) + +;; Commentary: +;; +;; Standard build and install procedure for packages using the Rakudo +;; build system to be installed as system libraries. This is +;; implemented as an extension of `gnu-build-system'. +;; +;; Code: + +(define %rakudo-build-system-modules + ;; Build-side modules imported by default. + `((guix build rakudo-build-system) + ,@%gnu-build-system-modules)) + +(define (default-rakudo) + "Return the default Rakudo package." + + ;; Do not use `@' to avoid introducing circular dependencies. + (let ((module (resolve-interface '(gnu packages perl6)))) + (module-ref module 'rakudo))) + +(define (default-prove6) + "Return the default perl6-tap-harness package for tests." + (let ((module (resolve-interface '(gnu packages perl6)))) + (module-ref module 'perl6-tap-harness))) + +(define (default-zef) + "Return the default perl6-zef package." + (let ((module (resolve-interface '(gnu packages perl6)))) + (module-ref module 'perl6-zef))) + +(define* (lower name + #:key source inputs native-inputs outputs + system target + (rakudo (default-rakudo)) + (prove6 (default-prove6)) + (zef (default-zef)) + (with-prove6? #t) + (with-zef? #t) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:rakudo #:prove6 #:zef #:inputs #:native-inputs)) + + (and (not target) ;XXX: no cross-compilation + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("rakudo" ,rakudo) + ,@(if with-prove6? + `(("perl6-tap-harness" ,prove6)) + '()) + ,@(if with-zef? + `(("perl6-zef" ,zef)) + '()) + ,@native-inputs)) + (outputs outputs) + (build rakudo-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define* (rakudo-build store name inputs + #:key + (search-paths '()) + (tests? #t) + (phases '(@ (guix build rakudo-build-system) + %standard-phases)) + (outputs '("out")) + (system (%current-system)) + (guile #f) + (with-zef? #t) + (with-prove6? #t) + (imported-modules %rakudo-build-system-modules) + (modules '((guix build rakudo-build-system) + (guix build utils)))) + "Build SOURCE using PERL6, and with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (rakudo-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:phases ,phases + #:system ,system + #:tests? ,tests? + #:outputs %outputs + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs inputs + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define rakudo-build-system + (build-system + (name 'rakudo) + (description "The standard Rakudo build system") + (lower lower))) + +;;; rakudo.scm ends here diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build-system.scm new file mode 100644 index 0000000000..bfdefa3c4e --- /dev/null +++ b/guix/build/rakudo-build-system.scm @@ -0,0 +1,140 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Efraim Flashner +;;; +;;; 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 . + +(define-module (guix build rakudo-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + rakudo-build)) + +;; Commentary: +;; +;; Builder-side code of the standard Rakudo package build procedure. +;; +;; Code: + +(define* (check #:key tests? inputs with-prove6? #:allow-other-keys) + (if (and tests? (assoc-ref inputs "perl6-tap-harness")) + ;(if (and tests? with-prove6?) + (invoke "prove6" "-I=lib" "t/") + (format #t "test suite not run~%")) + #t) + +(define* (install #:key inputs outputs with-zef? #:allow-other-keys) + "Install a given Perl6 package." + (let* ((out (assoc-ref outputs "out")) + (perl6 (string-append out "/share/perl6"))) + (if (assoc-ref inputs "perl6-zef") + ;(if with-zef? + (begin + (let ((zef (string-append (assoc-ref inputs "perl6-zef") + "/bin/zef"))) + (setenv "HOME" (getcwd)) + (mkdir-p perl6) + (invoke zef "install" "--verbose" "." + ;; Don't install any of the following: + "--/depends" "--/build-depends" "--/test-depends" + (string-append "--install-to=" perl6)) + (delete-file (string-append perl6 "/repo.lock"))) + #t) + (begin + (let ((inst (string-append (assoc-ref inputs "rakudo") + "/share/perl6/tools/install-dist.p6"))) + (setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0") + (setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while building + (invoke inst (string-append "--to=" perl6) "--for=site")))))) + +(define* (install-libs #:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lock "lib/.precomp/.lock")) + (when (file-exists? lock) + (delete-file "lib/.precomp/.lock")) + (copy-recursively "lib" (string-append out "/share/perl6/lib")) + #t)) + +(define* (install-bins #:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (when (file-exists? "bin") + (for-each (lambda (file) + (install-file file (string-append out "/bin")) + (chmod (string-append out "/" file) #o555)) + (find-files "bin" ".*"))) + #t)) + +(define* (install-resources #:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (when (file-exists? "resources") + (copy-recursively "resources" + (string-append out "/share/perl6/resources"))) + #t)) + +(define* (wrap #:key inputs outputs #:allow-other-keys) + (define (list-of-files dir) + (map (cut string-append dir "/" <>) + (or (scandir dir (lambda (f) + (let ((s (stat (string-append dir "/" f)))) + (eq? 'regular (stat:type s))))) + '()))) + + (define bindirs + (append-map (match-lambda + ((_ . dir) + (list (string-append dir "/bin") + (string-append dir "/sbin")))) + outputs)) + + (let* ((out (assoc-ref outputs "out")) + (var `("PERL6LIB" "," prefix + ,(cons (string-append out "/share/perl6/lib," + out "/share/perl6/site/lib," + out "/share/perl6/vendor/lib") + (search-path-as-string->list + (or (getenv "PERL6LIB") "") #\,))))) + (for-each (lambda (dir) + (let ((files (list-of-files dir))) + (for-each (cut wrap-program <> var) + files))) + bindirs) + #t)) + +(define %standard-phases + ;; No need for 'bootstrap, 'configure or 'build. + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (delete 'build) + (replace 'check check) + (replace 'install install) + (add-before 'install 'install-lib-dir install-libs) + (add-after 'install-lib-dir 'install-resources install-resources) + (add-after 'install-resources 'install-binaries install-bins) + ;; needs to be after 'install-binaries and all 'install phases + (add-after 'install 'wrap wrap))) + +(define* (rakudo-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Perl6 package, applying all of PHASES in order." + (apply gnu:gnu-build + #:inputs inputs #:phases phases + args)) + +;;; rakudo-build-system.scm ends here -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:46 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:46 +0000 Received: from localhost ([127.0.0.1]:40657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntG-0003g2-Bb for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:46 -0400 Received: from flashner.co.il ([178.62.234.194]:49702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt3-0003eR-O5 for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:34 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 1D23E407EF; Tue, 12 Mar 2019 20:20:28 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 05/25] gnu: Add perl6-tap-harness. Date: Tue, 12 Mar 2019 22:19:54 +0200 Message-Id: <20190312202014.31224-5-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-tap-harness): New variable. --- gnu/packages/perl6.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 9659361309..1bcd99faff 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -22,6 +22,7 @@ #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix build-system perl) + #:use-module (guix build-system rakudo) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) @@ -227,3 +228,33 @@ regular expression engine for the virtual machine.") (description "Rakudo Perl is a compiler that implements the Perl 6 specification and runs on top of several virtual machines.") (license license:artistic2.0))) + +(define-public perl6-tap-harness + (package + (name "perl6-tap-harness") + (version "0.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/perl6/tap-harness6.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lig8i0my3fgqvlay9532xslbf3iis2d7wz89gniwvwqffi2kh6r")))) + (build-system rakudo-build-system) + (arguments + '(#:with-zef? #f + #:with-prove6? #f + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "perl6" "-Ilib" "bin/prove6" "-l" "t")))))) + (home-page "https://github.com/perl6/tap-harness6/") + (synopsis "TAP harness for perl6") + (description "This module provides the @command{prove6} command which runs a +TAP based test suite and prints a report. The @command{prove6} command is a +minimal wrapper around an instance of this module.") + (license license:artistic2.0))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:47 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:47 +0000 Received: from localhost ([127.0.0.1]:40659 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntG-0003gB-Jp for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:46 -0400 Received: from flashner.co.il ([178.62.234.194]:49698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt4-0003eP-Cy for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:34 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id E49E34081D; Tue, 12 Mar 2019 20:20:33 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 08/25] gnu: Add perl6-json-fast. Date: Tue, 12 Mar 2019 22:19:57 +0200 Message-Id: <20190312202014.31224-8-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json-fast): New variable. --- gnu/packages/perl6.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 0ab441cf82..0cd1f02621 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -229,6 +229,30 @@ regular expression engine for the virtual machine.") specification and runs on top of several virtual machines.") (license license:artistic2.0))) +(define-public perl6-json-fast + (package + (name "perl6-json-fast") + (version "0.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/timo/json_fast.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fif081gdxdnja14vkj523p9dyzdcdj81lmjv9fvfazvpagb6dg2")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/timo/json_fast") + (synopsis "Perl6 json parser") + (description "A naive imperative json parser in pure perl6 (but with direct +access to @code{nqp::} ops), to evaluate performance against @code{JSON::Tiny}. +It is a drop-in replacement for @code{JSON::Tiny}'s from-json and to-json subs, +but it offers a few extra features.") + (license license:artistic2.0))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:47 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:47 +0000 Received: from localhost ([127.0.0.1]:40662 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntH-0003gJ-1A for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:47 -0400 Received: from flashner.co.il ([178.62.234.194]:49706) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt5-0003ee-SN for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:36 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 4160B407D7; Tue, 12 Mar 2019 20:20:30 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 06/25] gnu: Add perl6-zef. Date: Tue, 12 Mar 2019 22:19:55 +0200 Message-Id: <20190312202014.31224-6-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-zef): New variable. --- gnu/packages/perl6.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 1bcd99faff..1f5af42d04 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -258,3 +258,34 @@ specification and runs on top of several virtual machines.") TAP based test suite and prints a report. The @command{prove6} command is a minimal wrapper around an instance of this module.") (license license:artistic2.0))) + +(define-public perl6-zef + (package + (name "perl6-zef") + (version "0.6.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ugexe/zef.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07n7g1xw2c4g860rs890gx85vyhdq0ysgwbrnzw6q905jph2bkv7")))) + (build-system rakudo-build-system) + (arguments + '(#:with-zef? #f + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "HOME" "/tmp") + (invoke "perl6" "-I." "bin/zef" "--debug" + "--tap-harness" "test" ".")))))) + (home-page "https://github.com/ugexe/zef") + (synopsis "Perl6 Module Management") + (description "Zef is a Perl 6 package (module) manager. It can be used to +download and install Perl 6 modules in your home directory or as a system-wide +module.") + (license license:artistic2.0))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:47 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:47 +0000 Received: from localhost ([127.0.0.1]:40664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntH-0003gU-F7 for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:47 -0400 Received: from flashner.co.il ([178.62.234.194]:49702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt6-0003eR-3Z for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:36 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id A734040402; Tue, 12 Mar 2019 20:20:35 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 09/25] gnu: Add perl6-json-name. Date: Tue, 12 Mar 2019 22:19:58 +0200 Message-Id: <20190312202014.31224-9-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json-name): New variable. --- gnu/packages/perl6.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 0cd1f02621..1090809b5c 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -253,6 +253,32 @@ It is a drop-in replacement for @code{JSON::Tiny}'s from-json and to-json subs, but it offers a few extra features.") (license license:artistic2.0))) +(define-public perl6-json-name + (package + (name "perl6-json-name") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/JSON-Name.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "130qwdpbj5qdlsdz05y0rksd79lzbq79scy47n6lnf21b0hz1qjc")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/jonathanstowe/JSON-Name") + (synopsis "Provides a trait to store an alternative JSON Name") + (description "This is released as a dependency of @code{JSON::Marshal} and +@code{JSON::Unmarshal} in order to save duplication, it is intended to store a +separate JSON name for an attribute where the name of the JSON attribute might be +changed, either for aesthetic reasons or the name is not a valid Perl identifier. +It will of course also be needed in classes thar are going to use +@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialisation/de-serialisation.") + (license license:artistic2.0))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:48 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:48 +0000 Received: from localhost ([127.0.0.1]:40666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntH-0003gc-Pl for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:48 -0400 Received: from flashner.co.il ([178.62.234.194]:49710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt7-0003eh-OX for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:38 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 23A46407DE; Tue, 12 Mar 2019 20:20:32 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 07/25] gnu: Add perl6-uri. Date: Tue, 12 Mar 2019 22:19:56 +0200 Message-Id: <20190312202014.31224-7-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-uri): New variable. --- gnu/packages/perl6.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 1f5af42d04..0ab441cf82 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -259,6 +259,30 @@ TAP based test suite and prints a report. The @command{prove6} command is a minimal wrapper around an instance of this module.") (license license:artistic2.0))) +(define-public perl6-uri + (package + (name "perl6-uri") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/perl6-community-modules/uri.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0h318g75jqn2ckw051g35iqyfxz1mps0jyg5z6pd857y3kacbkpl")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/perl6-community-modules/uri") + (synopsis "URI implementation using Perl 6") + (description "A URI implementation using Perl 6 grammars to implement RFC +3986 BNF. Currently only implements parsing. Includes @code{URI::Escape} to +(un?)escape characters that aren't otherwise allowed in a URI with % and a hex +character numbering.") + (license license:artistic2.0))) + (define-public perl6-zef (package (name "perl6-zef") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:48 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:48 +0000 Received: from localhost ([127.0.0.1]:40668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntI-0003gj-25 for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:48 -0400 Received: from flashner.co.il ([178.62.234.194]:49706) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nt7-0003ee-SL for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:38 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 6939A40402; Tue, 12 Mar 2019 20:20:37 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 10/25] gnu: Add perl6-json-unmarshal. Date: Tue, 12 Mar 2019 22:19:59 +0200 Message-Id: <20190312202014.31224-10-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json-unmarshal): New variable. --- gnu/packages/perl6.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 1090809b5c..39b9a6fd13 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -279,6 +279,33 @@ It will of course also be needed in classes thar are going to use @code{JSON::Marshal} or @code{JSON::Unmarshal} for serialisation/de-serialisation.") (license license:artistic2.0))) +(define-public perl6-json-unmarshal + ;; Last commit was May 2017 + (let ((commit "e1b6288c5f3165058f36c0f4e171cdf2dfd640da") + (revision "1")) + (package + (name "perl6-json-unmarshal") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tadzik/JSON-Unmarshal.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-json-fast" ,perl6-json-fast) + ("perl6-json-name" ,perl6-json-name))) + (home-page "https://github.com/tadzik/JSON-Unmarshal") + (synopsis "Make JSON from an Object") + (description "This library provides a single exported subroutine to +create an object from a JSON representation of an object.") + (license license:expat)))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:48 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:48 +0000 Received: from localhost ([127.0.0.1]:40670 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntI-0003gq-BB for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:48 -0400 Received: from flashner.co.il ([178.62.234.194]:49720) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntE-0003fX-Pu for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:45 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 2CC5A40402; Tue, 12 Mar 2019 20:20:39 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 11/25] gnu: Add perl6-json-marshal. Date: Tue, 12 Mar 2019 22:20:00 +0200 Message-Id: <20190312202014.31224-11-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json-marshal): New variable. --- gnu/packages/perl6.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 39b9a6fd13..da399a45a6 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -253,6 +253,33 @@ It is a drop-in replacement for @code{JSON::Tiny}'s from-json and to-json subs, but it offers a few extra features.") (license license:artistic2.0))) +(define-public perl6-json-marshal + (package + (name "perl6-json-marshal") + (version "0.0.16") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/JSON-Marshal.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qy7j83h6gjzyyv74ncd92cd9h45rv8diaz3vldiv3b6fqwz4c6i")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-json-fast" ,perl6-json-fast) + ("perl6-json-name" ,perl6-json-name))) + (native-inputs + `(("perl6-json-fast" ,perl6-json-fast))) + (home-page "https://github.com/jonathanstowe/JSON-Marshal") + (synopsis "Simple serialisation of objects to JSON") + (description "This library provides a single exported subroutine to create +a JSON representation of an object. It should round trip back into an object +of the same class using @code{JSON::Unmarshal}.") + (license license:artistic2.0))) + (define-public perl6-json-name (package (name "perl6-json-name") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:50 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:50 +0000 Received: from localhost ([127.0.0.1]:40673 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntJ-0003h9-Lx for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:49 -0400 Received: from flashner.co.il ([178.62.234.194]:49724) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntG-0003fc-HR for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:47 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id E54E1407D7; Tue, 12 Mar 2019 20:20:40 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 12/25] gnu: Add perl6-json-class. Date: Tue, 12 Mar 2019 22:20:01 +0200 Message-Id: <20190312202014.31224-12-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json-class): New variable. --- gnu/packages/perl6.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index da399a45a6..845cfae3f2 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -229,6 +229,37 @@ regular expression engine for the virtual machine.") specification and runs on top of several virtual machines.") (license license:artistic2.0))) +(define-public perl6-json-class + (package + (name "perl6-json-class") + (version "0.0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/JSON-Class.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zyzajc57j3m8q0nr72h9pw4w2nx92rafywlvysgphc5q9sb8np2")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-json-marshal" ,perl6-json-marshal) + ("perl6-json-unmarshal" ,perl6-json-unmarshal))) + (native-inputs + `(("perl6-json-fast" ,perl6-json-fast))) + (home-page "https://github.com/jonathanstowe/JSON-Class") + (synopsis "Provide simple serialisation/deserialisation of objects to/from JSON") + (description "This is a simple role that provides methods to instantiate a +class from a JSON string that (hopefully,) represents it, and to serialise an +object of the class to a JSON string. The JSON created from an instance should +round trip to a new instance with the same values for the @quot{public +attributes}. @quot{Private} attributes (that is ones without accessors,) will +be ignored for both serialisation and de-serialisation. The exact behaviour +depends on that of @code{JSON::Marshal} and @code{JSON::Unmarshal} respectively.") + (license license:artistic2.0))) + (define-public perl6-json-fast (package (name "perl6-json-fast") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:50 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:50 +0000 Received: from localhost ([127.0.0.1]:40675 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntJ-0003hC-Vt for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:50 -0400 Received: from flashner.co.il ([178.62.234.194]:49728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntI-0003fr-96 for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:48 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id A7655407DE; Tue, 12 Mar 2019 20:20:42 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 13/25] gnu: Add perl6-meta6. Date: Tue, 12 Mar 2019 22:20:02 +0200 Message-Id: <20190312202014.31224-13-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-meta6): New variable. --- gnu/packages/perl6.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 845cfae3f2..3fdae92842 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -364,6 +364,40 @@ It will of course also be needed in classes thar are going to use create an object from a JSON representation of an object.") (license license:expat)))) +(define-public perl6-meta6 + (package + (name "perl6-meta6") + (version "0.0.23") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/META6.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xnlaamfbdlfb2zidim3bbc4mawsrg6qxhxi6gbld46z1cyry1cw")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-json-class" ,perl6-json-class))) + (native-inputs + `(("perl6-json-fast" ,perl6-json-fast))) + (home-page "https://github.com/jonathanstowe/META6") + (synopsis "Do things with Perl 6 [META files]") + (description "This provides a representation of the Perl 6 META files +specification - the META file data can be read, created, parsed and written in a +manner that is conformant with the specification. + +Where they are known about it also makes allowance for @quot{customary} usage in +existing software (such as installers and so forth.) + +The intent of this is allow the generation and testing of META files for module +authors, so it can provide meta-information whether the attributes are mandatory +as per the spec and where known the places that @quot{customary} attributes are +used.") + (license license:artistic2.0))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:55 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:56 +0000 Received: from localhost ([127.0.0.1]:40679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntN-0003hd-HW for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:55 -0400 Received: from flashner.co.il ([178.62.234.194]:49732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntK-0003fu-1B for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:50 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 6C5E6407EF; Tue, 12 Mar 2019 20:20:44 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 14/25] gnu: Add perl6-license-spdx. Date: Tue, 12 Mar 2019 22:20:03 +0200 Message-Id: <20190312202014.31224-14-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-license-spdx): New variable. --- gnu/packages/perl6.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 3fdae92842..f3a10e00c6 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -364,6 +364,31 @@ It will of course also be needed in classes thar are going to use create an object from a JSON representation of an object.") (license license:expat)))) +(define-public perl6-license-spdx + (package + (name "perl6-license-spdx") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/License-SPDX") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dl263c3fbxk001gm5fisrzqz1dx182ipaa0x2qva2gxvl075xm8")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-json-class" ,perl6-json-class))) + (home-page "https://github.com/jonathanstowe/License-SPDX") + (synopsis "Abstraction over the SPDX License List") + (description "This provides an abstraction over the SPDX License List as +provided in JSON format. Its primary raison d'être is to help the licence +checking of @code{Test::META} and to allow for the warning about deprecated +licences therein.") + (license license:artistic2.0))) + (define-public perl6-meta6 (package (name "perl6-meta6") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:56 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:56 +0000 Received: from localhost ([127.0.0.1]:40684 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntP-0003hu-ST for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:56 -0400 Received: from flashner.co.il ([178.62.234.194]:49736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntL-0003gA-Oy for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:52 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 2BEBF40402; Tue, 12 Mar 2019 20:20:46 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 15/25] gnu: Add perl6-test-meta. Date: Tue, 12 Mar 2019 22:20:04 +0200 Message-Id: <20190312202014.31224-15-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-test-meta): New variable. --- gnu/packages/perl6.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index f3a10e00c6..08f5f86665 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -453,6 +453,30 @@ TAP based test suite and prints a report. The @command{prove6} command is a minimal wrapper around an instance of this module.") (license license:artistic2.0))) +(define-public perl6-test-meta + (package + (name "perl6-test-meta") + (version "0.0.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathanstowe/Test-META") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mzrglb7lbiy5h9dlc7dyhvv9gppxmdmpmrv6nzbd695jzr38bri")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-meta6" ,perl6-meta6) + ("perl6-uri" ,perl6-uri))) + (home-page "https://github.com/jonathanstowe/Test-META") + (synopsis "Test a distributions META file") + (description "This provides a simple mechanism for module authors to have +some confidence that they have a working distribution META description file.") + (license license:artistic2.0))) + (define-public perl6-uri (package (name "perl6-uri") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:56 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:56 +0000 Received: from localhost ([127.0.0.1]:40687 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntQ-0003i6-DF for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:56 -0400 Received: from flashner.co.il ([178.62.234.194]:49740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntN-0003gw-Lh for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:55 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 11A9F407D7; Tue, 12 Mar 2019 20:20:47 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 16/25] gnu: Add perl6-xml-writer. Date: Tue, 12 Mar 2019 22:20:05 +0200 Message-Id: <20190312202014.31224-16-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-xml-writer): New variable. --- gnu/packages/perl6.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 08f5f86665..04e0419135 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -501,6 +501,30 @@ some confidence that they have a working distribution META description file.") character numbering.") (license license:artistic2.0))) +(define-public perl6-xml-writer + ;; Last commit was May 2017 + (let ((commit "4d30a9d8e06033ca97387971b653817becd5a759") + (revision "1")) + (package + (name "perl6-xml-writer") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/masak/xml-writer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kwrf7akp70kyzw1b90khp71a6hpilihwndy2jsjpffcd4hd4m4z")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/masak/xml-writer") + (synopsis "Perl 6 module to generate XML") + (description "@code{XML::Writer} is a module for creating XML in Perl 6.") + (license license:artistic2.0)))) + (define-public perl6-zef (package (name "perl6-zef") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:57 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:57 +0000 Received: from localhost ([127.0.0.1]:40690 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntQ-0003iJ-SD for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:57 -0400 Received: from flashner.co.il ([178.62.234.194]:49736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntO-0003gA-1Z for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:55 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 95C0040402; Tue, 12 Mar 2019 20:20:53 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 19/25] gnu: Add perl6-terminal-ansicolor. Date: Tue, 12 Mar 2019 22:20:08 +0200 Message-Id: <20190312202014.31224-19-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-terminal-ansicolor): New variable. --- gnu/packages/perl6.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index af43dd3b60..30d1f4cfdd 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -508,6 +508,28 @@ TAP based test suite and prints a report. The @command{prove6} command is a minimal wrapper around an instance of this module.") (license license:artistic2.0))) +(define-public perl6-terminal-ansicolor + (package + (name "perl6-terminal-ansicolor") + (version "0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tadzik/Terminal-ANSIColor.git") + ;; The commit where 0.5 was "tagged" + (commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1apm999azkyg5s35gid12wq019aqnvzrkz7qjmipd74mdxgr00x7")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/tadzik/Terminal-ANSIColor") + (synopsis "Colorize terminal output") + (description "This is a @code{Terminal::ANSIColor} module for Perl 6.") + (license license:expat))) + (define-public perl6-test-meta (package (name "perl6-test-meta") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:20:59 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:20:59 +0000 Received: from localhost ([127.0.0.1]:40693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntT-0003ii-8u for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:59 -0400 Received: from flashner.co.il ([178.62.234.194]:49744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntP-0003hI-Hm for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:56 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id E5AC7407DE; Tue, 12 Mar 2019 20:20:49 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 17/25] gnu: Add perl6-svg. Date: Tue, 12 Mar 2019 22:20:06 +0200 Message-Id: <20190312202014.31224-17-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-svg): New variable. --- gnu/packages/perl6.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 04e0419135..96d4a670fa 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -423,6 +423,34 @@ as per the spec and where known the places that @quot{customary} attributes are used.") (license license:artistic2.0))) +(define-public perl6-svg + ;; Latest commit, basically unchanged since August 2015 + (let ((commit "07190c0602aa276e5319f06aa0012452dbff3582") + (revision "1")) + (package + (name "perl6-svg") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moritz/svg") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-xml-writer" ,perl6-xml-writer))) + (home-page "https://github.com/moritz/svg") + (synopsis "Perl 6 module to generate SVG") + (description "This is a Perl 6 module that makes it easy to write +@dfn{Scalable Vector Graphic files} (SVG). Right now it is a shallow wrapper +around @code{XML::Writer}, adding only the xmlns attributes that identifies an +XML file as SVG.") + (license license:artistic2.0)))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:00 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:00 +0000 Received: from localhost ([127.0.0.1]:40695 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntT-0003ik-KL for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:59 -0400 Received: from flashner.co.il ([178.62.234.194]:49740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntQ-0003gw-08 for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:56 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 8A7DD407D7; Tue, 12 Mar 2019 20:20:55 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 20/25] gnu: Add perl6-oo-monitors. Date: Tue, 12 Mar 2019 22:20:09 +0200 Message-Id: <20190312202014.31224-20-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-oo-monitors): New variable. --- gnu/packages/perl6.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 30d1f4cfdd..1d47562c13 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -423,6 +423,32 @@ as per the spec and where known the places that @quot{customary} attributes are used.") (license license:artistic2.0))) +(define-public perl6-oo-monitors + (package + (name "perl6-oo-monitors") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jnthn/oo-monitors") + ;; The commit where 1.1 was "tagged" + (commit "494db3a3852854f30a80c9bd1489a7d5e429e7c5"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sbw2x54wwjjanghjnc7ipmplaw1srvbrphsdv4ym6cipnbmbj9x")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/jnthn/oo-monitors") + (synopsis "Monitors with condition variables for Perl 6") + (description "A monitor provides per-instance mutual exclusion for objects. +This means that for a given object instance, only one thread can ever be inside +its methods at a time. This is achieved by a lock being associated with each +object. The lock is acquired automatically at the entry to each method in the +monitor. Condition variables are also supported.") + (license license:artistic2.0))) + (define-public perl6-svg ;; Latest commit, basically unchanged since August 2015 (let ((commit "07190c0602aa276e5319f06aa0012452dbff3582") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:02 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:02 +0000 Received: from localhost ([127.0.0.1]:40699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntU-0003j0-Dn for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:00 -0400 Received: from flashner.co.il ([178.62.234.194]:49748) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntR-0003hW-Ah for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:20:57 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id B2F3E407EF; Tue, 12 Mar 2019 20:20:51 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 18/25] gnu: Add perl6-svg-plot. Date: Tue, 12 Mar 2019 22:20:07 +0200 Message-Id: <20190312202014.31224-18-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-svg-plot): New variable. --- gnu/packages/perl6.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 96d4a670fa..af43dd3b60 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -451,6 +451,33 @@ around @code{XML::Writer}, adding only the xmlns attributes that identifies an XML file as SVG.") (license license:artistic2.0)))) +(define-public perl6-svg-plot + ;; Latest commit + (let ((commit "062570a78fd38c3c6baba29dfe2fbb8ca014f4de") + (revision "1")) + (package + (name "perl6-svg-plot") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moritz/svg-plot") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-svg" ,perl6-svg))) + (home-page "https://github.com/moritz/svg-plot") + (synopsis "Perl 6 charting and plotting library that produces SVG output") + (description "@code{SVG::Plot} is a simple 2D chart plotter for Perl 6. +It currently supports bars, stacked bars, lines and points (both equally spaced +with optional labels, or xy plots).") + (license license:artistic2.0)))) + (define-public perl6-tap-harness (package (name "perl6-tap-harness") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:05 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:05 +0000 Received: from localhost ([127.0.0.1]:40709 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntZ-0003ka-Jt for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:05 -0400 Received: from flashner.co.il ([178.62.234.194]:49756) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntX-0003ig-2j for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:03 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 778A240402; Tue, 12 Mar 2019 20:20:57 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 21/25] gnu: Add perl6-test-mock. Date: Tue, 12 Mar 2019 22:20:10 +0200 Message-Id: <20190312202014.31224-21-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-test-mock): New variable. --- gnu/packages/perl6.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 1d47562c13..b1e2f10ac9 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -580,6 +580,33 @@ minimal wrapper around an instance of this module.") some confidence that they have a working distribution META description file.") (license license:artistic2.0))) +(define-public perl6-test-mock + (package + (name "perl6-test-mock") + (version "1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jnthn/test-mock") + ;; The commit where 1.5 was "tagged" + (commit "6eddb42f73f40b9ac29c14badb41ce4a04d876f2"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07yr3qimc8fl29p23562ayj2j9h53madcnf9sgqvgf2kcprh0zd2")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-oo-monitors" ,perl6-oo-monitors))) + (home-page "https://github.com/jnthn/test-mock") + (synopsis "Module for simply generating and checking mock objects") + (description "@code{Test::Mock} is a module that works alongside the +standard Test module to help you write tests when you want to verify what +methods are called on an object, while still having calls to undefined methods +die. You get started just as normal with the test file, but also add a use +statement for @code{Test::Mock}.") + (license license:artistic2.0))) + (define-public perl6-uri (package (name "perl6-uri") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:07 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:07 +0000 Received: from localhost ([127.0.0.1]:40714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nta-0003l4-TA for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:07 -0400 Received: from flashner.co.il ([178.62.234.194]:49760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntZ-0003ir-4f for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:05 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 6F86C407D7; Tue, 12 Mar 2019 20:20:59 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 22/25] gnu: Add perl6-grammar-profiler-simple. Date: Tue, 12 Mar 2019 22:20:11 +0200 Message-Id: <20190312202014.31224-22-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-grammar-profiler-simple): New variable. --- gnu/packages/perl6.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index b1e2f10ac9..2b224aba64 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -229,6 +229,33 @@ regular expression engine for the virtual machine.") specification and runs on top of several virtual machines.") (license license:artistic2.0))) +(define-public perl6-grammar-profiler-simple + ;; Last commit was June 2017 + (let ((commit "c0aca5fab323b2974821dabd6b89330c609e0b7d") + (revision "1")) + (package + (name "perl6-grammar-profiler-simple") + (version (git-version "0.02" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/perlpilot/Grammar-Profiler-Simple.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qcsa4lmcilp3vp0jng0hrgzyzxin9ayg2wjvkcd0k6h7djx9dff")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/perlpilot/Grammar-Profiler-Simple") + (synopsis "Simple rule profiling for Perl 6 grammars") + (description "This module provides a simple profiler for Perl 6 grammars. +To enable profiling simply add use @code{Grammar::Profiler::Simple;} to your +code. Any grammar in the lexical scope of the use statement will automatically +have profiling information collected when the grammar is used.") + (license license:artistic2.0)))) + (define-public perl6-json-class (package (name "perl6-json-class") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:09 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:09 +0000 Received: from localhost ([127.0.0.1]:40721 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntd-0003lq-9k for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:09 -0400 Received: from flashner.co.il ([178.62.234.194]:49764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntb-0003jO-Ii for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:07 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id ED75A407DE; Tue, 12 Mar 2019 20:21:01 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 23/25] gnu: Add perl6-grammar-debugger. Date: Tue, 12 Mar 2019 22:20:12 +0200 Message-Id: <20190312202014.31224-23-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-grammar-debugger): New variable. --- gnu/packages/perl6.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 2b224aba64..dff6e0d41f 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -229,6 +229,35 @@ regular expression engine for the virtual machine.") specification and runs on top of several virtual machines.") (license license:artistic2.0))) +(define-public perl6-grammar-debugger + ;; Last commit was September 2017 + (let ((commit "0375008027c8caa216bd869476ce59ae09b2a702") + (revision "1")) + (package + (name "perl6-grammar-debugger") + (version (git-version "1.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jnthn/grammar-debugger") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5")))) + (build-system rakudo-build-system) + (propagated-inputs + `(("perl6-terminal-ansicolor" ,perl6-terminal-ansicolor))) + (home-page "https://github.com/jnthn/grammar-debugger") + (synopsis "Simple tracing and debugging support for Perl 6 grammars") + (description "This module provides a simple debugger for grammars. Just +@code{use} it: use @code{Grammar::Debugger;} and any grammar in the lexical +scope of the use statement will automatically have debugging enabled. The +debugger will break execution when you first enter the grammar, and provide a +prompt.") + (license license:artistic2.0)))) + (define-public perl6-grammar-profiler-simple ;; Last commit was June 2017 (let ((commit "c0aca5fab323b2974821dabd6b89330c609e0b7d") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:14 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:14 +0000 Received: from localhost ([127.0.0.1]:40730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3nth-0003mf-M8 for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:13 -0400 Received: from flashner.co.il ([178.62.234.194]:49768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntd-0003kH-Ry for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:10 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 4321440402; Tue, 12 Mar 2019 20:21:04 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 24/25] gnu: Add perl6-mime-base64. Date: Tue, 12 Mar 2019 22:20:13 +0200 Message-Id: <20190312202014.31224-24-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-mime-base64): New variable. --- gnu/packages/perl6.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index dff6e0d41f..162989b3d5 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -479,6 +479,28 @@ as per the spec and where known the places that @quot{customary} attributes are used.") (license license:artistic2.0))) +(define-public perl6-mime-base64 + (package + (name "perl6-mime-base64") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/perl6/Perl6-MIME-Base64") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0l67m8mvz3gxml425sd1ggfnhzh4lf754k7w8fngfr453s6lsza1")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/perl6/Perl6-MIME-Base64") + (synopsis "Encoding and decoding Base64 ASCII strings") + (description "This Perl 6 module implements encoding and decoding to and +from base64.") + (license license:artistic2.0))) + (define-public perl6-oo-monitors (package (name "perl6-oo-monitors") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:21:15 2019 Received: (at 34831) by debbugs.gnu.org; 12 Mar 2019 20:21:15 +0000 Received: from localhost ([127.0.0.1]:40735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntj-0003n7-0T for submit@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:15 -0400 Received: from flashner.co.il ([178.62.234.194]:49772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h3ntg-0003l2-0Q for 34831@debbugs.gnu.org; Tue, 12 Mar 2019 16:21:12 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 646A4407D7; Tue, 12 Mar 2019 20:21:06 +0000 (UTC) From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: [PATCH 25/25] gnu: Add perl6-json. Date: Tue, 12 Mar 2019 22:20:14 +0200 Message-Id: <20190312202014.31224-25-efraim@flashner.co.il> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 Cc: Efraim Flashner X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/perl6.scm (perl6-json): New variable. --- gnu/packages/perl6.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index 162989b3d5..3cdfefc17d 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -285,6 +285,29 @@ code. Any grammar in the lexical scope of the use statement will automatically have profiling information collected when the grammar is used.") (license license:artistic2.0)))) +(define-public perl6-json + (package + (name "perl6-json") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moritz/json") + ;; The commit where 1.0 was "tagged" + (commit "a5ef8c179350dae44ce7fb1abb684fc62c1c2b99"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kzryxkqyr129rcckd4jh0dfxdgzv71qx8dpkpm1divbfjyknlay")))) + (build-system rakudo-build-system) + (arguments '(#:with-zef? #f)) + (home-page "https://github.com/moritz/json") + (synopsis "A minimal JSON (de)serializer") + (description "This module is a simple Perl 6 module for serializing and +deserializing JSON.") + (license license:artistic2.0))) + (define-public perl6-json-class (package (name "perl6-json-class") -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 19 06:02:38 2019 Received: (at 34831) by debbugs.gnu.org; 19 Mar 2019 10:02:38 +0000 Received: from localhost ([127.0.0.1]:49565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6BZl-0003rx-V0 for submit@debbugs.gnu.org; Tue, 19 Mar 2019 06:02:38 -0400 Received: from flashner.co.il ([178.62.234.194]:42072) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6BZe-0003rZ-Ho for 34831@debbugs.gnu.org; Tue, 19 Mar 2019 06:02:28 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 5E0BA400C8 for <34831@debbugs.gnu.org>; Tue, 19 Mar 2019 10:02:16 +0000 (UTC) Date: Tue, 19 Mar 2019 12:02:15 +0200 From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: Re: [PATCH 02/25] gnu: Add nqp. Message-ID: <20190319100215.GE1141@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> <20190312202014.31224-2-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="C94crkcyjafcjHxo" Content-Disposition: inline In-Reply-To: <20190312202014.31224-2-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --C94crkcyjafcjHxo Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2019 at 10:19:51PM +0200, Efraim Flashner wrote: > * gnu/packages/perl6.scm (nqp): New variable. > --- > gnu/packages/perl6.scm | 68 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 68 insertions(+) >=20 > diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm > index 7e92c865aa..344bb4efda 100644 > --- a/gnu/packages/perl6.scm > +++ b/gnu/packages/perl6.scm > @@ -19,6 +19,7 @@ > (define-module (gnu packages perl6) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix download) > + #:use-module (guix git-download) > #:use-module (guix packages) > #:use-module (guix build-system perl) > #:use-module (gnu packages bdw-gc) > @@ -91,3 +92,70 @@ exceptions, continuations, runtime loading of code, bi= g integers and interfacing > with native libraries. > @end itemize") > (license license:artistic2.0))) > + > +(define-public nqp > + (package > + (name "nqp") > + (version "2018.12") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/perl6/nqp.git") > + (commit version))) > + (file-name (git-file-name name version)) This should be downloaded from here: https://rakudo.perl6.org/downloads/nqp/ > + (sha256 > + (base32 > + "1bwvyfyhirqi46p0j5m1ri98rxbfks8wc5amiaqwqyqq7x1l25xd")) > + (modules '((guix build utils))) > + (snippet > + '(begin > + (delete-file-recursively "3rdparty") #t)))) > + (build-system perl-build-system) > + (arguments > + '(#:phases > + (modify-phases %standard-phases > + (add-after 'patch-source-shebangs 'patch-more-shebangs > + (lambda _ > + (substitute* '("tools/build/install-jvm-runner.pl.in" > + "tools/build/gen-js-cross-runner.pl" > + "tools/build/gen-js-runner.pl" > + "tools/build/install-js-runner.pl" > + "tools/build/install-moar-runner.pl" > + "tools/build/gen-moar-runner.pl" > + "t/nqp/111-spawnprocasync.t" > + "t/nqp/113-run-command.t") > + (("/bin/sh") (which "sh"))) > + #t)) > + (add-after 'unpack 'patch-source-date > + (lambda _ > + (substitute* "tools/build/gen-version.pl" > + (("gmtime") "gmtime(0)")) > + #t)) > + (add-after 'unpack 'remove-failing-test > + ;; One subtest fails for unknown reasons can we delete/skip just the one subtest? > + (lambda _ > + (delete-file "t/nqp/019-file-ops.t") > + #t)) > + (replace 'configure > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (moar (assoc-ref inputs "moarvm"))) > + (invoke "perl" "Configure.pl" > + "--backends=3Dmoar" > + "--with-moar" (string-append moar "/bin/moar") > + "--prefix" out))))))) > + (inputs > + `(("moarvm" ,moarvm))) > + (home-page "https://github.com/perl6/nqp") > + (synopsis "Not Quite Perl") > + (description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like > +environment for virtual machines. The key feature of NQP is that it's d= esigned > +to be a very small environment (as compared with, say, perl6 or Rakudo) = and is > +focused on being a high-level way to create compilers and libraries for = virtual > +machines like MoarVM, the JVM, and others. > + > +Unlike a full-fledged implementation of Perl 6, NQP strives to have as s= mall a > +runtime footprint as it can, while still providing a Perl 6 object model= and > +regular expression engine for the virtual machine.") > + (license license:artistic2.0))) > --=20 > 2.21.0 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --C94crkcyjafcjHxo Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyQviQACgkQQarn3Mo9 g1EgtA//ThdGFEynpyVFO6KouTqyCbHVTek92Od20/WxkbbWyYhXX0XqSyuV5pkK HkDlJ9A2mJjtZNx9BNssGnQMSKkOtqe0hbUGheRA5wG/F+1iZ7tlLIISWRLDqUeb 8j+DgRXmE7SQF5bkYA7Z8He87nOgGAkEPdZqxFqTrab3xTUgTvMrP7IQXvUe5fwa 99iv2ep17wKUtkxtXsAv6uFIqdj5Wv76bqTjh8ZalNmHyQDU7VvAHLFlptn0ZK5C 00SzrQ/lU1d/qDHFA2xkX+Heyej7nUVtKyWEjCl3IYcw4PdDiH5hmdUz4EqSfqou FFMBPhVMVgI3d2KxWHLCBz0b6IX9uSyPQrIoD5MQFnsly1I2nh5YHYqMbLtlMePf yBwraLASk/+46H8H+cU+amhjrYE6RZ3QlTgpa1NYr0+cbpm6uexjkCnx6NbhN2YA N+Le/EscMYFthln0hc+1prh33e9mI6VMAM8mqt9X1NbZB2+lfEqqaaiUXoeVDBnu dJ6LXeOOxK6lhsmZXMDqliU7rnWyWLXe+actrc0HIiwaHpD893IBHdRlOypAQty3 BkZd+k+Tvsbb2Moybaydy73IWsBFaySTAtoBffL6+dojXiAnsmLtLM6Lj9LDwR+8 xDlEJSx3LLB6dYujWPxcHp6Ih/oaIqxY6P0E9OztBgukOW7AwCI= =XmQ5 -----END PGP SIGNATURE----- --C94crkcyjafcjHxo-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 19 06:04:27 2019 Received: (at 34831) by debbugs.gnu.org; 19 Mar 2019 10:04:27 +0000 Received: from localhost ([127.0.0.1]:49570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6BbZ-0003vD-G6 for submit@debbugs.gnu.org; Tue, 19 Mar 2019 06:04:27 -0400 Received: from flashner.co.il ([178.62.234.194]:42078) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6BbX-0003v0-Lt for 34831@debbugs.gnu.org; Tue, 19 Mar 2019 06:04:20 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 161894038A for <34831@debbugs.gnu.org>; Tue, 19 Mar 2019 10:04:14 +0000 (UTC) Date: Tue, 19 Mar 2019 12:04:13 +0200 From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: Re: [PATCH 03/25] gnu: Add rakudo. Message-ID: <20190319100413.GF1141@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> <20190312202014.31224-3-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="m1UC1K4AOz1Ywdkx" Content-Disposition: inline In-Reply-To: <20190312202014.31224-3-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --m1UC1K4AOz1Ywdkx Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2019 at 10:19:52PM +0200, Efraim Flashner wrote: > * gnu/packages/perl6.scm (rakudo): New variable. > --- > gnu/packages/perl6.scm | 70 +++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 69 insertions(+), 1 deletion(-) >=20 > diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm > index 344bb4efda..9659361309 100644 > --- a/gnu/packages/perl6.scm > +++ b/gnu/packages/perl6.scm > @@ -25,7 +25,8 @@ > #:use-module (gnu packages bdw-gc) > #:use-module (gnu packages libevent) > #:use-module (gnu packages libffi) > - #:use-module (gnu packages pkg-config)) > + #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages tls)) > =20 > (define-public moarvm > (package > @@ -159,3 +160,70 @@ Unlike a full-fledged implementation of Perl 6, NQP = strives to have as small a > runtime footprint as it can, while still providing a Perl 6 object model= and > regular expression engine for the virtual machine.") > (license license:artistic2.0))) > + > +(define-public rakudo > + (package > + (name "rakudo") > + (version "2018.12") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/rakudo/rakudo.git") > + (commit version))) > + (file-name (git-file-name name version)) This can also be downloaded from https://rakudo.perl6.org/downloads/rakudo/ > + (sha256 > + (base32 > + "1g8n1vmpi3g6qd0bj59lwgmcqdwlyg3nciyxbdnq7bw7qp12k0p4")))) > + (build-system perl-build-system) > + (arguments > + '(#:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'patch-source-date > + (lambda _ > + (substitute* "tools/build/gen-version.pl" > + (("gmtime") "gmtime(0)")) > + #t)) > + (add-after 'patch-source-shebangs 'patch-more-shebangs > + (lambda _ > + (substitute* '("tools/build/create-js-runner.pl" > + "tools/build/create-moar-runner.p6" > + "tools/build/create-jvm-runner.pl" > + "src/core/Proc.pm6") > + (("/bin/sh") (which "sh"))) > + #t)) > + (replace 'configure > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (nqp (assoc-ref inputs "nqp"))) > + (invoke "perl" "./Configure.pl" > + "--backend=3Dmoar" > + "--with-nqp" (string-append nqp "/bin/nqp") > + "--prefix" out)))) > + ;; This is the recommended tool to use for installing perl6 mod= ules as > + ;; a distribution. See: https://github.com/ugexe/zef/issues/117 "This is the recommended tool for distro maintainers to install perl6 modules systemwide" > + (add-after 'install 'install-dist-tool > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (dest (string-append out "/share/perl6/tools"))) > + (install-file "tools/install-dist.p6" dest) > + (substitute* (string-append dest "/install-dist.p6") > + (("/usr/bin/env perl6") > + (string-append out "/bin/perl6")))) Should we install the rest of the 'dist' folder and the 'resources' folder? > + #t))))) > + (inputs > + `(("moarvm" ,moarvm) > + ("nqp" ,nqp) > + ("openssl" ,openssl))) > + (home-page "https://rakudo.org/") > + (native-search-paths > + (list (search-path-specification > + (variable "PERL6LIB") > + (separator ",") > + (files '("share/perl6/lib" > + "share/perl6/site/lib" > + "share/perl6/vendor/lib"))))) > + (synopsis "Perl 6 Compiler") > + (description "Rakudo Perl is a compiler that implements the Perl 6 > +specification and runs on top of several virtual machines.") Can this be lengthened? > + (license license:artistic2.0))) > --=20 > 2.21.0 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --m1UC1K4AOz1Ywdkx Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyQvpwACgkQQarn3Mo9 g1G3nBAAnM6ik3WjgovwoAOM4b6AYSrKVvdfD5/xkZIpEOrtkcPb7qlPJO301/la Aq3kRNS8+XjMYvjrk69u7DeHkRPutfDPwftS9gOrRNeSkHwLwxN+8fF1cTAj/IGo vwDJsYiCdwJnOwWULbOUT8EkTBRgaeJot1R5YmevcLrqdaPt5PhN+HB8fIS54Us0 Ew5MUIr5UARJRara2itWr6dUSR9wmhYxYtY7X37KHUGBoJGDO24vqaeXwEMObnAU 3pNOcps60valoqQF6P7Vjv8Sipfoyjczz77vDgURJVdyI8F0nAtFUT8QAbySZq57 k09zndFFugMXj8We3Nlmmja0BJ6yEEpQmv67dftdPFmJwxWln0E0Eye47VenJQy/ iNOeodu/4oFqt7N1MVSnAK3ZfNCz5VsPdOqkDXnpK4WtTCF74E092r3LHCA7KExo XV/aO/uakbZMeTS0lL8VVUpDtXYqHk578Rs3xC8eSZO2tq/6w2l/ZmZklHr3ak1S RB9ftEK6NhwR1I8QCt4R8NZUKEuVHi/hQu0pCRxS9dzTPycrGBoZeZGS9DGg9nXd FfzQnf2KYExTsUepuUIznZXgjbCOxghUn7qIRo2RteD9v/stZcoJmQLQFtdLFv8m +5xPcqMwzAmBpDaIBkBiIRgC7Afh7GYZ7WNb2nBj5MBbFDpHDSM= =28/B -----END PGP SIGNATURE----- --m1UC1K4AOz1Ywdkx-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 19 06:05:59 2019 Received: (at 34831) by debbugs.gnu.org; 19 Mar 2019 10:05:59 +0000 Received: from localhost ([127.0.0.1]:49574 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bd1-0003xb-Pm for submit@debbugs.gnu.org; Tue, 19 Mar 2019 06:05:58 -0400 Received: from flashner.co.il ([178.62.234.194]:42088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bcy-0003xL-Vd for 34831@debbugs.gnu.org; Tue, 19 Mar 2019 06:05:50 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 675D0400C8 for <34831@debbugs.gnu.org>; Tue, 19 Mar 2019 10:05:43 +0000 (UTC) Date: Tue, 19 Mar 2019 12:05:42 +0200 From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: Re: [PATCH 01/25] gnu: Add moarvm. Message-ID: <20190319100542.GG1141@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> <20190312202014.31224-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="GdbWtwDHkcXqP16f" Content-Disposition: inline In-Reply-To: <20190312202014.31224-1-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --GdbWtwDHkcXqP16f Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2019 at 10:19:50PM +0200, Efraim Flashner wrote: > * gnu/packages/perl6.scm (moarvm): New variable. > --- > gnu/local.mk | 3 +- > gnu/packages/perl6.scm | 93 ++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 95 insertions(+), 1 deletion(-) > create mode 100644 gnu/packages/perl6.scm >=20 > diff --git a/gnu/local.mk b/gnu/local.mk > index af2bf87273..79b93d5966 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -10,7 +10,7 @@ > # Copyright =C2=A9 2016, 2017, 2018, 2019 Ricardo Wurmus > # Copyright =C2=A9 2016 Ben Woodcroft > # Copyright =C2=A9 2016, 2017, 2018, 2019 Alex Vong > -# Copyright =C2=A9 2016, 2017 Efraim Flashner > +# Copyright =C2=A9 2016, 2017, 2018, 2019 Efraim Flashner > # Copyright =C2=A9 2016, 2017 Jan Nieuwenhuizen > # Copyright =C2=A9 2017, 2018, 2019 Tobias Geerinckx-Rice > # Copyright =C2=A9 2017, 2018 Cl=C3=A9ment Lassieur > @@ -364,6 +364,7 @@ GNU_SYSTEM_MODULES =3D \ > %D%/packages/perl-check.scm \ > %D%/packages/perl-compression.scm \ > %D%/packages/perl-web.scm \ > + %D%/packages/perl6.scm \ > %D%/packages/photo.scm \ > %D%/packages/phabricator.scm \ > %D%/packages/php.scm \ > diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm > new file mode 100644 > index 0000000000..7e92c865aa > --- /dev/null > +++ b/gnu/packages/perl6.scm > @@ -0,0 +1,93 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2019 Efraim Flashner > +;;; > +;;; 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 . > + > +(define-module (gnu packages perl6) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix download) > + #:use-module (guix packages) > + #:use-module (guix build-system perl) > + #:use-module (gnu packages bdw-gc) > + #:use-module (gnu packages libevent) > + #:use-module (gnu packages libffi) > + #:use-module (gnu packages pkg-config)) > + > +(define-public moarvm > + (package > + (name "moarvm") > + (version "2018.12") Can this be upgraded to 2019.03? I saw rakudo has a 2019.03.1 release which might fix issues discovered previously when using 2019.03 > + (source > + (origin > + (method url-fetch) > + (uri (string-append "https://moarvm.org/releases/MoarVM-" > + version ".tar.gz")) > + (sha256 > + (base32 > + "0fv98712k1gk56a612388db1azjsyabsbygav1pa3z2kd6js4cz4")) > + (modules '((guix build utils))) > + (snippet > + '(begin > + ;(delete-file-recursively "3rdparty/dynasm") ; JIT > + (delete-file-recursively "3rdparty/dyncall") > + (delete-file-recursively "3rdparty/freebsd") > + (delete-file-recursively "3rdparty/libatomicops") > + (delete-file-recursively "3rdparty/libuv") > + ;(delete-file-recursively "3rdparty/libtommath") v1.0 Perhaps libtommath-1.0 should be packaged also and used > + (delete-file-recursively "3rdparty/msinttypes") > + #t)))) > + (build-system perl-build-system) > + (arguments > + '(#:phases > + (modify-phases %standard-phases > + (replace 'configure > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (pkg-config (assoc-ref inputs "pkg-config"))) > + (setenv "LDFLAGS" (string-append "-Wl,-rpath=3D" out "/li= b")) > + (invoke "perl" "Configure.pl" > + "--prefix" out > + "--pkgconfig" (string-append pkg-config "/bin/pkg= -config") > + "--has-libatomic_ops" > + "--has-libffi" > + "--has-libuv"))))))) > + (home-page "https://moarvm.org/") > + ;; These should be inputs but moar.h can't find them when building r= akudo > + (propagated-inputs > + `(("libatomic-ops" ,libatomic-ops) > + ("libuv" ,libuv))) > + (inputs > + `(("libffi" ,libffi))) > + (native-inputs > + `(("pkg-config" ,pkg-config))) > + (synopsis "VM for NQP And Rakudo Perl 6") > + (description > + "Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual m= achine > +built for the Rakudo Perl 6 compiler and the NQP Compiler Toolchain. Hi= ghlights > +include: > + > +@itemize > +@item Great Unicode support, with strings represented at grapheme level > +@item Dynamic analysis of running code to identify hot functions and loo= ps, and > +perform a range of optimizations, including type specialization and inli= ning > +@item Support for threads, a range of concurrency control constructs, and > +asynchronous sockets, timers, processes, and more > +@item Generational, parallel, garbage collection > +@item Support for numerous language features, including first class func= tions, > +exceptions, continuations, runtime loading of code, big integers and int= erfacing > +with native libraries. > +@end itemize") > + (license license:artistic2.0))) > --=20 > 2.21.0 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --GdbWtwDHkcXqP16f Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyQvvYACgkQQarn3Mo9 g1H17w//UqEmSlUXO2eH3nC0QT1KFct2u7p5UevnOe3Lu0Zl+SnVUzKYCfnS2hB6 F9L+xZu5rP7XoUGFW54Ap7qh0azKhQnjaRtm5/gvdpeFa4dbtuVRe+kPS1BlDjKW IrFQxouvHS/b30O4G+3abcuvM6SN7CUD3gXaZp0SWx5AogAuaEr/HGG3FwFsgbvc J98eyd5PROqS80g9bFHEWeBifOuhLK5zfmS1j+AXS/ghMiuOs9IyD50703fY/Izw 84IbdlzFKIBNURLHTEVeZygf7wQ5Od0SmER5bHcMTX69wc0pHPpmrw+HvbjYQLaV DSoQWNqi8Fa6RIInoMJut/uYvtjWSQr4kI7YWmZKaT7kBy9KMNtLh5owrETTyVPT 43JrgexJTSsQoPFvpHAgkkCEG+Y2wuEcfH5hHtKrITG1vntnbfe+FIvnubz+Gb+z +7yzlc7AL09auAP6URsDFkAGFKAxUTty8Nq2uy3XThGp8D5G/8lhTP9rsq3SMOLL iW5rQ3QuNPZjSsYo1vgJo0bDiu7TbiXS1L3Ja7Si6ctLIrGH02tM63vVkAgBqJwo G9AeRbchSDws8ChAMQqiWUFz+rltD3Ks9VAE0h0xnyPL16CmACkQ+hH2WQR7tOD5 Vd0HNM3PGp2WplUkvwmYsEnXA+TBYl8ZsicfL7uVcVdxDnLajjY= =QS5r -----END PGP SIGNATURE----- --GdbWtwDHkcXqP16f-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 19 06:14:10 2019 Received: (at 34831) by debbugs.gnu.org; 19 Mar 2019 10:14:10 +0000 Received: from localhost ([127.0.0.1]:49587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bl0-0004Ao-3Q for submit@debbugs.gnu.org; Tue, 19 Mar 2019 06:14:10 -0400 Received: from flashner.co.il ([178.62.234.194]:42112) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bkx-0004A9-I2 for 34831@debbugs.gnu.org; Tue, 19 Mar 2019 06:14:04 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 76B36400C8 for <34831@debbugs.gnu.org>; Tue, 19 Mar 2019 10:13:57 +0000 (UTC) Date: Tue, 19 Mar 2019 12:13:56 +0200 From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: Re: [PATCH 04/25] build: Add rakudo-build-system. Message-ID: <20190319101356.GH1141@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> <20190312202014.31224-4-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="o71xDhNo7p97+qVi" Content-Disposition: inline In-Reply-To: <20190312202014.31224-4-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --o71xDhNo7p97+qVi Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2019 at 10:19:53PM +0200, Efraim Flashner wrote: > * guix/build-system/rakudo.scm, > guix/build/rakudo-build-system.scm: New files. > * Makefile.am (MODULES): Add them. > * doc/guix.texi (Build System): Document it. > --- > Makefile.am | 3 + > doc/guix.texi | 20 +++- > guix/build-system/rakudo.scm | 155 +++++++++++++++++++++++++++++ > guix/build/rakudo-build-system.scm | 140 ++++++++++++++++++++++++++ > 4 files changed, 317 insertions(+), 1 deletion(-) > create mode 100644 guix/build-system/rakudo.scm > create mode 100644 guix/build/rakudo-build-system.scm >=20 > diff --git a/Makefile.am b/Makefile.am > index cf35770ba7..c3d2525af3 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -13,6 +13,7 @@ > # Copyright =C2=A9 2018 Julien Lepiller > # Copyright =C2=A9 2018 Oleg Pykhalov > # Copyright =C2=A9 2018 Alex Vong > +# Copyright =C2=A9 2019 Efraim Flashner > # > # This file is part of GNU Guix. > # > @@ -124,6 +125,7 @@ MODULES =3D \ > guix/build-system/ocaml.scm \ > guix/build-system/waf.scm \ > guix/build-system/r.scm \ > + guix/build-system/rakudo.scm \ > guix/build-system/ruby.scm \ > guix/build-system/scons.scm \ > guix/build-system/texlive.scm \ > @@ -164,6 +166,7 @@ MODULES =3D \ > guix/build/python-build-system.scm \ > guix/build/ocaml-build-system.scm \ > guix/build/r-build-system.scm \ > + guix/build/rakudo-build-system.scm \ > guix/build/ruby-build-system.scm \ > guix/build/scons-build-system.scm \ > guix/build/texlive-build-system.scm \ > diff --git a/doc/guix.texi b/doc/guix.texi > index 82cf2babb2..5937c86dad 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -28,7 +28,7 @@ Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* > Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* > Copyright @copyright{} 2016 Ben Woodcroft@* > Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* > -Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* > +Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* > Copyright @copyright{} 2016 John Darrington@* > Copyright @copyright{} 2016, 2017 Nils Gillmann@* > Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* > @@ -5893,6 +5893,24 @@ are run after installation using the R function > @code{tools::testInstalledPackage}. > @end defvr > =20 > +@defvr {Scheme Variable} rakudo-build-system > +This variable is exported by @code{(guix build-system rakudo)} It > +implements the build procedure used by @uref{https://rakudo.org/, > +Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the > +package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and > +installs the binaries, library files and the resources, as well as wrap > +the files under the @code{bin/} directory. Tests can be skipped by extra space here ---^ > +passing @code{#f} to the @code{tests?} parameter. > + > +Which rakudo package is used can be specified with @code{rakudo}. > +Which perl6-tap-harness package used for the tests can be specified with > +@code{#:prove6} or removed by passing @code{#f} to the > +@code{with-prove6?} parameter. > +Which perl6-zef package used for tests and installing can be specified > +with @code{#:zef} or removed by passing @code{#f} to the > +@code{with-zef?} parameter. > +@end defvr > + > @defvr {Scheme Variable} texlive-build-system > This variable is exported by @code{(guix build-system texlive)}. It is > used to build TeX packages in batch mode with a specified engine. The > diff --git a/guix/build-system/rakudo.scm b/guix/build-system/rakudo.scm > new file mode 100644 > index 0000000000..fd469f0bb5 > --- /dev/null > +++ b/guix/build-system/rakudo.scm > @@ -0,0 +1,155 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2019 Efraim Flashner > +;;; > +;;; 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 . > + > +(define-module (guix build-system rakudo) > + #:use-module (guix store) > + #:use-module (guix utils) > + #:use-module (guix derivations) > + #:use-module (guix search-paths) > + #:use-module (guix build-system) > + #:use-module (guix build-system gnu) > + #:use-module (guix packages) > + #:use-module (ice-9 match) > + #:export (%rakudo-build-system-modules > + rakudo-build > + rakudo-build-system)) > + > +;; Commentary: > +;; > +;; Standard build and install procedure for packages using the Rakudo > +;; build system to be installed as system libraries. This is > +;; implemented as an extension of `gnu-build-system'. > +;; > +;; Code: > + > +(define %rakudo-build-system-modules > + ;; Build-side modules imported by default. > + `((guix build rakudo-build-system) > + ,@%gnu-build-system-modules)) > + > +(define (default-rakudo) > + "Return the default Rakudo package." > + > + ;; Do not use `@' to avoid introducing circular dependencies. > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'rakudo))) > + > +(define (default-prove6) > + "Return the default perl6-tap-harness package for tests." > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'perl6-tap-harness))) > + > +(define (default-zef) > + "Return the default perl6-zef package." > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'perl6-zef))) > + > +(define* (lower name > + #:key source inputs native-inputs outputs > + system target > + (rakudo (default-rakudo)) > + (prove6 (default-prove6)) > + (zef (default-zef)) > + (with-prove6? #t) > + (with-zef? #t) > + #:allow-other-keys > + #:rest arguments) > + "Return a bag for NAME." > + (define private-keywords > + '(#:source #:target #:rakudo #:prove6 #:zef #:inputs #:native-inputs= )) > + > + (and (not target) ;XXX: no cross-compila= tion > + (bag > + (name name) > + (system system) > + (host-inputs `(,@(if source > + `(("source" ,source)) > + '()) > + ,@inputs > + > + ;; Keep the standard inputs of 'gnu-build-system= '. > + ,@(standard-packages))) > + (build-inputs `(("rakudo" ,rakudo) > + ,@(if with-prove6? > + `(("perl6-tap-harness" ,prove6)) > + '()) > + ,@(if with-zef? > + `(("perl6-zef" ,zef)) > + '()) perl6-zef depends on perl6-tap-harness, so this check could be wrapped inside the 'with-prove6?' check > + ,@native-inputs)) > + (outputs outputs) > + (build rakudo-build) > + (arguments (strip-keyword-arguments private-keywords arguments)= )))) > + > +(define* (rakudo-build store name inputs > + #:key > + (search-paths '()) > + (tests? #t) > + (phases '(@ (guix build rakudo-build-system) > + %standard-phases)) > + (outputs '("out")) > + (system (%current-system)) > + (guile #f) > + (with-zef? #t) > + (with-prove6? #t) > + (imported-modules %rakudo-build-system-modules) > + (modules '((guix build rakudo-build-system) > + (guix build utils)))) > + "Build SOURCE using PERL6, and with INPUTS." > + (define builder > + `(begin > + (use-modules ,@modules) > + (rakudo-build #:name ,name > + #:source ,(match (assoc-ref inputs "source") > + (((? derivation? source)) > + (derivation->output-path source)) > + ((source) > + source) > + (source > + source)) > + #:search-paths ',(map search-path-specification->se= xp > + search-paths) > + #:phases ,phases > + #:system ,system > + #:tests? ,tests? > + #:outputs %outputs > + #:inputs %build-inputs))) > + > + (define guile-for-build > + (match guile > + ((? package?) > + (package-derivation store guile system #:graft? #f)) > + (#f ; the default > + (let* ((distro (resolve-interface '(gnu packages commencement))) > + (guile (module-ref distro 'guile-final))) > + (package-derivation store guile system #:graft? #f))))) > + > + (build-expression->derivation store name builder > + #:system system > + #:inputs inputs > + #:modules imported-modules > + #:outputs outputs > + #:guile-for-build guile-for-build)) > + > +(define rakudo-build-system > + (build-system > + (name 'rakudo) > + (description "The standard Rakudo build system") > + (lower lower))) > + > +;;; rakudo.scm ends here > diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build= -system.scm > new file mode 100644 > index 0000000000..bfdefa3c4e > --- /dev/null > +++ b/guix/build/rakudo-build-system.scm > @@ -0,0 +1,140 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2019 Efraim Flashner > +;;; > +;;; 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 . > + > +(define-module (guix build rakudo-build-system) > + #:use-module ((guix build gnu-build-system) #:prefix gnu:) > + #:use-module (guix build utils) > + #:use-module (ice-9 ftw) > + #:use-module (ice-9 match) > + #:use-module (srfi srfi-1) > + #:use-module (srfi srfi-26) > + #:export (%standard-phases > + rakudo-build)) > + > +;; Commentary: > +;; > +;; Builder-side code of the standard Rakudo package build procedure. > +;; > +;; Code: > + > +(define* (check #:key tests? inputs with-prove6? #:allow-other-keys) > + (if (and tests? (assoc-ref inputs "perl6-tap-harness")) > + ;(if (and tests? with-prove6?) This might work the same in practice, but it should be fixed IMO > + (invoke "prove6" "-I=3Dlib" "t/") > + (format #t "test suite not run~%")) > + #t) > + > +(define* (install #:key inputs outputs with-zef? #:allow-other-keys) > + "Install a given Perl6 package." > + (let* ((out (assoc-ref outputs "out")) > + (perl6 (string-append out "/share/perl6"))) > + (if (assoc-ref inputs "perl6-zef") > + ;(if with-zef? same as above > + (begin > + (let ((zef (string-append (assoc-ref inputs "perl6-zef") > + "/bin/zef"))) > + (setenv "HOME" (getcwd)) > + (mkdir-p perl6) > + (invoke zef "install" "--verbose" "." > + ;; Don't install any of the following: > + "--/depends" "--/build-depends" "--/test-depends" > + (string-append "--install-to=3D" perl6)) > + (delete-file (string-append perl6 "/repo.lock"))) > + #t) > + (begin > + (let ((inst (string-append (assoc-ref inputs "rakudo") > + "/share/perl6/tools/install-dist.p6= "))) > + (setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0") > + (setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while buildi= ng > + (invoke inst (string-append "--to=3D" perl6) "--for=3Dsite")= ))))) > + > +(define* (install-libs #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (lock "lib/.precomp/.lock")) > + (when (file-exists? lock) > + (delete-file "lib/.precomp/.lock")) > + (copy-recursively "lib" (string-append out "/share/perl6/lib")) > + #t)) > + > +(define* (install-bins #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (when (file-exists? "bin") > + (for-each (lambda (file) > + (install-file file (string-append out "/bin")) > + (chmod (string-append out "/" file) #o555)) > + (find-files "bin" ".*"))) > + #t)) Both 'bin' and 'sbin' are wrapped in the 'wrap phase (see below) but only the bin directory is installed. IMO both should be done. > + > +(define* (install-resources #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (when (file-exists? "resources") > + (copy-recursively "resources" > + (string-append out "/share/perl6/resources"))) > + #t)) > + > +(define* (wrap #:key inputs outputs #:allow-other-keys) > + (define (list-of-files dir) > + (map (cut string-append dir "/" <>) > + (or (scandir dir (lambda (f) > + (let ((s (stat (string-append dir "/" f)))) > + (eq? 'regular (stat:type s))))) > + '()))) > + > + (define bindirs > + (append-map (match-lambda > + ((_ . dir) > + (list (string-append dir "/bin") > + (string-append dir "/sbin")))) > + outputs)) > + > + (let* ((out (assoc-ref outputs "out")) > + (var `("PERL6LIB" "," prefix > + ,(cons (string-append out "/share/perl6/lib," > + out "/share/perl6/site/lib," > + out "/share/perl6/vendor/lib") > + (search-path-as-string->list > + (or (getenv "PERL6LIB") "") #\,))))) > + (for-each (lambda (dir) > + (let ((files (list-of-files dir))) > + (for-each (cut wrap-program <> var) > + files))) > + bindirs) > + #t)) > + > +(define %standard-phases > + ;; No need for 'bootstrap, 'configure or 'build. > + (modify-phases gnu:%standard-phases > + (delete 'bootstrap) > + (delete 'configure) > + (delete 'build) > + (replace 'check check) > + (replace 'install install) > + (add-before 'install 'install-lib-dir install-libs) > + (add-after 'install-lib-dir 'install-resources install-resources) > + (add-after 'install-resources 'install-binaries install-bins) > + ;; needs to be after 'install-binaries and all 'install phases > + (add-after 'install 'wrap wrap))) > + > +(define* (rakudo-build #:key inputs (phases %standard-phases) > + #:allow-other-keys #:rest args) > + "Build the given Perl6 package, applying all of PHASES in order." > + (apply gnu:gnu-build > + #:inputs inputs #:phases phases > + args)) > + > +;;; rakudo-build-system.scm ends here > --=20 > 2.21.0 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --o71xDhNo7p97+qVi Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyQwOQACgkQQarn3Mo9 g1GRJRAAoNjy3nUAoqz8q7NhtIsXmRXx/lVQesJ8vnBba6hNq5myxSZ4vwuPd6Up HaT0WnUzwtLyNICEfMK9HLtAMSFl+X3kAXVJClKnd911+rWbfVr6adMLWTnmDRhS 2bWr8QMFKvmi++TaKrtoo+JJoQLzUh3Fc3NqcIluXF4FK0C1c1mWiIXQIdMrlsRG sKfX6Wqn8ho4Q33yHf/J43Is6jEFULVgsyOH+RdZSTBzFDFC2wxcP//51jMR8fQv mzwLOAhQbcatsclhiubWiLgFXtWbbOHg2Rove2DCKe0tmUtjbmMDiO3t/IWLe9gc V7svx9OJEEqPsrbhHe04SQmkfZwTtuPrpciMYg6eNkrGV2tC3Jv8VBh/Kf7IvApL 6yZYlzCkjeogOVkNBdzAJZkRrfwCKretMv4tRsPv1Bz3s4rhtUAgtQMLaJ4lGIUQ yzwpHUyJ/GIiGczAFrlZXGvq9Bz4GVh8PP1gnXf/hATOMOBz6x/wH071kTTkHdEb FYef8uD6yQMnlCibRu/uNBui45LzIa0+TUWJ51KCNNoT2yDIjtw2aMSW8fuXWSx1 sKI7ZVyfjlErv6iNBLqycMLqWaQbTxCpSNstlIgW1QWTvEUyFnttC+9v+eLgGo/O n2BLg3My3Hf/NcXY53cBT6XSbtjUJ/HokP9JptN0gKeHTbE5/Bw= =7fVj -----END PGP SIGNATURE----- --o71xDhNo7p97+qVi-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 19 06:16:03 2019 Received: (at 34831) by debbugs.gnu.org; 19 Mar 2019 10:16:03 +0000 Received: from localhost ([127.0.0.1]:49591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bmp-0004Dt-1p for submit@debbugs.gnu.org; Tue, 19 Mar 2019 06:16:03 -0400 Received: from flashner.co.il ([178.62.234.194]:42124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Bmm-0004Df-6q for 34831@debbugs.gnu.org; Tue, 19 Mar 2019 06:15:57 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 79C114038A for <34831@debbugs.gnu.org>; Tue, 19 Mar 2019 10:15:50 +0000 (UTC) Date: Tue, 19 Mar 2019 12:15:49 +0200 From: Efraim Flashner To: 34831@debbugs.gnu.org Subject: Re: [PATCH 04/25] build: Add rakudo-build-system. Message-ID: <20190319101549.GI1141@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> <20190312202014.31224-4-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="yzvKDKJiLNESc64M" Content-Disposition: inline In-Reply-To: <20190312202014.31224-4-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --yzvKDKJiLNESc64M Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2019 at 10:19:53PM +0200, Efraim Flashner wrote: > * guix/build-system/rakudo.scm, > guix/build/rakudo-build-system.scm: New files. > * Makefile.am (MODULES): Add them. > * doc/guix.texi (Build System): Document it. > --- > Makefile.am | 3 + > doc/guix.texi | 20 +++- > guix/build-system/rakudo.scm | 155 +++++++++++++++++++++++++++++ > guix/build/rakudo-build-system.scm | 140 ++++++++++++++++++++++++++ > 4 files changed, 317 insertions(+), 1 deletion(-) > create mode 100644 guix/build-system/rakudo.scm > create mode 100644 guix/build/rakudo-build-system.scm >=20 > diff --git a/Makefile.am b/Makefile.am > index cf35770ba7..c3d2525af3 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -13,6 +13,7 @@ > # Copyright =C2=A9 2018 Julien Lepiller > # Copyright =C2=A9 2018 Oleg Pykhalov > # Copyright =C2=A9 2018 Alex Vong > +# Copyright =C2=A9 2019 Efraim Flashner > # > # This file is part of GNU Guix. > # > @@ -124,6 +125,7 @@ MODULES =3D \ > guix/build-system/ocaml.scm \ > guix/build-system/waf.scm \ > guix/build-system/r.scm \ > + guix/build-system/rakudo.scm \ > guix/build-system/ruby.scm \ > guix/build-system/scons.scm \ > guix/build-system/texlive.scm \ > @@ -164,6 +166,7 @@ MODULES =3D \ > guix/build/python-build-system.scm \ > guix/build/ocaml-build-system.scm \ > guix/build/r-build-system.scm \ > + guix/build/rakudo-build-system.scm \ > guix/build/ruby-build-system.scm \ > guix/build/scons-build-system.scm \ > guix/build/texlive-build-system.scm \ > diff --git a/doc/guix.texi b/doc/guix.texi > index 82cf2babb2..5937c86dad 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -28,7 +28,7 @@ Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* > Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* > Copyright @copyright{} 2016 Ben Woodcroft@* > Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* > -Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* > +Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* > Copyright @copyright{} 2016 John Darrington@* > Copyright @copyright{} 2016, 2017 Nils Gillmann@* > Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* > @@ -5893,6 +5893,24 @@ are run after installation using the R function > @code{tools::testInstalledPackage}. > @end defvr > =20 > +@defvr {Scheme Variable} rakudo-build-system > +This variable is exported by @code{(guix build-system rakudo)} It > +implements the build procedure used by @uref{https://rakudo.org/, > +Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the > +package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and > +installs the binaries, library files and the resources, as well as wrap > +the files under the @code{bin/} directory. Tests can be skipped by > +passing @code{#f} to the @code{tests?} parameter. > + > +Which rakudo package is used can be specified with @code{rakudo}. > +Which perl6-tap-harness package used for the tests can be specified with > +@code{#:prove6} or removed by passing @code{#f} to the > +@code{with-prove6?} parameter. > +Which perl6-zef package used for tests and installing can be specified > +with @code{#:zef} or removed by passing @code{#f} to the > +@code{with-zef?} parameter. > +@end defvr > + > @defvr {Scheme Variable} texlive-build-system > This variable is exported by @code{(guix build-system texlive)}. It is > used to build TeX packages in batch mode with a specified engine. The > diff --git a/guix/build-system/rakudo.scm b/guix/build-system/rakudo.scm > new file mode 100644 > index 0000000000..fd469f0bb5 > --- /dev/null > +++ b/guix/build-system/rakudo.scm > @@ -0,0 +1,155 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2019 Efraim Flashner > +;;; > +;;; 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 . > + > +(define-module (guix build-system rakudo) > + #:use-module (guix store) > + #:use-module (guix utils) > + #:use-module (guix derivations) > + #:use-module (guix search-paths) > + #:use-module (guix build-system) > + #:use-module (guix build-system gnu) > + #:use-module (guix packages) > + #:use-module (ice-9 match) > + #:export (%rakudo-build-system-modules > + rakudo-build > + rakudo-build-system)) > + > +;; Commentary: > +;; > +;; Standard build and install procedure for packages using the Rakudo > +;; build system to be installed as system libraries. This is > +;; implemented as an extension of `gnu-build-system'. > +;; > +;; Code: > + > +(define %rakudo-build-system-modules > + ;; Build-side modules imported by default. > + `((guix build rakudo-build-system) > + ,@%gnu-build-system-modules)) > + > +(define (default-rakudo) > + "Return the default Rakudo package." > + > + ;; Do not use `@' to avoid introducing circular dependencies. > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'rakudo))) > + > +(define (default-prove6) > + "Return the default perl6-tap-harness package for tests." > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'perl6-tap-harness))) > + > +(define (default-zef) > + "Return the default perl6-zef package." > + (let ((module (resolve-interface '(gnu packages perl6)))) > + (module-ref module 'perl6-zef))) > + > +(define* (lower name > + #:key source inputs native-inputs outputs > + system target > + (rakudo (default-rakudo)) > + (prove6 (default-prove6)) > + (zef (default-zef)) > + (with-prove6? #t) > + (with-zef? #t) > + #:allow-other-keys > + #:rest arguments) > + "Return a bag for NAME." > + (define private-keywords > + '(#:source #:target #:rakudo #:prove6 #:zef #:inputs #:native-inputs= )) > + > + (and (not target) ;XXX: no cross-compila= tion > + (bag > + (name name) > + (system system) > + (host-inputs `(,@(if source > + `(("source" ,source)) > + '()) > + ,@inputs > + > + ;; Keep the standard inputs of 'gnu-build-system= '. > + ,@(standard-packages))) > + (build-inputs `(("rakudo" ,rakudo) > + ,@(if with-prove6? > + `(("perl6-tap-harness" ,prove6)) > + '()) > + ,@(if with-zef? > + `(("perl6-zef" ,zef)) > + '()) > + ,@native-inputs)) > + (outputs outputs) > + (build rakudo-build) > + (arguments (strip-keyword-arguments private-keywords arguments)= )))) > + > +(define* (rakudo-build store name inputs > + #:key > + (search-paths '()) > + (tests? #t) > + (phases '(@ (guix build rakudo-build-system) > + %standard-phases)) > + (outputs '("out")) > + (system (%current-system)) > + (guile #f) > + (with-zef? #t) > + (with-prove6? #t) > + (imported-modules %rakudo-build-system-modules) > + (modules '((guix build rakudo-build-system) > + (guix build utils)))) > + "Build SOURCE using PERL6, and with INPUTS." > + (define builder > + `(begin > + (use-modules ,@modules) > + (rakudo-build #:name ,name > + #:source ,(match (assoc-ref inputs "source") > + (((? derivation? source)) > + (derivation->output-path source)) > + ((source) > + source) > + (source > + source)) > + #:search-paths ',(map search-path-specification->se= xp > + search-paths) > + #:phases ,phases > + #:system ,system > + #:tests? ,tests? > + #:outputs %outputs > + #:inputs %build-inputs))) > + > + (define guile-for-build > + (match guile > + ((? package?) > + (package-derivation store guile system #:graft? #f)) > + (#f ; the default > + (let* ((distro (resolve-interface '(gnu packages commencement))) > + (guile (module-ref distro 'guile-final))) > + (package-derivation store guile system #:graft? #f))))) > + > + (build-expression->derivation store name builder > + #:system system > + #:inputs inputs > + #:modules imported-modules > + #:outputs outputs > + #:guile-for-build guile-for-build)) > + > +(define rakudo-build-system > + (build-system > + (name 'rakudo) > + (description "The standard Rakudo build system") > + (lower lower))) > + > +;;; rakudo.scm ends here > diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build= -system.scm > new file mode 100644 > index 0000000000..bfdefa3c4e > --- /dev/null > +++ b/guix/build/rakudo-build-system.scm > @@ -0,0 +1,140 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2019 Efraim Flashner > +;;; > +;;; 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 . > + > +(define-module (guix build rakudo-build-system) > + #:use-module ((guix build gnu-build-system) #:prefix gnu:) > + #:use-module (guix build utils) > + #:use-module (ice-9 ftw) > + #:use-module (ice-9 match) > + #:use-module (srfi srfi-1) > + #:use-module (srfi srfi-26) > + #:export (%standard-phases > + rakudo-build)) > + > +;; Commentary: > +;; > +;; Builder-side code of the standard Rakudo package build procedure. > +;; > +;; Code: > + > +(define* (check #:key tests? inputs with-prove6? #:allow-other-keys) > + (if (and tests? (assoc-ref inputs "perl6-tap-harness")) > + ;(if (and tests? with-prove6?) > + (invoke "prove6" "-I=3Dlib" "t/") Can we have a default set of tests even if perl6-tap-harness isn't available? > + (format #t "test suite not run~%")) > + #t) > + > +(define* (install #:key inputs outputs with-zef? #:allow-other-keys) > + "Install a given Perl6 package." > + (let* ((out (assoc-ref outputs "out")) > + (perl6 (string-append out "/share/perl6"))) > + (if (assoc-ref inputs "perl6-zef") > + ;(if with-zef? > + (begin > + (let ((zef (string-append (assoc-ref inputs "perl6-zef") > + "/bin/zef"))) > + (setenv "HOME" (getcwd)) > + (mkdir-p perl6) > + (invoke zef "install" "--verbose" "." > + ;; Don't install any of the following: > + "--/depends" "--/build-depends" "--/test-depends" > + (string-append "--install-to=3D" perl6)) > + (delete-file (string-append perl6 "/repo.lock"))) > + #t) > + (begin > + (let ((inst (string-append (assoc-ref inputs "rakudo") > + "/share/perl6/tools/install-dist.p6= "))) > + (setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0") > + (setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while buildi= ng > + (invoke inst (string-append "--to=3D" perl6) "--for=3Dsite")= ))))) > + > +(define* (install-libs #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (lock "lib/.precomp/.lock")) > + (when (file-exists? lock) > + (delete-file "lib/.precomp/.lock")) > + (copy-recursively "lib" (string-append out "/share/perl6/lib")) > + #t)) > + > +(define* (install-bins #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (when (file-exists? "bin") > + (for-each (lambda (file) > + (install-file file (string-append out "/bin")) > + (chmod (string-append out "/" file) #o555)) > + (find-files "bin" ".*"))) > + #t)) > + > +(define* (install-resources #:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (when (file-exists? "resources") > + (copy-recursively "resources" > + (string-append out "/share/perl6/resources"))) > + #t)) > + > +(define* (wrap #:key inputs outputs #:allow-other-keys) > + (define (list-of-files dir) > + (map (cut string-append dir "/" <>) > + (or (scandir dir (lambda (f) > + (let ((s (stat (string-append dir "/" f)))) > + (eq? 'regular (stat:type s))))) > + '()))) > + > + (define bindirs > + (append-map (match-lambda > + ((_ . dir) > + (list (string-append dir "/bin") > + (string-append dir "/sbin")))) > + outputs)) > + > + (let* ((out (assoc-ref outputs "out")) > + (var `("PERL6LIB" "," prefix > + ,(cons (string-append out "/share/perl6/lib," > + out "/share/perl6/site/lib," > + out "/share/perl6/vendor/lib") > + (search-path-as-string->list > + (or (getenv "PERL6LIB") "") #\,))))) > + (for-each (lambda (dir) > + (let ((files (list-of-files dir))) > + (for-each (cut wrap-program <> var) > + files))) > + bindirs) > + #t)) > + > +(define %standard-phases > + ;; No need for 'bootstrap, 'configure or 'build. > + (modify-phases gnu:%standard-phases > + (delete 'bootstrap) > + (delete 'configure) > + (delete 'build) > + (replace 'check check) > + (replace 'install install) > + (add-before 'install 'install-lib-dir install-libs) > + (add-after 'install-lib-dir 'install-resources install-resources) > + (add-after 'install-resources 'install-binaries install-bins) > + ;; needs to be after 'install-binaries and all 'install phases > + (add-after 'install 'wrap wrap))) > + > +(define* (rakudo-build #:key inputs (phases %standard-phases) > + #:allow-other-keys #:rest args) > + "Build the given Perl6 package, applying all of PHASES in order." > + (apply gnu:gnu-build > + #:inputs inputs #:phases phases > + args)) > + > +;;; rakudo-build-system.scm ends here > --=20 > 2.21.0 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --yzvKDKJiLNESc64M Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyQwVUACgkQQarn3Mo9 g1E2SxAAmGdqg5CaJCoNwkCjsNoafnVJ2j0FU/IuVUDV9mr/Sy3EHI7t75VDKrLK kw1woyS5d9drK5XZc831D8MJDEi6u3AlcxYG4EOHYt8LrYNYbczIu664yO7gFwFD f8Oie0+Ba37tPKMwSeKTTSbO9b229nHydfYxnT1HwV6Xpc3jBFgrph1q3PN7g1N1 nV+iwQ1Dba1BObB0ksKYPllhgCbjcwzFxoeWcdOmtwozhMbCQ4WQIZODsbkSONFp arv+ZNMBuTukkhIlpB5S7YbVUerCviaJ3Jj9Pc5Xj4lpShZvbjdtEzGqiRsKilXs 6lFGtaCePVr1o66nCEtykqqDURw0yNIO+yI2AoXcBb9WGH02uerWF5DpHoVeMkKv guJZ0nS3jERq15Zg8t85zGA5cr+RLaa3+9WhlnfEoew4AOgAr62uImY/ibbXikNI qM/5u4u3VfBuwD7DVBsBgDczpuKuS5aKirDEWYa9t4SkXZUOHWPMChsFXeDV4UXO /5x5KhmIw0ULwXkmPtHjKbX+QzOZYvaAFN0Q8mwYU9VfFE1/PdN5yxB42OHPzKps kVqE5oKU2wIk1ZT5ouipFftuZFzkezvHC7d3DDtkSO1yshjpqUDiVYYm6iZJyxb8 12yOaGydcHzdCXB+HHh+EYxoe1T/5pNRRi9Z6xrXj760B74Yf4Q= =KDp2 -----END PGP SIGNATURE----- --yzvKDKJiLNESc64M-- From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 24 10:32:11 2019 Received: (at 34831-done) by debbugs.gnu.org; 24 Mar 2019 14:32:11 +0000 Received: from localhost ([127.0.0.1]:56893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h84AT-0000ib-Ai for submit@debbugs.gnu.org; Sun, 24 Mar 2019 10:32:11 -0400 Received: from flashner.co.il ([178.62.234.194]:60392) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h84AR-0000hf-L9 for 34831-done@debbugs.gnu.org; Sun, 24 Mar 2019 10:32:07 -0400 Received: from localhost (unknown [31.210.177.221]) by flashner.co.il (Postfix) with ESMTPSA id 3CCD4401F5 for <34831-done@debbugs.gnu.org>; Sun, 24 Mar 2019 14:32:01 +0000 (UTC) Date: Sun, 24 Mar 2019 16:31:59 +0200 From: Efraim Flashner To: 34831-done@debbugs.gnu.org Subject: Re: [PATCH 00/25] Add perl6 Message-ID: <20190324143159.GA28591@macbook41> References: <20190312201608.30892-1-efraim@flashner.co.il> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="bp/iNruPH9dso1Pn" Content-Disposition: inline In-Reply-To: <20190312201608.30892-1-efraim@flashner.co.il> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 User-Agent: Mutt/1.11.4 (2019-03-13) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 34831-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --bp/iNruPH9dso1Pn Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Patches pushed --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --bp/iNruPH9dso1Pn Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlyXlNwACgkQQarn3Mo9 g1HPyRAAtrUj2+Waooa4+8SB590NJ7iPTdUZZtqrHVUrXMIFWgO+g6YAqcLu7spm vOJs2x+9xRXit5vjsyLPhWCIKjChlpN8bPsc47CJaTWUdxDZuBOxIp7gpTfmbG9r BWzRXqJU4bxBpMSds6g+tIo7QEAHP0Kmr+YONL5PxWN+gQoqS5VvesyCtq8DXxLH eAMLzLbFg1SR8HpP3d77GuEOQyQbXfapQIDyi8NNrLw1XLJcpGWvp7Num5mwIWiS OsRL0UcTeflujMupjBEZOxjpONpXE0AYlqzNeKI6u1sACg11/Kz9xKLEs6IoEC7+ N3YJ3xMGcp3ktdHNEin2BB0dUDghdjW63giNtwUKCvG7MmhJJcuzI31msg2YNy0e aGtxdLvlWoub/RXZ0XSOj+zfouprTDTrd3fyrzAjM960ESwZ4aTc9uvkyScmltwV tGiKznpcf7bXfIpD7aN5zN9HInsYf8mmNiqMYeLERjpJuldVVyxKhBL+0LzT6D+H OrQM+eg0sqGJrh13rPIPkxqJoe24K8MvBcKbqqLpDbau+FkFlkHtoBtbYOcQ6h3I OvtwioEeryARIUKMjvlndNFtfmopm3duCN7csmdRwTfGsipJ5cMJ2v9+8l7WN4pS 8SGCrFVfNJNLjgfKCidvHiZ/M2Wsssc5O1EsUyUTXtpifn74xCo= =Vx1X -----END PGP SIGNATURE----- --bp/iNruPH9dso1Pn-- From unknown Tue Sep 09 22:29:00 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 22 Apr 2019 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator