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 784E97F61D for ; Thu, 27 Oct 2016 17:05:47 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gabriel.scherer@gmail.com; spf=Pass smtp.mailfrom=gabriel.scherer@gmail.com; spf=None smtp.helo=postmaster@mail-oi0-f67.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.218.67; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.218.67 as permitted sender) identity=mailfrom; client-ip=209.85.218.67; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-oi0-f67.google.com) identity=helo; client-ip=209.85.218.67; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-oi0-f67.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AsFouEBZ/rjlY7G9CyKWUvlL/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZpcm4bnLW6fgltlLVR4KTs6sC0LuM9f+5EjxYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZv?= =?us-ascii?q?IaytQ8iJ3p7xiLn5q8WbSj4LrQL1Wal1IhSyoFeZnegtqqwmFJwMzADUqGBDYe?= =?us-ascii?q?VcyDAgD1uSmxHh+pX4p8Y7oGwD884mosVJVKGyYr81V6cQWD8vNmRw4MzwqTHC?= =?us-ascii?q?SxGO7z0SSDNFvABPBl3q5RvgX5r1+hDxtudn1TPSacL/R6o1VDDk9KxrRQXlkg?= =?us-ascii?q?8IMjc49Cfcjckm3/ETmw6ouxEqm92cW4qSLvcrJq4=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DzAQCAFxJYZ0PaVdFcHgYMGAEFAQsBg?= =?us-ascii?q?n8BAQEBAR0eOn0HrHuLc4IHKIUxgkEHPxQBAQEBAQEBAQEBARILCwsHHTKCMxi?= =?us-ascii?q?CMBEEGQEbHgMSEA8CJgIkAREBBQEiGwwOiBcBAxcOoxGCCIEyPzKLRoFrgl8Fg?= =?us-ascii?q?2YKGScNU4MYDB0CBhB3hTaMIIJbBZoWgWiERYMIhm6CPI1GAokahjATHoERHoE?= =?us-ascii?q?HgxqCGSI0AYheAQEB?= X-IPAS-Result: =?us-ascii?q?A0DzAQCAFxJYZ0PaVdFcHgYMGAEFAQsBgn8BAQEBAR0eOn0?= =?us-ascii?q?HrHuLc4IHKIUxgkEHPxQBAQEBAQEBAQEBARILCwsHHTKCMxiCMBEEGQEbHgMSE?= =?us-ascii?q?A8CJgIkAREBBQEiGwwOiBcBAxcOoxGCCIEyPzKLRoFrgl8Fg2YKGScNU4MYDB0?= =?us-ascii?q?CBhB3hTaMIIJbBZoWgWiERYMIhm6CPI1GAokahjATHoERHoEHgxqCGSI0AYheA?= =?us-ascii?q?QEB?= X-IronPort-AV: E=Sophos;i="5.31,553,1473112800"; d="scan'208";a="198396590" Received: from mail-oi0-f67.google.com ([209.85.218.67]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 27 Oct 2016 17:05:20 +0200 Received: by mail-oi0-f67.google.com with SMTP id e12so4990458oib.3 for ; Thu, 27 Oct 2016 08:05:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=1JedOWAenfSfW0KyGWtOHWAeUGDN7K7iHF8Qk38VWMk=; b=QbM30wg0tJlJbEgN86qSpcsU30NnGufn5QMix5LJp3Tf7BtqRCwZma76TX1vARDU39 Ix+wQSZ4I8koBsKKnYcWpcl/BfsQ7LcxNbkxQYo6iQ2fToRdTy42BP/gjpviatp3fI3z Wxh/ToRnZMYhw/1VxZmjBaXYHwITjMLKGf6fs5ucafKZH1CkSt4Qyb9DrViho+s+3wgW gd0lPYRPgahvnwFFdzpImUX6THmBvpgu/taFUWfOZdMaSMIX5ny/MgpAnML1NozkTLzn mqdyAm6qM6V105xf0l+EwlyPY5HmPdd7Rg2O8gB9SUzkhVlYUWrjPvB8mZZI3hRpp6Wi t8DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=1JedOWAenfSfW0KyGWtOHWAeUGDN7K7iHF8Qk38VWMk=; b=juKnI8igZN8GLBjGD84hpmQwnTcGjcGEwsMVDLr4wx1uJOCYeA/FyOgWtOrKxBFb7l SD14OELf/6VL8sTp9CClU3EFGnAQqQ0Ebo9TJufdh+alVhFGmkQu/OLIani5cQ486yOx If3CrvGuFuf2mG8t/4VgopMsMepu/RKJvRw7EhC6pQgbCIjcya4EkCwHl1tWMlYZ77y6 m/uGkbXhEGBNnRYaZKT/OPn9t0nNk91NwUBrVD2ey/fm37UF5JIyDDQPw0LVkZnEtXtf F48JCWI1v6ksq5JXtDSQNn1kq5LAeWpcgW8g3QQwR15qiGMUsmfv50BiuZ8YbsLRfjrn 81WQ== X-Gm-Message-State: ABUngvezcwrsf13/JQ7nhcgnSI0LAhjCgG22oP/7I319fn611QWxbYO3b5dg23J3WlNgp82OOlewWyr/mxbuFw== X-Received: by 10.36.103.201 with SMTP id u192mr6716892itc.3.1477580718913; Thu, 27 Oct 2016 08:05:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.30.129 with HTTP; Thu, 27 Oct 2016 08:04:38 -0700 (PDT) From: Gabriel Scherer Date: Thu, 27 Oct 2016 11:04:38 -0400 Message-ID: To: caml users Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Caml-list] [ANN] ocamlbuild 0.9.3 Hi caml-list, ## ocamlbuild 0.9.3 ocamlbuild 0.9.3 is a minor release that introduces several features contributed or requested by users. - #39: new ".o -> .clib" rule to build libraries out of single C stubs (Gabriel Scherer, request by whitequark) - #78: Integrate the in-progress OCamlbuild manual, previously located at https://github.com/gasche/manual-ocamlbuild into the ocamlbuild repository, in the manual/ subdirectory. The most current version of the manual can thus be accessed at https://github.com/ocaml/ocamlbuild/tree/master/manual/manual.adoc (Gabriel Scherer) - #93: added "noassert" and "unsafe" flag for corresponding ocaml{c,opt} op= tions (Fran=C3=A7ois Pottier) - #94: added "cc", "cclib", and "ccopt" flags which correspond to the respective ocaml{c,opt} options (Rudi Grinberg) - PR#7295: add infer_interface support for various type-checking-time flags: color, keep_docs, no_alias_deps, nolabels, nopervasives, open, strict_formats, strict_sequence, warn, warn_error (Gabriel Scherer, report by Knuth Posern) ## Development and stuff I haven't been able to devote a lot of personal time to ocamlbuild hacking in the last year, which means that there has been no new ambitious features in sight (not that there are any very specific plans on that front) and that some bugs that have been reported are still open for kind external contributors to propose a fix for (feel free to have a look at the bugtracker at https://github.com/ocaml/ocamlbuild/issues ). On the other hand, quick-to-fix issues and clean external patches get merged rather quickly. They have been several interesting ocamlbuild-related active projects lately, which you may be interested in, in no particular order: - Namespaces, from Anton Bachin, is an Ocamlbuild plugin that turns directories in your source tree into scoped OCaml modules. https://github.com/aantron/namespaces ("Namespaces" is a very overladed word, this work is about turning filesystem directory structure into logical module path structure; if you are looking for other kinds of namespace work within the OCaml community, you may enjoy some old defunct proposal at http://gallium.inria.fr/blog/namespace-archeology/ ) - Sylvain Le Gall recently added omake support to OASIS. If the only reason you put up with ocamlbuild is because you are an OASIS user, you may want to have a look at omake, a project that used to be sleeping but is now maintained by Gerd Stolpmann https://github.com/ocaml-omake/omake http://projects.camlcity.org/projects/omake.html - Solvuu-build, from Ashish Agarwal, is a build system, currently implemented on top of ocamlbuild, that innovates on two separate front. First, it allows you to describe your build-system logic entirely within a single ocaml file (ocamlbuild's information tends to be more spread out with _tags, myocamlbuild.ml, foo.mllib files etc.). Second, it is not only a build system as it also does project scaffolding by generating a .merlin file, and a foo.install file for OPAM. I would be very happy to have the "pure OCaml-level API" part at least merged into ocamlbuild proper, giving an alternative way for users to specify their build, but that requires some non-trivial changes to the ocamlbuild codebase that nobody volunteered to implement yet. - The (over-)consonantly named ocb-stubblr plugin from David Kaloper brings more advanced logic to build C stubs, for example using pkg-config. (It claims to be only 10 lines of code, but it's actually more than 200). It is not the first ruleset to provide in this space ( one may remember ocamlbuild-ctools from http://dvide.com/labs/ocamlbuild-ctools/ ), but to my knowledge it is the first to be distributed as a reusable ocamlbuild plugin library (plugin library support was only introduced in OCaml 4.01 in 2013). https://github.com/pqwy/ocb-stubblr There is a fair amount of experimentation around ocamlbuild plugins, but so far relatively few of their authors have tried to contribute reusable bits and pieces upstream. Contributions, from plugin authors or interested bystanders, are warmly welcome. Cheers