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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id 946277EE20 for ; Wed, 14 Nov 2012 19:17:40 +0100 (CET) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of martin.jambon@ens-lyon.org) identity=pra; client-ip=66.111.4.29; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="martin.jambon@ens-lyon.org"; x-conformance=sidf_compatible Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of martin.jambon@ens-lyon.org) identity=mailfrom; client-ip=66.111.4.29; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="martin.jambon@ens-lyon.org"; x-conformance=sidf_compatible Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@out5-smtp.messagingengine.com) identity=helo; client-ip=66.111.4.29; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="postmaster@out5-smtp.messagingengine.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtcBAJfeo1BCbwQdlGdsb2JhbABEhh29IyMBAQEBCQsJCRQEI4IeAQEFIxUIOAEBDwsYAgIFFgsCAgkDAgECAQ82Bg0BBQIBARAHh10DDwunWXCDTYVGDYlOAgSBIooiaQWFFIETiF2LTYdAhUeIIQ X-IronPort-AV: E=Sophos;i="4.83,252,1352070000"; d="scan'208";a="181523689" Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 14 Nov 2012 19:17:39 +0100 Received: from compute5.internal (compute5.nyi.mail.srv.osa [10.202.2.45]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id E11E620B8C; Wed, 14 Nov 2012 13:17:38 -0500 (EST) Received: from frontend1.nyi.mail.srv.osa ([10.202.2.160]) by compute5.internal (MEProxy); Wed, 14 Nov 2012 13:17:38 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:date:from:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; s=smtpout; bh=HEFUoFo+zHXGOXXDVGGodl vFwUM=; b=WfZQ5qTP9dSLaheYgpHetOSwc/U5amMueXJ3kaneLxWKV67FW0yHP4 Mhhc9dU4hC7oKFlXZ3mMQcbSTNK48HVW3A8HRZLU4dah5NMdj9jwYZVGQVBr7vAk K4tCUwNsEf5jHnkVNvE2eyKmbwi4U/a9rEwwU6A5jddpHbFGz2BS8= X-Sasl-enc: tRTE7qJ4kNjx3h461w2nBfDkArxibAZyD6jRdroprVGE 1352917058 Received: from [192.168.1.107] (unknown [50.76.32.210]) by mail.messagingengine.com (Postfix) with ESMTPA id 660008E0494; Wed, 14 Nov 2012 13:17:38 -0500 (EST) Message-ID: <50A3E041.6080906@ens-lyon.org> Date: Wed, 14 Nov 2012 10:17:37 -0800 From: Martin Jambon User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0 MIME-Version: 1.0 To: Marek Kubica CC: caml-list@inria.fr References: <20121114124355.7e8ca762@xivilization.net> <50A3ADC1.5090402@gmail.com> <20121114180012.68bf06df@xivilization.net> In-Reply-To: <20121114180012.68bf06df@xivilization.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] Preferred layout for new packages My current, personal preferences are the following: Use for in-house development: - omake - batteries (some of it) Avoid in new projects: - camlp4/camlp5 - ocamlbuild I'm glad for the many libraries and tools written by the community. They are all fine as long as they work and are: - maintained, unlikely to break anytime soon or easy to take over or replace; - not invasive. Martin On Wed 14 Nov 2012 09:00:12 AM PST, Marek Kubica wrote: > On Wed, 14 Nov 2012 09:42:09 -0500 > Edgar Friendly wrote: > >> The community is trying to standardize on Oasis, which generates >> ocamlbuild-based build systems. In the future, this may generate >> some other build system if a better one comes out. > > So OASIS it is. Fine. > >>> 2. Unit tests: I used OUnit which was okay, but maybe there are >>> better solutions? I've seen that there is Kaputt and I have seen >>> that there is https://github.com/camlunity/ocaml-quickcheck as well >>> as https://github.com/vincent-hugot/iTeML which was extracted from >>> batteries recently. >> iTeML is more of a test extraction framework, and builds on top of >> OUnit and a hacked version of the Jane St. quickcheck library. It >> can easily support other frameworks, and it would be interesting to >> explore a custom framework designed with iTeML in mind. > > I actually like test extraction frameworks, tools like nose and py.test > have made writing tests with Python much nicer, that's why I'm somehow > unimpressed how verbose OUnit is. But having the test code in a comment > seems ugly to me. Maybe there could be some CamlP4 hack to exclude it > on normal compilation? > >>> 3. Stdlib: I don't mind depending on batteries and/or core, are >>> there any reasons against? Especially in the unit tests it drove me >>> nuts that I wasn't able to display results without writing >>> printers, and I know batteries has at least a generic printer. >> Batteries' dump function is a terrible printer for anything beyond >> the most basic of purposes, just as the Pervasives.compare is also >> terrible. Batteries' printer combinators (`List.print Int.print >> stdout [1;2;3]`) are what I use for most purposes. > > That's a great hint, thanks! > > regards, > Marek >