gnu: nqp: Update to 2022.04.

* gnu/packages/perl6.scm (nqp): Update to 2022.04.
[arguments]: Add 'remove-calls-to-git' and 'fix-paths' phases. Remove
obsolete files from 'patch-more-shebangs' phase and sort the
rest. Remove 'patch-source-date' and 'remove-failing-test' phases.
[native-inputs]: Add nqp-configure.
[home-page]: Update.
[description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
Paul A. Patience 2022-04-29 05:17:38 +00:00 committed by Efraim Flashner
parent 89d603da19
commit f3f39988b5
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351

View File

@ -155,15 +155,14 @@ t/30-if-macro.t\n")))))
(define-public nqp (define-public nqp
(package (package
(name "nqp") (name "nqp")
(version "2019.03") (version "2022.04")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://rakudo.perl6.org/downloads/nqp/nqp-" (uri (string-append "https://github.com/Raku/nqp/releases/download/"
version ".tar.gz")) version "/nqp-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1777shxr8qw6m2492ckb0r301qdx5gls6kphz554dh6k4n74avam"))
"183zhll13fx416s3hkg4bkvib77kyr857h0nydgrl643fpacxp83"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(delete-file-recursively "3rdparty")))) '(delete-file-recursively "3rdparty"))))
@ -171,25 +170,28 @@ t/30-if-macro.t\n")))))
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-calls-to-git
(lambda _
(invoke "perl" "-ni" "-e"
"print if not /^BEGIN {/ .. /^}/"
"Configure.pl")))
(add-after 'remove-calls-to-git 'fix-paths
(lambda _
(substitute* "tools/build/gen-version.pl"
(("catfile\\(\\$libdir, 'MAST', \\$_\\)")
(string-append "catfile('"
(assoc-ref %build-inputs "moarvm")
"/share/nqp/lib"
"', 'MAST', $_)")))))
(add-after 'patch-source-shebangs 'patch-more-shebangs (add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _ (lambda _
(substitute* '("tools/build/install-jvm-runner.pl.in" (substitute* '("t/nqp/111-spawnprocasync.t"
"t/nqp/113-run-command.t"
"tools/build/gen-js-cross-runner.pl" "tools/build/gen-js-cross-runner.pl"
"tools/build/gen-js-runner.pl" "tools/build/gen-js-runner.pl"
"tools/build/install-js-runner.pl" "tools/build/install-js-runner.pl"
"tools/build/install-moar-runner.pl" "tools/build/install-jvm-runner.pl.in")
"tools/build/gen-moar-runner.pl"
"t/nqp/111-spawnprocasync.t"
"t/nqp/113-run-command.t")
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))))
(add-after 'unpack 'patch-source-date
(lambda _
(substitute* "tools/build/gen-version.pl"
(("gmtime") "gmtime(0)"))))
(add-after 'unpack 'remove-failing-test
;; One subtest fails for unknown reasons
(lambda _
(delete-file "t/nqp/019-file-ops.t")))
(replace 'configure (replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out"))
@ -198,18 +200,20 @@ t/30-if-macro.t\n")))))
"--backends=moar" "--backends=moar"
"--with-moar" (string-append moar "/bin/moar") "--with-moar" (string-append moar "/bin/moar")
"--prefix" out))))))) "--prefix" out)))))))
(native-inputs
(list nqp-configure))
(inputs (inputs
(list moarvm)) (list moarvm))
(home-page "https://github.com/perl6/nqp") (home-page "https://github.com/Raku/nqp")
(synopsis "Not Quite Perl") (synopsis "Not Quite Perl")
(description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like (description "This is \"Not Quite Perl\" -- a lightweight Raku-like
environment for virtual machines. The key feature of NQP is that it's designed environment for virtual machines. The key feature of NQP is that it's
to be a very small environment (as compared with, say, perl6 or Rakudo) and is designed to be a very small environment (as compared with, say, Rakudo) and is
focused on being a high-level way to create compilers and libraries for virtual focused on being a high-level way to create compilers and libraries for
machines like MoarVM, the JVM, and others. virtual machines like MoarVM, the JVM, and others.
Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a Unlike a full-fledged implementation of Raku, NQP strives to have as small a
runtime footprint as it can, while still providing a Perl 6 object model and runtime footprint as it can, while still providing a Raku object model and
regular expression engine for the virtual machine.") regular expression engine for the virtual machine.")
(license license:artistic2.0))) (license license:artistic2.0)))