gnu: Add python-pyshp.
[jackhill/guix/guix.git] / gnu / packages / perl6.scm
index cf8a400..e02dd75 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
     ;; These should be inputs but moar.h can't find them when building rakudo
     (propagated-inputs
      `(("libatomic-ops" ,libatomic-ops)
+       ("libffi" ,libffi)
        ("libtommath" ,libtommath-1.0)
        ("libuv" ,libuv)))
-    (inputs
-     `(("libffi" ,libffi)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (synopsis "VM for NQP And Rakudo Perl 6")
@@ -228,6 +228,85 @@ 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")
+        (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")
+                 (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
+  (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")
@@ -236,7 +315,7 @@ specification and runs on top of several virtual machines.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Class.git")
+               (url "https://github.com/jonathanstowe/JSON-Class")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -252,27 +331,27 @@ specification and runs on top of several virtual machines.")
     (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.")
+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 public
+attributes.  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")
-    (version "0.8")
+    (version "0.10")
     (source
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/timo/json_fast.git")
+               (url "https://github.com/timo/json_fast")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1fif081gdxdnja14vkj523p9dyzdcdj81lmjv9fvfazvpagb6dg2"))))
+         (base32 "1g8hr1mdrxwdpzc7hvs9l5r12phvba6y6a5chgkj90ing77ji4b2"))))
     (build-system rakudo-build-system)
     (arguments '(#:with-zef? #f))
     (home-page "https://github.com/timo/json_fast")
@@ -291,7 +370,7 @@ but it offers a few extra features.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Marshal.git")
+               (url "https://github.com/jonathanstowe/JSON-Marshal")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -318,7 +397,7 @@ of the same class using @code{JSON::Unmarshal}.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Name.git")
+               (url "https://github.com/jonathanstowe/JSON-Name")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -347,7 +426,7 @@ It will of course also be needed in classes thar are going to use
         (origin
           (method git-fetch)
           (uri (git-reference
-                 (url "https://github.com/tadzik/JSON-Unmarshal.git")
+                 (url "https://github.com/tadzik/JSON-Unmarshal")
                  (commit commit)))
         (file-name (git-file-name name version))
         (sha256
@@ -396,7 +475,7 @@ licences therein.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/jonathanstowe/META6.git")
+               (url "https://github.com/jonathanstowe/META6")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -413,13 +492,35 @@ licences therein.")
 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
+Where they are known about it also makes allowance for 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.")
+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 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
@@ -511,7 +612,7 @@ with optional labels, or xy plots).")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/perl6/tap-harness6.git")
+               (url "https://github.com/perl6/tap-harness6")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -541,7 +642,7 @@ minimal wrapper around an instance of this module.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/tadzik/Terminal-ANSIColor.git")
+               (url "https://github.com/tadzik/Terminal-ANSIColor")
                ;; The commit where 0.5 was "tagged"
                (commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212")))
         (file-name (git-file-name name version))
@@ -614,7 +715,7 @@ statement for @code{Test::Mock}.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/perl6-community-modules/uri.git")
+               (url "https://github.com/perl6-community-modules/uri")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
@@ -662,7 +763,7 @@ character numbering.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/ugexe/zef.git")
+               (url "https://github.com/ugexe/zef")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256