From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id CD5237F926 for ; Mon, 23 May 2016 23:01:53 +0200 (CEST) IronPort-PHdr: 9a23:dUXOJxzdvjNKwA3XCy+O+j09IxM/srCxBDY+r6Qd0eIUIJqq85mqBkHD//Il1AaPBtWKrakVwLOL6ejJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6kO74TNaIBjjLw09fr2zQd6DyZ/mnLnvodX6WEZhunmUWftKNhK4rAHc5IE9oLBJDeIP8CbPuWZCYO9MxGlldhq5lhf44dqsrtY4q3wD89pozcNLUL37cqIkVvQYSW1+ayFmrPHs4D7oRA6Lrl8dSXlexhFBBgyA6BDhQr/wtDH7v6xzwn/JE9fxSOUYUDKj4qNcYovumiMGf2o1+WfWh8g2hr9WpgClpjRy2ZTdfICMKfc4daOLLoBSfnZIQssED38JOYi7dYZaSrNZZes= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=daniel.buenzli@erratique.ch; spf=None smtp.mailfrom=daniel.buenzli@erratique.ch; spf=None smtp.helo=postmaster@smtp.webfaction.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DDAQBjbUNXf0pWN0pcFoN3fQG8BSKCPYUmEAEBAQEBAQEBEQEBCwkLCSEvgi2CP4ELAiYCSQIBExuIJwQKoj+PYpF/gQGRMyuCLgWYN4YAileGfA6FWQKHeIdUN4IxHIFNbYlQAQEB X-IPAS-Result: A0DDAQBjbUNXf0pWN0pcFoN3fQG8BSKCPYUmEAEBAQEBAQEBEQEBCwkLCSEvgi2CP4ELAiYCSQIBExuIJwQKoj+PYpF/gQGRMyuCLgWYN4YAileGfA6FWQKHeIdUN4IxHIFNbYlQAQEB X-IronPort-AV: E=Sophos;i="5.26,357,1459807200"; d="scan'208";a="178748513" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 May 2016 23:01:52 +0200 Received: from [172.20.10.2] (131.236.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch [178.197.236.131]) by smtp.webfaction.com (Postfix) with ESMTP id D70AF20A3C83 for ; Mon, 23 May 2016 21:01:48 +0000 (UTC) Date: Mon, 23 May 2016 23:01:45 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: OCaml List Message-ID: <61A649C2ACD24F2297F2FEC72F2969DF@erratique.ch> X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Caml-list] [ANN] Bos 0.1.0 Hello, I'd like to announce the first release of bos: ``` Bos provides support for basic and robust interaction with the operating system in OCaml. It has functions to access the process environment, parse command line arguments, interact with the file system and run command line programs. Bos works equally well on POSIX and Windows operating systems. Bos depends on Rresult, Astring, Fmt, Fpath, Logs and the OCaml Unix library. It is distributed under the ISC license. ``` Homepage: http://erratique.ch/software/bos API docs: http://erratique.ch/software/bos/doc/ Bos can be seen as improved Sys module for programs and scripts that have light OS interaction requirements. Inspired by the excellent work of scsh [0], it seems this path has been pursued more than once in OCaml for example with cash [1] or shcaml [2]. Bos however has a slightly different take on this. It does not try to recover the shell's terseness or processing model but rather tries to overcome the shell's brittleness in face of errors, error reporting and insane quoting conventions. The difference between a script and a program is an artificial one and bos tries to encourage you to write programs that do not fail obscurely and evolve gracefully from a quick, small one (a.k.a "script") to a complex one (a.k.a. "program") while keeping good usability for the end user who is the one who eventually gets processing failures in the face. This first version number is intentionally low, as I don't see bos as fully finished at the moment. Some interfaces could be tweaked and other added in the future (feedback and discussion on the issue tracker is welcome). I did however already write a few programs/scripts that make use of most of the features provided by the library, so the low number should not be interpreted as "alpha" quality software. What is provided here should work as described and if it doesn't, scream on the issue tracker. Best, Daniel [0] https://scsh.net/ [1] http://pauillac.inria.fr/cash/ [2] http://users.eecs.northwestern.edu/~jesse/code/shcaml/