From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p4REsVEJ027343; Fri, 27 May 2011 16:54:31 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApcCAP+5301KfVM2kGdsb2JhbAA+AQMShEmhaAgUAQEBAQkJDQcUBCGpRYtignOENYkbAQEDBoElg2yBBwSQQ4shO4EqghE X-IronPort-AV: E=Sophos;i="4.65,280,1304287200"; d="scan'208";a="100008744" Received: from mail-gw0-f54.google.com ([74.125.83.54]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 27 May 2011 16:54:25 +0200 Received: by gwb15 with SMTP id 15so1127754gwb.27 for ; Fri, 27 May 2011 07:54:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=5V0OmpAJCA6tr6oc8GdFDR2uGgsj0V+eA1kl+15MYW8=; b=UCWLjsppAGM625v2g7PJTVHlCsrXiTRV4D8uP+tnECzZZBZL/9i0wb4JmIyySXLr60 EBYUFbFzNlg7f43bx2qTxX/OaW93xZG6mSZWk+neKambDNcYDbrNZ0OlEQIynSl6GHWG ZbgX9lkFiNmxh48znSNtHU31tlaiIfe9RmEAM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=IeeA8wmgzwwNd7gUlcqoUP8PWqH3ZJRBj8FGibJnAHwGVJ+AAX18CJT/uc6tYpObWn EhYiFJxNrq4QSBVdNXTB8VUHyOGKtNRkTfxQH7GlIuzYH6fPGUBv5eKK4hPeGpIg1z4+ oeOIinUbgNIGDkt2ZWZ54hNHSMy4zwGx5tbYo= MIME-Version: 1.0 Received: by 10.146.179.23 with SMTP id b23mr2047594yaf.21.1306508064178; Fri, 27 May 2011 07:54:24 -0700 (PDT) Sender: daniel.c.buenzli@gmail.com Received: by 10.147.99.11 with HTTP; Fri, 27 May 2011 07:54:24 -0700 (PDT) Date: Fri, 27 May 2011 16:54:24 +0200 X-Google-Sender-Auth: -zBHppDI8PE9uCGwsbAOe2dk8wY Message-ID: From: =?UTF-8?Q?Daniel_B=C3=BCnzli?= To: caml-list@inria.fr, caml-hump@inria.fr Content-Type: text/plain; charset=UTF-8 Subject: [Caml-list] [ANN] Cmdliner 0.9.0 Hello, I grew tired of the Arg module. For a quick and easy way to make your functions available from the command line you may be interested in Cmdliner : Cmdliner is a module for the declarative definition of command line interfaces. It provides a simple and compositional mechanism to convert command line arguments to OCaml values and pass them to your functions. The module automatically handles syntax errors, help messages and UNIX man page generation. It supports programs with single or multiple commands (like darcs or git) and respect most of the POSIX and GNU conventions. Cmdliner is made of a single, independent, module and distributed under the BSD3 license. Project home page : http://erratique.ch/software/cmdliner The basics section of the documentation can be read as tutorial introduction: http://erratique.ch/software/cmdliner/doc/Cmdliner#basics Your feedback is welcome. Daniel P.S. The examples use syntactic constructs only available in 3.12 however I took care not to use them in the implementation of Cmdliner itself.