guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

38/40: gnu: Add ocaml-spawn.


From: guix-commits
Subject: 38/40: gnu: Add ocaml-spawn.
Date: Tue, 5 Feb 2019 16:34:58 -0500 (EST)

roptat pushed a commit to branch master
in repository guix.

commit 9e81db80eb10d0de751defac0218dcf20ee7a6db
Author: Julien Lepiller <address@hidden>
Date:   Sun Feb 3 17:29:33 2019 +0100

    gnu: Add ocaml-spawn.
    
    * gnu/packages/ocaml.scm (ocaml-spawn): New variable.
---
 gnu/packages/ocaml.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7e7e58c..a07c4ef 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6030,3 +6030,47 @@ Configurator allows one to:
 @item generate config.h file
 @end itemize")
     (license license:asl2.0)))
+
+(define-public ocaml-spawn
+  (package
+    (name "ocaml-spawn")
+    (version "0.12.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/spawn.git";)
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-tests
+           (lambda _
+             (substitute* "test/tests.ml"
+               (("/bin/pwd") (which "pwd"))
+               (("/bin/echo") (which "echo")))
+             #t)))))
+    (native-inputs
+     `(("ocaml-ppx-expect" ,ocaml-ppx-expect)))
+    (home-page "https://github.com/janestreet/spawn";)
+    (synopsis "Spawning sub-processes")
+    (description
+      "Spawn is a small library exposing only one functionality: spawning 
sub-process.
+
+It has three main goals:
+
address@hidden
address@hidden provide missing features of Unix.create_process such as 
providing a
+working directory,
address@hidden provide better errors when a system call fails in the
+sub-process.  For instance if a command is not found, you get a proper
address@hidden exception,
address@hidden improve performances by using vfork when available.  It is often
+claimed that nowadays fork is as fast as vfork, however in practice
+fork takes time proportional to the process memory while vfork is
+constant time.  In application using a lot of memory, vfork can be
+thousands of times faster than fork.")
+    (license license:asl2.0)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]