summary refs log tree commit diff
path: root/gnu/packages/ocaml.scm
diff options
context:
space:
mode:
authorPeter Kreye <kreyepr@gmail.com>2017-10-27 18:34:13 -0500
committerLudovic Courtès <ludo@gnu.org>2017-10-28 10:33:59 +0200
commit90ab26fa26f0ec313d561048e3ebaf04d97f2b40 (patch)
tree4709e97a13c43953940b8c233dcd77589165161a /gnu/packages/ocaml.scm
parent50856b7342a331c60db1dbd43262f3f10310607b (diff)
downloadguix-90ab26fa26f0ec313d561048e3ebaf04d97f2b40.tar.gz
gnu: Add ocaml-utop.
* gnu/packages/ocaml.scm (ocaml-utop): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r--gnu/packages/ocaml.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 1b56670be1..5b2536ae67 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3692,6 +3692,50 @@ manipulation than, for example, ncurses, by providing a native OCaml interface
 instead of bindings to a C library.")
     (license license:bsd-3)))
 
+(define-public ocaml-utop
+  (package
+    (name "ocaml-utop")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/diml/utop/archive/"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1v22bzw1vgwbbmpvi7lkyp2r59w5mag85rmqplb4fwik78x7k4ss"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (libdir (string-append out "/lib/ocaml/site-lib")))
+               (mkdir-p libdir)
+               (zero? (system* "jbuilder" "install"
+                               "--prefix" out
+                               "--libdir" libdir))))))))
+    (native-inputs
+     `(("ocaml" ,ocaml)
+       ("cppo" ,ocaml-cppo)
+       ("jbuilder" ,ocaml-jbuilder)))
+    (propagated-inputs
+     `(("findlib" ,ocaml-findlib-1.7.3)
+       ("lambda-term" ,ocaml-lambda-term)
+       ("lwt" ,ocaml-lwt)
+       ("react" ,ocaml-react)
+       ("camomile" ,ocaml-camomile)
+       ("zed" ,ocaml-zed)))
+    (home-page "https://github.com/diml/utop")
+    (synopsis "Improved interface to the OCaml toplevel")
+    (description "UTop is an improved toplevel for OCaml.  It can run in a
+terminal or in Emacs.  It supports line editing, history, real-time and context
+sensitive completion, colors, and more.")
+    (license license:bsd-3)))
+
 (define-public coq-flocq
   (package
     (name "coq-flocq")