From 6bdf77a2a165743a126964190b59f92873e8664b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:28:46 +0100 Subject: gnu: Add ocaml-fieldslib. * gnu/packages/ocaml.scm (ocaml-fieldslib): New variable. --- gnu/packages/ocaml.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 9a0bc91128..8e3deb7a12 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2025,3 +2025,21 @@ structured values at speeds sufficient to saturate a gigabit connection. The protocol is also heavily optimized for size, making it ideal for long-term storage of large amounts of data.") (license license:asl2.0))) + +(define-public ocaml-fieldslib + (package + (name "ocaml-fieldslib") + (version "113.33.03") + (source (janestreet-origin "fieldslib" version + "1rm3bn54bzk2hlq8f3w067ak8s772w4a8f78i3yh79vxfzq8ncvv")) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/fieldslib/") + (synopsis "Syntax extension to record fields") + (description "Syntax extension to define first class values representing +record fields, to get and set record fields, iterate and fold over all fields +of a record and create new record values.") + (license license:asl2.0))) -- cgit v1.2.3 From c333995063614038bc217536ac39ad35f57b3ed7 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:30:46 +0100 Subject: gnu: Add ocaml-ppx-core. * gnu/packages/ocaml.scm (ocaml-ppx-core): New variable. --- gnu/packages/ocaml.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 8e3deb7a12..ca0674a6d2 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2043,3 +2043,27 @@ storage of large amounts of data.") record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values.") (license license:asl2.0))) + +(define-public ocaml-ppx-core + (package + (name "ocaml-ppx-core") + (version "113.33.03") + (source (janestreet-origin "ppx_core" version + "0f69l4czhgssnhb5ds2j9dbqjyz8dp1y3i3x0i4h6pxnms20zbxa")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam))) + (inputs `(("ppx-tools" ,ocaml-ppx-tools))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_core/") + (synopsis "Standard library for ppx rewriters") + (description "Ppx_core is a standard library for OCaml AST transformers. +It contains: +@enumerate +@item various auto-generated AST traversal using an open recursion scheme +@item helpers for building AST fragments +@item helpers for matching AST fragments +@item a framework for dealing with attributes and extension points. +@end enumerate") + (license license:asl2.0))) -- cgit v1.2.3 From 567b4e029950340ce3219cfd1dcab391858813e1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:32:14 +0100 Subject: gnu: Add ocaml-ppx-optcomp. * gnu/packages/ocaml.scm (ocaml-ppx-optcomp): New variable. --- gnu/packages/ocaml.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ca0674a6d2..5820f1599b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2067,3 +2067,24 @@ It contains: @item a framework for dealing with attributes and extension points. @end enumerate") (license license:asl2.0))) + +(define-public ocaml-ppx-optcomp + (package + (name "ocaml-ppx-optcomp") + (version "113.33.03") + (source (janestreet-origin "ppx_optcomp" version + "13an8p2r7sd0d5lv54mlzrxdni47408bwqi3bjcx4m6005170q30")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam))) + (propagated-inputs + `(("ppx-tools" ,ocaml-ppx-tools) + ("ppx-core" ,ocaml-ppx-core))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_optcomp/") + (synopsis "Optional compilation for OCaml") + (description "Ppx_optcomp stands for Optional Compilation. It is a tool +used to handle optional compilations of pieces of code depending of the word +size, the version of the compiler, ...") + (license license:asl2.0))) -- cgit v1.2.3 From 9e5687867da327f8d1993b83392324e6e16679ed Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:34:09 +0100 Subject: gnu: Add ocaml-ppx-driver. * gnu/packages/ocaml.scm (ocaml-ppx-driver): New variable. --- gnu/packages/ocaml.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5820f1599b..83d2632f17 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2088,3 +2088,32 @@ It contains: used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, ...") (license license:asl2.0))) + +(define-public ocaml-ppx-driver + (package + (name "ocaml-ppx-driver") + (version "113.33.03") + (source (janestreet-origin "ppx_driver" version + "011zzr45897j49b7iiybb29k7pspcx36mlnp7nh6pxb8b0ga76fh")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam) + ("ppx-optcomp" ,ocaml-ppx-optcomp))) + (propagated-inputs + `(("ppx-optcomp" ,ocaml-ppx-optcomp) + ("ppx-core" ,ocaml-ppx-core))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_driver/") + (synopsis "Feature-full driver for OCaml AST transformers") + (description "A driver is an executable created from a set of OCaml AST +transformers linked together with a command line frontend. The aim is to +provide a tool that can be used to: +@enumerate +@item easily view the pre-processed version of a file, no need to construct a + complex command line: @command{ppx file.ml} will do +@item use a single executable to run several transformations: no need to fork + many times just for pre-processing +@item improved errors for misspelled/misplaced attributes and extension points. +@end enumerate") + (license license:asl2.0))) -- cgit v1.2.3 From f6dde36aebb9a955c8f1dd1db30d43b5955e0084 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:35:13 +0100 Subject: gnu: Add ocaml-cppo. * gnu/packages/ocaml.scm (ocaml-cppo): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 83d2632f17..23ef7cca4a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2117,3 +2117,33 @@ provide a tool that can be used to: @item improved errors for misspelled/misplaced attributes and extension points. @end enumerate") (license license:asl2.0))) + +(define-public ocaml-cppo + (package + (name "ocaml-cppo") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mjambon/cppo/archive/v" version + ".tar.gz")) + (sha256 (base32 + "02gma6nw09vfnd6h7bl3n70lwz7m9z2svplxyfh6h5bf4lqgqzjv")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:phases (modify-phases %standard-phases (delete 'configure)) + #:make-flags (list (string-append "BINDIR=" + (assoc-ref %outputs "out") "/bin")) + #:tests? #f)) + (home-page "https://github.com/mjambon/cppo") + (synopsis "Equivalent of the C preprocessor for OCaml programs") + (description "Cppo is an equivalent of the C preprocessor for OCaml +programs. It allows the definition of simple macros and file inclusion. Cpp ois: +@enumerate +@item more OCaml-friendly than cpp +@item easy to learn without consulting a manual +@item reasonably fast +@item simple to install and to maintain. +@end enumerate") + (license license:bsd-3))) -- cgit v1.2.3 From 505394d1fd5c1d37402556327a872941f2f05b75 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 16:36:30 +0100 Subject: gnu: Add ocaml-ppx-deriving. * gnu/packages/ocaml.scm (ocaml-ppx-deriving): New variable. --- gnu/packages/ocaml.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 23ef7cca4a..8a700097c9 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2147,3 +2147,42 @@ programs. It allows the definition of simple macros and file inclusion. Cpp oi @item simple to install and to maintain. @end enumerate") (license license:bsd-3))) + +;; this package is not reproducible. This is related to temporary filenames +;; such as findlib_initxxxxx where xxxxx is random. +(define-public ocaml-ppx-deriving + (package + (name "ocaml-ppx-deriving") + (version "4.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/whitequark/ppx_deriving//archive/v" + version ".tar.gz")) + (sha256 (base32 + "1fr16g121j6zinwcprzlhx2py4271n9jzs2m9hq2f3qli2b1p0vl")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("cppo" ,ocaml-cppo) + ("ounit" ,ocaml-ounit) + ("opam" ,opam))) + (propagated-inputs + `(("result" ,ocaml-result) + ("ppx-tools" ,ocaml-ppx-tools))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'install 'fix-environment + (lambda* (#:key outputs #:allow-other-keys) + ;; the installation procedures looks for the installed module + (setenv "OCAMLPATH" + (string-append (getenv "OCAMLPATH") ":" + (getenv "OCAMLFIND_DESTDIR")))))))) + (home-page "https://github.com/whitequark/ppx_deriving/") + (synopsis "Type-driven code generation for OCaml >=4.02") + (description "Ppx_deriving provides common infrastructure for generating +code based on type definitions, and a set of useful plugins for common tasks.") + (license license:expat))) -- cgit v1.2.3 From e6515b55ea18e764b2c2f7f1823ad488640d75bc Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 19:15:44 +0100 Subject: gnu: Add ocaml-ppx-type-conv. * gnu/packages/ocaml.scm (ocaml-ppx-type-conv): New variable. --- gnu/packages/ocaml.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 8a700097c9..d5d5bc6d1d 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2186,3 +2186,27 @@ programs. It allows the definition of simple macros and file inclusion. Cpp oi (description "Ppx_deriving provides common infrastructure for generating code based on type definitions, and a set of useful plugins for common tasks.") (license license:expat))) + +(define-public ocaml-ppx-type-conv + (package + (name "ocaml-ppx-type-conv") + (version "113.33.03") + (source + (janestreet-origin "ppx_type_conv" version + "1sp602ads2f250nv4d4rgw54d14k7flyhb4w8ff084f657hhmxv2")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam))) + (propagated-inputs + `(("ppx-deriving" ,ocaml-ppx-deriving) + ("ppx-tools" ,ocaml-ppx-tools) + ("result" ,ocaml-result) + ("ppx-core" ,ocaml-ppx-core) + ("ppx-driver" ,ocaml-ppx-driver))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_type_conv/") + (synopsis "Support Library for type-driven code generators") + (description "The type_conv library factors out functionality needed by +different preprocessors that generate code from type specifications.") + (license license:asl2.0))) -- cgit v1.2.3 From be1e892d8547fd8ec8bb4d794b26e94198ef30d1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 19:17:09 +0100 Subject: gnu: Add ocaml-ppx-inline-test. * gnu/packages/ocaml.scm (ocaml-ppx-inline-test): New variable. --- gnu/packages/ocaml.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d5d5bc6d1d..d350a2c739 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2210,3 +2210,24 @@ code based on type definitions, and a set of useful plugins for common tasks.") (description "The type_conv library factors out functionality needed by different preprocessors that generate code from type specifications.") (license license:asl2.0))) + +(define-public ocaml-ppx-inline-test + (package + (name "ocaml-ppx-inline-test") + (version "113.33.03") + (source (janestreet-origin "ppx_inline_test" version + "0859ni43fl39dd5g6cxfhq0prxmx59bd2bfq8jafp593ba4q0icq")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam) + ("ppx-core" ,ocaml-ppx-core))) + (propagated-inputs + `(("ppx-driver" ,ocaml-ppx-driver) + ("ppx-tools" ,ocaml-ppx-tools) + ("ppx-core" ,ocaml-ppx-core))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_inline_test/") + (synopsis "Syntax extension for writing in-line tests in ocaml code") + (description "Syntax extension for writing in-line tests in ocaml code.") + (license license:asl2.0))) -- cgit v1.2.3 From 9a63fef95aec84e79f4bbcc8ba927559981e34ee Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 19:18:37 +0100 Subject: gnu: Add ocaml-ppx-bench. * gnu/packages/ocaml.scm (ocaml-ppx-bench): New variable. --- gnu/packages/ocaml.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d350a2c739..40e4b20427 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2231,3 +2231,25 @@ different preprocessors that generate code from type specifications.") (synopsis "Syntax extension for writing in-line tests in ocaml code") (description "Syntax extension for writing in-line tests in ocaml code.") (license license:asl2.0))) + +(define-public ocaml-ppx-bench + (package + (name "ocaml-ppx-bench") + (version "113.33.03") + (source (janestreet-origin "ppx_bench" version + "1hky3y17qpb925rymf97wv54di9gaqdmkix7wpkjw14qzl512b68")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam) + ("ppx-core" ,ocaml-ppx-core))) + (propagated-inputs + `(("ppx-driver" ,ocaml-ppx-driver) + ("ppx-tools" ,ocaml-ppx-tools) + ("ppx-inline-test" ,ocaml-ppx-inline-test) + ("ppx-core" ,ocaml-ppx-core))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_bench/") + (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") + (description "Syntax extension for writing in-line benchmarks in ocaml code.") + (license license:asl2.0))) -- cgit v1.2.3 From 953ecc04a058a42d02af188881e9661fa529133c Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 30 Dec 2016 19:19:40 +0100 Subject: gnu: Add ocaml-ppx-compare. * gnu/packages/ocaml.scm (ocaml-ppx-compare): New variable. --- gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 40e4b20427..e225aa6d68 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2253,3 +2253,30 @@ different preprocessors that generate code from type specifications.") (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") (description "Syntax extension for writing in-line benchmarks in ocaml code.") (license license:asl2.0))) + +(define-public ocaml-ppx-compare + (package + (name "ocaml-ppx-compare") + (version "113.33.03") + (source (janestreet-origin "ppx_compare" version + "0bfhi33kq9l4q6zzc6svki2csracz5j4731c3npcy6cs73jynn0z")) + (build-system ocaml-build-system) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("opam" ,opam) + ("ppx-core" ,ocaml-ppx-core))) + (propagated-inputs + `(("ppx-driver" ,ocaml-ppx-driver) + ("ppx-tools" ,ocaml-ppx-tools) + ("ppx-core" ,ocaml-ppx-core) + ("ppx-type-conv" ,ocaml-ppx-type-conv))) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/ppx_compare/") + (synopsis "Generation of comparison functions from types") + (description "Generation of fast comparison functions from type expressions +and definitions. Ppx_compare is a ppx rewriter that derives comparison functions +from type representations. The scaffolded functions are usually much faster +than ocaml's Pervasives.compare. Scaffolding functions also gives you more +flexibility by allowing you to override them for a specific type and more safety +by making sure that you only compare comparable values.") + (license license:asl2.0))) -- cgit v1.2.3