aboutsummaryrefslogtreecommitdiff
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")