summary refs log tree commit diff
path: root/gnu/packages/ocaml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r--gnu/packages/ocaml.scm228
1 files changed, 106 insertions, 122 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 07fcf92aea..9a807a4cb6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -234,45 +234,6 @@ functional, imperative and object-oriented styles of programming.")
     ;; distributed under lgpl2.0.
     (license (list license:qpl license:lgpl2.0))))
 
-(define-public ocaml-4.01
-  (package
-    (inherit ocaml-4.02)
-    (version "4.01.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://caml.inria.fr/pub/distrib/ocaml-"
-                    (version-major+minor version)
-                    "/ocaml-" version ".tar.xz"))
-              (sha256
-               (base32
-                "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments ocaml-4.02)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'build
-             (lambda _
-               ;; Specifying '-j' at all causes the build to fail.
-               (invoke "make" "world.opt")))
-           ,@(if (string=? "aarch64-linux" (%current-system))
-               ;; Custom configure script doesn't recongnize aarch64.
-               '((replace 'configure
-                  (lambda* (#:key outputs #:allow-other-keys)
-                    (let* ((out (assoc-ref outputs "out"))
-                           (mandir (string-append out "/share/man")))
-                      (invoke "./configure"
-                              "--prefix" out
-                              "--mandir" mandir
-                              "-host" "armv8l-unknown-linux-gnu")))))
-               '())
-           (replace 'check
-             (lambda _
-               (with-directory-excursion "testsuite"
-                 (invoke "make" "all"
-                         (string-append
-                          "TOPDIR=" (getcwd) "/..")))))))))))
-
 (define-public ocaml-4.07
   (package
     (inherit ocaml-4.02)
@@ -957,14 +918,6 @@ compilers that can directly deal with packages.")
        ("m4" ,m4)
        ("ocaml" ,ocaml-4.02)))))
 
-(define-public ocaml4.01-findlib
-  (package
-    (inherit ocaml-findlib)
-    (name "ocaml4.01-findlib")
-    (native-inputs
-     `(("m4" ,m4)
-       ("ocaml" ,ocaml-4.01)))))
-
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
@@ -990,9 +943,6 @@ compilers that can directly deal with packages.")
 other XUnit testing frameworks.")
     (license license:expat)))
 
-(define-public ocaml4.01-ounit
-  (package-with-ocaml4.01 ocaml-ounit))
-
 (define-public ocaml4.02-ounit
   (package-with-ocaml4.02 ocaml-ounit))
 
@@ -1038,24 +988,6 @@ JAR format.  It provides functions for reading from and writing to compressed
 files in these formats.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml4.01-camlzip
-  (let ((base (package-with-ocaml4.01 camlzip)))
-    (package
-      (inherit base)
-      (name "ocaml4.01-camlzip")
-      ;; Version 1.05 is the last version to support OCaml 4.01.0.
-      (version "1.05")
-      (source
-       (origin
-         (method url-fetch)
-         (uri
-          (string-append
-           "http://forge.ocamlcore.org/frs/download.php/1037/camlzip-"
-           version ".tar.gz"))
-         (sha256
-          (base32
-           "0syh72jk9s0qwjmmfrkqchaj98m020ii082jn38pwnmb6v3p02wk")))))))
-
 (define-public ocaml4.02-camlzip
   (package-with-ocaml4.02 camlzip))
 
@@ -1222,9 +1154,6 @@ qcheck library.  The possibilities range from trivial tests -- extremely simple
 to use -- to sophisticated random generation of test cases.")
     (license license:lgpl3+)))
 
-(define-public ocaml4.01-qtest
-  (package-with-ocaml4.01 ocaml-qtest))
-
 (define-public ocaml4.02-qtest
   (package-with-ocaml4.02 ocaml-qtest))
 
@@ -1301,39 +1230,9 @@ tests.  After application execution, it is possible to generate a report in HTML
 format that is the replica of the application source code annotated with code
 coverage information.")
     (properties
-     `((ocaml4.01-variant . ,(delay ocaml4.01-bisect))
-       (ocaml4.02-variant . ,(delay ocaml4.02-bisect))))
+     `((ocaml4.02-variant . ,(delay ocaml4.02-bisect))))
     (license license:gpl3+)))
 
-(define-public ocaml4.01-bisect
-  (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect))))
-    (package
-      (inherit base)
-      (version "1.3")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/gasche/bisect/archive/"
-                                    version ".tar.gz"))
-                (file-name (string-append "ocaml-bisect-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1ip49jqf0kkbrqf8qspmfjbg9ap9fhvjkg718myzix88dg5rv8d4"))))
-      (arguments
-       `(#:ocaml ,ocaml-4.01
-         ,@(substitute-keyword-arguments (package-arguments ocaml-bisect)
-            ((#:make-flags flags)
-             `(list "all"))
-            ((#:phases phases)
-             `(modify-phases ,phases
-                (replace 'configure
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (invoke "./configure"
-                            "-ocaml-prefix" (assoc-ref inputs "ocaml"))
-                    #t)))))))
-      (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base))))
-      (propagated-inputs
-       `(,@(alist-delete "camlp4" (package-propagated-inputs base)))))))
-
 (define-public ocaml4.02-bisect
   (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bisect))))
     (package
@@ -1648,9 +1547,6 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper
 @code{ocaml-sqlite}.")
     (license license:expat)))
 
-(define-public ocaml4.01-sqlite3
-  (package-with-ocaml4.01 ocaml-sqlite3))
-
 (define-public ocaml4.02-sqlite3
   (package-with-ocaml4.02 ocaml-sqlite3))
 
@@ -1680,9 +1576,6 @@ read and write files in this format as well as some convenience functions to
 manipulate such data.")
     (license (package-license camlp4))))
 
-(define-public ocaml4.01-csv
-  (package-with-ocaml4.01 ocaml-csv))
-
 (define-public ocaml4.02-csv
   (package-with-ocaml4.02 ocaml-csv))
 
@@ -2191,9 +2084,6 @@ format.  It can process XML documents without a complete in-memory
 representation of the data.")
     (license license:isc)))
 
-(define-public ocaml4.01-xmlm
-  (package-with-ocaml4.01 ocaml-xmlm))
-
 (define-public ocaml4.02-xmlm
   (package-with-ocaml4.02 ocaml-xmlm))
 
@@ -2530,8 +2420,7 @@ many additional enhancements, including:
              (invoke "make" "all")
              #t)))))
     (properties
-      `((ocaml4.01-variant . ,(delay ocaml4.01-batteries))
-        (ocaml4.02-variant . ,(delay ocaml4.02-batteries))))
+      `((ocaml4.02-variant . ,(delay ocaml4.02-batteries))))
     (home-page "http://batteries.forge.ocamlcore.org/")
     (synopsis "Development platform for the OCaml programming language")
     (description "Define a standard set of libraries which may be expected on
@@ -2552,12 +2441,6 @@ hierarchy of modules.")
                   "1a97w3x2l1jr5x9kj5gqm1x6b0q9fjqdcsvls7arnl3bvzgsia0n"))))
       (propagated-inputs '()))))
 
-(define-public ocaml4.01-batteries
-  (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml4.02-batteries))))
-    (package
-      (inherit base)
-      (name "ocaml4.01-batteries"))))
-
 (define-public ocaml-pcre
   (package
     (name "ocaml-pcre")
@@ -4683,6 +4566,110 @@ in-line tests in ocaml code.  It is part of Jane Street's PPX rewriters
 collection.")
     (license license:expat)))
 
+(define-public ocaml-bindlib
+  (package
+    (name "ocaml-bindlib")
+    (version "5.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rlepigre/ocaml-bindlib.git")
+             (commit (string-append "ocaml-bindlib_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1f8kr81w8vsi4gv61xn1qbc6zrzkjp8l9ix0942vjh4gjxc74v75"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:tests? #f ;no tests
+       #:use-make? #t
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (invoke "make")))
+         (replace 'install
+           (lambda _
+             (invoke "make" "install"))))))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)
+       ("ocaml-findlib" ,ocaml-findlib)))
+    (home-page "https://rlepigre.github.io/ocaml-bindlib/")
+    (synopsis "OCaml Bindlib library for bound variables")
+    (description "Bindlib is a library allowing the manipulation of data
+structures with bound variables.  It is particularly useful when writing ASTs
+for programming languages, but also for manipulating terms of the λ-calculus
+or quantified formulas.")
+    (license license:gpl3+)))
+
+(define-public ocaml-earley
+  (package
+    (name "ocaml-earley")
+    (version "2.0.0")
+    (home-page "https://github.com/rlepigre/ocaml-earley")
+    (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
+         "18k7bi7krc4bvqnhijz1q0pfr0nfahghfjifci8rh1q4i5zd0xz5"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (synopsis "Parsing library based on Earley Algorithm")
+    (description "Earley is a parser combinator library base on Earley's
+algorithm.  It is intended to be used in conjunction with an OCaml syntax
+extension which allows the definition of parsers inside the language.  There
+is also support for writing OCaml syntax extensions in a camlp4 style.")
+    (license license:cecill-b)))
+
+(define-public ocaml-timed
+  (package
+    (name "ocaml-timed")
+    (version "1.0")
+    (home-page "https://github.com/rlepigre/ocaml-timed")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append home-page ".git"))
+                    (commit (string-append name "_" version))))
+              (sha256
+               (base32
+                "0hfxz710faxy5yk97bkfnw87r732jcxxhmjppwrbfdb6pd0wks96"))
+              (file-name (git-file-name name version))))
+    (build-system ocaml-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (invoke "make")))
+         (replace 'install
+           (lambda _
+             (invoke "make" "install")))
+         (replace 'check
+           (lambda _
+             (invoke "make" "tests"))))))
+    (synopsis "Timed references for imperative state")
+    (description "Timed references for imperative state.  This module provides
+an alternative type for references (or mutable cells) supporting undo/redo
+operations.  In particular, an abstract notion of time is used to capture the
+state of the references at any given point, so that it can be restored.  Note
+that usual reference operations only have a constant time / memory overhead
+(compared to those of the standard library).
+
+Moreover, we provide an alternative implementation based on the references
+of the standard library (Pervasives module).  However, it is less efficient
+than the first one.")
+    (license license:expat)))
+
 (define-public ocaml-biniou
  (package
    (name "ocaml-biniou")
@@ -4828,9 +4815,6 @@ Atom.")
 the OCaml language.")
     (license license:gpl3+)))
 
-(define-public ocaml4.01-gsl
-  (package-with-ocaml4.01 ocaml-gsl))
-
 (define-public cubicle
   (package
     (name "cubicle")