From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:34282) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMuGr-0005pk-KK for guix-patches@gnu.org; Sat, 04 May 2019 09:00:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMuGp-0007YC-Oj for guix-patches@gnu.org; Sat, 04 May 2019 09:00:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:37011) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMuGp-0007Xw-Em for guix-patches@gnu.org; Sat, 04 May 2019 09:00:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hMuGp-0004kt-9W for guix-patches@gnu.org; Sat, 04 May 2019 09:00:03 -0400 Subject: [bug#35558] [PATCH] gnu: add ocaml-odoc. Resent-Message-ID: Received: from eggs.gnu.org ([209.51.188.92]:34174) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMuGZ-0005oS-JM for guix-patches@gnu.org; Sat, 04 May 2019 08:59:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMuGW-0007PP-PC for guix-patches@gnu.org; Sat, 04 May 2019 08:59:47 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:38309) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMuGH-0007Lz-3s for guix-patches@gnu.org; Sat, 04 May 2019 08:59:29 -0400 Received: by mail-wr1-x42d.google.com with SMTP id k16so11226059wrn.5 for ; Sat, 04 May 2019 05:59:29 -0700 (PDT) Received: from glht-aurore.gmail.com (2a01cb04062c860082fa5bfffe3823d7.ipv6.abo.wanadoo.fr. [2a01:cb04:62c:8600:82fa:5bff:fe38:23d7]) by smtp.gmail.com with ESMTPSA id j71sm4691150wmj.44.2019.05.04.05.59.26 for (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Sat, 04 May 2019 05:59:26 -0700 (PDT) From: Gabriel Hondet Date: Sat, 04 May 2019 14:59:21 +0200 Message-ID: <87sgtuxtna.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35558@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Hi everyone, Please find enclosed a sequence of patches to add ocaml-odoc Gabriel --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-gnu-Add-ocaml-markup.patch Content-Transfer-Encoding: quoted-printable Content-Description: ocaml-markup From=205ba11eb3d3868ef92b6b2a37c6531963ec4ec6ab Mon Sep 17 00:00:00 2001 From: gabrielhdt Date: Sat, 4 May 2019 14:34:05 +0200 Subject: [PATCH 1/4] gnu: Add ocaml-markup. * gnu/packages/ocaml.scm (ocaml-markup): New variable. =2D-- gnu/packages/ocaml.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 6e69be3f19..82fd1cdd91 100644 =2D-- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -4960,3 +4960,45 @@ the full Core is not available, such as in Javascrip= t.") license:asl2.0 ;; MLton and sjs license:expat)))) + +(define-public ocaml-markup + (package + (name "ocaml-markup") + (version "0.8.0") + (home-page "https://github.com/aantron/markup.ml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append home-page ".git")) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aif4abvfmi9xc1pvw5n5rbm6rzkkpsxyvdn0lanr33rjpvkwdlm")))) + (build-system dune-build-system) + (inputs + `(("ocaml-uchar" ,ocaml-uchar) + ("ocaml-uutf" ,ocaml-uutf) + ("ocaml-lwt" ,ocaml-lwt))) + (native-inputs `(("ocaml-ounit" ,ocaml-ounit))) + (synopsis "Error-recovering functional HTML5 and XML parsers and write= rs") + (description "Markup.ml provides an HTML parser and an XML parser. The +parsers are wrapped in a simple interface: they are functions that transfo= rm +byte streams to parsing signal streams. Streams can be manipulated in var= ious +ways, such as processing by fold, filter, and map, assembly into DOM tree +structures, or serialization back to HTML or XML. + +Both parsers are based on their respective standards. The HTML parser, in +particular, is based on the state machines defined in HTML5. + +The parsers are error-recovering by default, and accept fragments. This m= akes +it very easy to get a best-effort parse of some input. The parsers can, +however, be easily configured to be strict, and to accept only full docume= nts. + +Apart from this, the parsers are streaming (do not build up a document in +memory), non-blocking (can be used with threading libraries), lazy (do not +consume input unless the signal stream is being read), and process the inp= ut in +a single pass. They automatically detect the character encoding of the inp= ut +stream, and convert everything to UTF-8.") + (license license:bsd-3))) =2D-=20 2.21.0 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0002-gnu-Add-ocaml-tyxml.patch Content-Transfer-Encoding: quoted-printable Content-Description: ocaml-tyxml From=208883d5dce989627527bedfe67d37db3719723710 Mon Sep 17 00:00:00 2001 From: gabrielhdt Date: Sat, 4 May 2019 14:47:13 +0200 Subject: [PATCH 2/4] gnu: Add ocaml-tyxml. * gnu/packages/ocaml.scm (ocaml-tyxml): New variable. =2D-- gnu/packages/ocaml.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 82fd1cdd91..3588836beb 100644 =2D-- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5002,3 +5002,43 @@ consume input unless the signal stream is being read= ), and process the input in a single pass. They automatically detect the character encoding of the inp= ut stream, and convert everything to UTF-8.") (license license:bsd-3))) + +(define-public ocaml-tyxml + (package + (name "ocaml-tyxml") + (version "4.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocsigen/tyxml.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wv19xipkj8l2sks1h53105ywbjwk7q93fb7b8al4a2g9wr109c0")))) + (build-system dune-build-system) + (inputs + `(("ocaml-re" ,ocaml-re) + ("ocaml-seq" ,ocaml-seq) + ("ocaml-uutf" ,ocaml-uutf) + ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) + ("ocaml-markup" ,ocaml-markup))) + (native-inputs + `(("ocaml-alcotest" ,ocaml-alcotest))) + (arguments `(#:jbuild? #t)) + (home-page "https://github.com/ocsigen/tyxml/") + (synopsis "TyXML is a library for building correct HTML and SVG docume= nts") + (description "TyXML provides a set of convenient combinators that uses= the +OCaml type system to ensure the validity of the generated documents. TyXM= L can +be used with any representation of HTML and SVG: the textual one, provided +directly by this package, or DOM trees (@code{js_of_ocaml-tyxml}) virtual = DOM +(@code{virtual-dom}) and reactive or replicated trees (@code{eliom}). You= can +also create your own representation and use it to instantiate a new set of +combinators. + +@code{ +open Tyxml +let to_ocaml =3D Html.(a ~a:[a_href \"ocaml.org\"] [txt \"OCaml!\"]) +}") + (license license:lgpl2.1))) =2D-=20 2.21.0 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0003-gnu-Add-ocaml-bisect-ppx.patch Content-Transfer-Encoding: quoted-printable Content-Description: ocaml-bisect-ppx From=2006bce0893b0a6a1fb2ab09d01e4fbfd2d3a75dd5 Mon Sep 17 00:00:00 2001 From: gabrielhdt Date: Sat, 4 May 2019 14:48:38 +0200 Subject: [PATCH 3/4] gnu: Add ocaml-bisect-ppx. * gnu/packages/ocaml.scm (ocaml-bisect-ppx): New variable. =2D-- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 3588836beb..787bbd855c 100644 =2D-- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5042,3 +5042,33 @@ open Tyxml let to_ocaml =3D Html.(a ~a:[a_href \"ocaml.org\"] [txt \"OCaml!\"]) }") (license license:lgpl2.1))) + +(define-public ocaml-bisect-ppx + (package + (name "ocaml-bisect-ppx") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aantron/bisect_ppx.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vp3qvrkz7q25nbmvd40vhsnz2k9aqh17bnd21i3q8q0xlr5hdag")))) + (build-system dune-build-system) + (inputs + `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) + ("ocaml-ounit" ,ocaml-ounit))) + (home-page "https://github.com/aantron/bisect_ppx") + (synopsis "Code coverage for OCaml") + (description "Bisect_ppx helps you test thoroughly. It is a small +preprocessor that inserts instrumentation at places in your code, such as +if-then-else and match expressions. After you run tests, Bisect_ppx gives= a +nice HTML report showing which places were visited and which were missed. + +Usage is simple - add package bisect_ppx when building tests, run your tes= ts, +then run the Bisect_ppx report tool on the generated visitation files.") + (license license:mpl2.0))) =2D-=20 2.21.0 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0004-gnu-Add-ocaml-odoc.patch Content-Transfer-Encoding: quoted-printable Content-Description: ocaml-odoc From=208cf63e00d15182fc674fa6e75b2949aa460f0cce Mon Sep 17 00:00:00 2001 From: gabrielhdt Date: Sat, 4 May 2019 14:53:58 +0200 Subject: [PATCH 4/4] gnu: Add ocaml-odoc. * gnu/packages/ocaml.scm (ocaml-odoc): New variable. =2D-- gnu/packages/ocaml.scm | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 787bbd855c..6cb597e75f 100644 =2D-- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5072,3 +5072,57 @@ nice HTML report showing which places were visited a= nd which were missed. Usage is simple - add package bisect_ppx when building tests, run your tes= ts, then run the Bisect_ppx report tool on the generated visitation files.") (license license:mpl2.0))) + +(define-public ocaml-odoc + (package + (name "ocaml-odoc") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/odoc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0br11cw6wa0mwafja4xdb45d2f8908l6nzdq5mw5lbfq2jnp68km")))) + (build-system dune-build-system) + (inputs + `(("ocaml-alcotest" ,ocaml-alcotest) + ("ocaml-markup" ,ocaml-markup) + ("ocaml-sexplib" ,ocaml-sexplib) + ("ocaml-re" ,ocaml-re) + ("ocaml-uutf" ,ocaml-uutf))) + (native-inputs + `(("ocaml-astring" ,ocaml-astring) + ("ocaml-cmdliner" ,ocaml-cmdliner) + ("ocaml-cppo" ,ocaml-cppo) + ("ocaml-fpath" ,ocaml-fpath) + ("ocaml-result" ,ocaml-result) + ("ocaml-tyxml" ,ocaml-tyxml) + ("ocaml-bisect-ppx" ,ocaml-bisect-ppx))) + (home-page "https://github.com/ocaml/odoc") + (synopsis "OCaml documentation generator") + (description "@emph{odoc} is a documentation generator for OCaml. It = reads +@emph{doc comments}, delimited with @code{(** ... *)}, and outputs +@acronym{HTML}. + +Text inside doc comments is marked up in ocamldoc syntax: +@code{ +val compare : string -> string -> int +(** [compare s1 s2] compares [s1] and [s2] in {e lexicographic} order. The + result is negative if [s1] precedes [s2], positive if [s1] follows [s2= ], + and zero if [s1] and [s2] are equal. *) +} + +The syntax reference is +@uref{https://caml.inria.fr/pub/docs/manual-ocaml/ocamldoc.html#sec357, he= re}. +There is also an +@uref{https://caml.inria.fr/pub/docs/manual-ocaml/ocamldoc.html#sec352, +explanation} of how to attach comments to specific types, values, and other +elements in your program. + +odoc's main advantage over ocamldoc is an accurate cross-referencer, which +handles the complexity of the OCaml module system.") + (license license:isc))) =2D-=20 2.21.0 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE5ercJXBcjd3P1FcAMbyBBfZZ1CUFAlzNjKkACgkQMbyBBfZZ 1CUTUQ/+MsODzHwZFguDORSxYSIc14G3PzRyKJivvCLXU3H5VxcNiwyyysWXijIm shSUpG+CUrCoOoJN5ft2VFwXrbehatMoXi7j14IRcNA+jGxmDs8c+cR5LBKufx3b sJUB/XAes0yRYwkqgrlHC0I45gheXJyvIdPR2PIlktcb6kKQSQHPNrNQfruQtGmB c8zNQRWN1qbrvX0la14+c84UlgNhlrQHRRXIg0KxtRoqsvTuYxMCdlwfPHXvhp6d umhzMuvBiGmn/fYxu501KSHFrl/W3D8Dj589uvFoXwdsKrY5Z45ns/XgsVG7T5LD eHE3I1Xfx45sLynMdUXFlilkNlnlkIjAsAa+F5ZpzOuqBSu7u602wIFQ8C1iKfWZ RGbKeQ5aYrJoyeWmxUynjEy4eU+bt1X55P1yoKxIQYV2cz+fLH1zhu3wtlIowTbx du5WiGLdKuqfAJ864CjHbKjpL9e6UFbj4rvurldDBX7I+tHs/i0yvM5Lg5POf0LM LaTi9EONBrvCKoi9fxK8eZw6iWZQGp4vR5vB44/ZomwzOW7ohWtjQyU22/52gIf6 BokVcSztUCE57telE44PJC5eyJsPt2W9+QhakCSsCDhF+0XnLsKLtclkAgFy3QeE O84IUHqG1dorBCpGM8rsZBSSMtph8mOvRQXCsGYlAM0NGYFp4TA= =Smer -----END PGP SIGNATURE----- --==-=-=--