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 576EF800DB for ; Wed, 8 Mar 2017 18:53:50 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=jdimino@janestreet.com; spf=Pass smtp.mailfrom=jdimino@janestreet.com; spf=None smtp.helo=postmaster@mxout3.mail.janestreet.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jdimino@janestreet.com) identity=pra; client-ip=38.105.200.229; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of jdimino@janestreet.com designates 38.105.200.229 as permitted sender) identity=mailfrom; client-ip=38.105.200.229; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.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@mxout3.mail.janestreet.com) identity=helo; client-ip=38.105.200.229; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="postmaster@mxout3.mail.janestreet.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3ABRAGxxSqBVrU23dEdPvijz5s/9psv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa6zZhSN2/xhgRfzUJnB7Loc0qyN4v2mBTBLuM7b+Fk5M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6?= =?us-ascii?q?KfroEYDOkcu3y/qy+5rOaAlUmTaxe71/IRG2oAnLucQbjoRuJrstxhfXv3BFZ/?= =?us-ascii?q?lYyWR0KFyJgh3y/N2w/Jlt8yRRv/Iu6ctNWrjkcqo7ULJVEi0oP3g668P3uxbD?= =?us-ascii?q?SxCP5mYHXWUNjhVIGQnF4wrkUZr3ryD3q/By2CiePc3xULA0RTGv5LplRRP0lC?= =?us-ascii?q?sKMSMy/WfKgcJyka1bugqsqRxxzYDXfY+bKuZxc7jBfd8GX2dNQtpdWzBDD466?= =?us-ascii?q?coABD/ABPeFdr4Tlo1UBswG+ChepBOPu1DBDm3H43aw/0+QgFwHG2xErEtUMsH?= =?us-ascii?q?vJrdX1MaYSUeayzKTTzzXMdfVW1inm6IjUaBAuv++DXa5qfcXNzkkvEhrIg1ON?= =?us-ascii?q?ooLrODOV0/4Cs2md7+d4UOKgkWgnqxxrrTir3MssjZPJho0NxlDL9CV53IY1Jc?= =?us-ascii?q?CjR0JhfdGkF55QuzmHOItsQ8MiXX9nuDwgxr0Hv562ejUBxpc/xxPHZfGKcJKE?= =?us-ascii?q?7g//WOuROzt0mm5pdK6lixqs70StzvXwWteo3FtOtCZIkdnBumoT2xDO6sWLUP?= =?us-ascii?q?lw8lun1D2SzQ7c8PtELloxlafDK54u3Lowlp0LvETGES72n1j2jLOYe0k+/+in?= =?us-ascii?q?8eXnYrH8qp+eLYB0jB/xMr8ymsylH+s3LBQOU3KH9uS70b3v5Uz5QLNUgf0qiq?= =?us-ascii?q?TUvpPXKd4GqqKlAwJZyJgv5wqjAzu8ztgUg30KIEpAeB2djojpP1/OIOr/Dfe6?= =?us-ascii?q?m1mskipkx/HDPr3gBJXNKWPOkLX7crZ79UFc0xYzzcpB6J1KFrENOu78Wkj0tN?= =?us-ascii?q?DAFB82LxS0w/r7CNV6zo4RRXiAAqqdMK/LtV+I5/kvI/WXaY8OuDf9LuAl6OT0?= =?us-ascii?q?gX84n18dZ6ip0oENZHC2BPQ1a3meNDDni9IFVGMLpRYWTerwiVTEXyQZLyK5Vq?= =?us-ascii?q?c4ozU6E56ODIHZR4nrjqbXmG/xGZZfY2QDAVeWHF/ncIKLX/oDciWPOtQnmTsB?= =?us-ascii?q?H/D1TIQo0BXrvwjgxpJoKe3b/iAXr5X+zMMz7OrWw0Ic7ztxWuaQyWyITmw8sm?= =?us-ascii?q?INRjkxlPR9rU14y1GE+apxhfFDCcZe6u8PWQA/Y82Ph9dmAsz/D1qSNuyCT0yr?= =?us-ascii?q?F42r?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CbAABiRMBYfeXIaSZehGKBCgeDWYp/n?= =?us-ascii?q?ViIOYINKogzBz8YAQEBAQEBAQEBAQESAQEJFghXgjMggmwdAQE4JQ8CJgIkEgE?= =?us-ascii?q?FASIBK4lmAwukBD+LG2iCJoMIAQEFh28BAQgBAQEBAQEBGQgSeYVDjEmCX4kfk?= =?us-ascii?q?xyGdoMoiBqCTo5QApF3FB6BFR92RSIVCBcVPxcFhjh1ihMBAQE?= X-IPAS-Result: =?us-ascii?q?A0CbAABiRMBYfeXIaSZehGKBCgeDWYp/nViIOYINKogzBz8?= =?us-ascii?q?YAQEBAQEBAQEBAQESAQEJFghXgjMggmwdAQE4JQ8CJgIkEgEFASIBK4lmAwukB?= =?us-ascii?q?D+LG2iCJoMIAQEFh28BAQgBAQEBAQEBGQgSeYVDjEmCX4kfkxyGdoMoiBqCTo5?= =?us-ascii?q?QApF3FB6BFR92RSIVCBcVPxcFhjh1ihMBAQE?= X-IronPort-AV: E=Sophos;i="5.36,265,1486422000"; d="scan'208";a="216060284" Received: from mxout3.mail.janestreet.com ([38.105.200.229]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Mar 2017 18:53:49 +0100 Received: from tot-qpr-mailcore1.delacy.com ([172.27.56.68] helo=tot-qpr-mailcore1) by mxout3.mail.janestreet.com with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.84_2) (envelope-from ) id 1clfmU-0003BF-RW for caml-list@inria.fr; Wed, 08 Mar 2017 12:53:46 -0500 X-JS-Flow: external X-JS-Scanner-attachment: (ok) No attachments Received: by tot-qpr-mailcore1 with JS-mailcore (0.1) (envelope-from ) id BYwEUq-AAADHw-ad; 2017-03-08 12:53:46.848152-05:00 Received: from mail-lf0-f70.google.com ([209.85.215.70]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1.2:AES128-GCM-SHA256:128) (Exim 4.84_2) (envelope-from ) id 1clfmU-00011u-Ml for caml-list@inria.fr; Wed, 08 Mar 2017 12:53:46 -0500 Received: by mail-lf0-f70.google.com with SMTP id y193so25030583lfd.3 for ; Wed, 08 Mar 2017 09:53:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=UBWfVvjwaXuvH+V/VYevYTHjAXUlhzI7IBZmzR8d5KE=; b=GFefb0DRM2mGdekpU1lw5Ho1TmJ0q0Vtg9iW1caTZOlM0OOhEx1DbP0WOzL/zZuT07 0DWuDLqrBfKRNmjCjmg7+iEed20Bd6eXmig7LBbRux+9cgGXKq3IEFbUfFx5zHlh9R3a FOIczbaHMIPEf6SnzuGmYDzQjRzhes3CaySF0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=UBWfVvjwaXuvH+V/VYevYTHjAXUlhzI7IBZmzR8d5KE=; b=MSJ75amirg8ZDxdKinzt3rsbNmDH6UvNvZPAQmkHoSga6rDzp7r8A7XvP13C3wVj5Q QriA/rE0IYCyT9xl5LO0h92t/BMssAMaHLwTLBPH1RgcREL0VdgeD7L2j5Hv0CrWpoFK 0EHC0STQ92gTyB+Ab1Qy+3st0/HuhwxURlfqHcbde6WQFIGWTeyERgFlbHwn2sl0GSUb DprjisUVpf4UFj+6Wy07ybjkf1LTwkMx2dFSDys9zRXMNzZpUcIDu2tv417Om6xjBdkr jPDxp+IPEJAeQdr7QuFh9JRBI0CpTNOl1CrZij3nAwcoexDcCrryh1f+faqWDKFMh9dr 13iA== X-Gm-Message-State: AMke39nLaYDFZORCUilwW2Mj+pxfjqUQ5IJBxSojnD3xxp5o9nafIgHIULSLeLa+YkHCV6HatUpzeGTeH4Ekfj8MrOVPWGO7wC/pdXZ7gcF6hpgTcSpdzOT4oiYP9ZOa4gw62js8Fy0LNpXEqpTC X-Received: by 10.46.0.5 with SMTP id 5mr2685534lja.35.1488995625638; Wed, 08 Mar 2017 09:53:45 -0800 (PST) X-Received: by 10.46.0.5 with SMTP id 5mr2685526lja.35.1488995625396; Wed, 08 Mar 2017 09:53:45 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.163.204 with HTTP; Wed, 8 Mar 2017 09:53:44 -0800 (PST) From:Jeremie Dimino Date: Wed, 8 Mar 2017 17:53:44 +0000 Message-ID: To:"caml-list@inria.fr" , "ocaml-core@googlegroups.com" Content-Type: text/plain; charset=UTF-8 X-JS-Processed-by: mailcore Subject: [Caml-list] [ANN] Jbuilder 1.0+beta1 Hi, I'm pleased to annouce the 1.0+beta1 release of Jbuilder. Jbuilder is a build system targetting OCaml projects and opam. It uses the same model as what is used at Jane Street: users write simple "jbuild" files to describe their libraries and executables and Jbuilder takes care of the rest. You don't need to know much about OCaml compilation to use Jbuilder. Jbuilder comes with a manual [1] and a quick start guide [2] showing common patterns. Jbuilder can be installed via opam: $ opam install jbuilder $ less `opam config var doc`/jbuilder/manual.org Jbuilder is developed primarily on github [3] and contributions are welcome. Interesting features ==================== I think it is worth mentioning the following features of Jbuilder, that should make the everyday life of an OCaml hacker easier: jbuilder exec ----------------------- This will run in an environment where it has access to the binaries, libraries, manual pages, ... previously built and that are to be installed. This is convenient for testing things in the toplevel before installing them for instance. jbuilder external-lib-deps --missing ---------------------------------------------- This will list all the external library dependencies required to build , so that you have to run only one "opam install" command instead of installing dependencies one by one until the build succeed. building against several versions of OCaml at once -------------------------------------------------- This is useful for locally testing that a project builds against all supported versions of OCaml: $ cat > jbuild-workspace < 1= - Generate a log in =_build/log= - Versioned the jbuild format and added a first stable version. You should now put =(jbuilder_version 1)= in a =jbuild= file at the root of your project to ensure forward compatibility - Switch from =ppx_driver= to =ocaml-migrate-parsetree.driver=. In order to use ppx rewriters with Jbuilder, they need to use =ocaml-migrate-parsetree.driver= - Added support for aliases (#7, Rudi Grinberg) - Added support for compiling against multiple opam switch simultaneously by writing a =jbuild-worspace= file - Added support for OCaml 4.02.3 - Added support for architectures that don't have natdynlink - Search the root according to the rules described in the manual instead of always using the current directory - extended the action language to support common actions without using a shell: + =(with-stdout-to )= + =(copy )= ... - Removed all implicit uses of bash or the system shell. Now one has to write explicitely =(bash "...")= or =(system "...")= - Generate meaningful versions in =META= files - Strengthen the scope of a package. Jbuilder knows about package =foo= only in the sub-tree starting from where =foo.opam= lives Notes ===== Jbuilder was released in opam today, and since then I got reports that it often chooses the wrong "root". The rules for finding the root of the current workspace will have to be changed for the 1.0 release. In the meantime, you can force the compilation root by writing a jbuild-workspace containing "(context default)" where you want the root to be. [1] https://github.com/janestreet/jbuilder/blob/master/doc/manual.org [2] https://github.com/janestreet/jbuilder/blob/master/doc/quick-start.org [3] https://github.com/janestreet/jbuilder -- Jeremie Dimino