[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#34361] [PATCH 3/4] gnu: Add ocaml-timed.
From: |
Gabriel Hondet |
Subject: |
[bug#34361] [PATCH 3/4] gnu: Add ocaml-timed. |
Date: |
Fri, 1 Feb 2019 20:50:25 +0100 |
User-agent: |
mu4e 1.0; emacs 26.1 |
* gnu/packages/ocaml.scm (ocaml-timed): New variable.
---
gnu/packages/ocaml.scm | 47 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index ede3beb03..34229107f 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -4796,6 +4796,53 @@ 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)
+ (native-inputs
+ `(("ocaml-findlib" ,ocaml-findlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (invoke "make")
+ #t))
+ (replace 'install
+ (lambda _
+ (invoke "make" "install")
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "make" "tests")
+ #t)))))
+ (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")
--
2.20.1
signature.asc
Description: PGP signature