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 DEE827EE20 for ; Wed, 14 Nov 2012 15:42:11 +0100 (CET) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of thelema314@gmail.com) identity=pra; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="thelema314@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of thelema314@gmail.com designates 209.85.223.182 as permitted sender) identity=mailfrom; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="thelema314@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ie0-f182.google.com) identity=helo; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="postmaster@mail-ie0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvoBAPKro1DRVd+2mGdsb2JhbABEwzQIIwEBAQEBCAkNBxQngh4BAQU4CAEbHAIDDAYFCw0JFg8JAwIBAgEREQEFARwTCAEBEAeHXAEDDwucUIwzgniEeAoZJw1ZiHUBAQQMjCEFgwCDJwOIWo0ihWuIdz+ELw X-IronPort-AV: E=Sophos;i="4.83,250,1352070000"; d="scan'208";a="181487087" Received: from mail-ie0-f182.google.com ([209.85.223.182]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 14 Nov 2012 15:42:11 +0100 Received: by mail-ie0-f182.google.com with SMTP id k10so1274281iea.27 for ; Wed, 14 Nov 2012 06:42:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=9wUXqWzWp07afdkofjeTjq10mGxzAAB5AjQkMGzVvT0=; b=CxlBjaE/r4zrbacXw1J+Iqpzvdjjz4tCHkiTsnAshWkUvePzv9qzhUJwudwmjKqpOW 5xbFttuGauHL43QN/HxvD4xQ85c4mQeMPsE31jce8t/OB2zTwairtMtFrAqIwMDrxsrs yk1ICK/V/VDjFRa5aRjAiXf5Exiw87Va1X03/d5i8vXDTD9O4R/L8G3MdIKlYlTB0FQi eCk5pgODh29XsUdH1w+xuTrdYILvHphVJNPZWwqj5suvyZg3nB3VPdM0IBImicsXNAT3 VG+5jVaSzFbgrqQY/YgOMrsDu+PIbcecT1LUoTFAEbToFDpZbzYjG4W92tQjlVOXLJjd lYEw== Received: by 10.50.76.195 with SMTP id m3mr2003690igw.64.1352904129824; Wed, 14 Nov 2012 06:42:09 -0800 (PST) Received: from [192.168.1.73] (99-121-78-10.lightspeed.lnngmi.sbcglobal.net. [99.121.78.10]) by mx.google.com with ESMTPS id s20sm1385098igs.10.2012.11.14.06.42.08 (version=SSLv3 cipher=OTHER); Wed, 14 Nov 2012 06:42:09 -0800 (PST) Message-ID: <50A3ADC1.5090402@gmail.com> Date: Wed, 14 Nov 2012 09:42:09 -0500 From: Edgar Friendly User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 MIME-Version: 1.0 To: caml-list@inria.fr References: <20121114124355.7e8ca762@xivilization.net> In-Reply-To: <20121114124355.7e8ca762@xivilization.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] Preferred layout for new packages On 11/14/2012 6:43 AM, Marek Kubica wrote: > Hi, > > I'm kinda new to the OCaml eco system and therefore a bit confused on a > number of issues: > > 1. Build system: what to use? I have tried OMake some time ago and > liked the automatic recompilation, but writing the OMakefiles was quite > awful and it does not seem popular. What is the state of the art > solution? 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. > 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. > 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. E.