From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.4 required=5.0 tests=AWL,SPF_SOFTFAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 09156BB84 for ; Mon, 24 Nov 2008 20:13:23 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At8CAIuLKknAXQIngWdsb2JhbACTXgEBFiK+EYJ8 X-IronPort-AV: E=Sophos;i="4.33,660,1220220000"; d="scan'208";a="31781783" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 24 Nov 2008 20:13:22 +0100 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id mAOJDM63003589 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 24 Nov 2008 20:13:22 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At4AAIuLKknVuj7VnGdsb2JhbACTXgEBAQEBCAsICRG+EYJ8 X-IronPort-AV: E=Sophos;i="4.33,660,1220220000"; d="scan'208";a="17556072" Received: from 30.mail-out.ovh.net ([213.186.62.213]) by mail2-smtp-roc.national.inria.fr with SMTP; 24 Nov 2008 20:13:22 +0100 Received: (qmail 23801 invoked by uid 503); 24 Nov 2008 19:13:06 -0000 Received: from gw2.ovh.net (HELO mail422.ha.ovh.net) (213.251.189.202) by 30.mail-out.ovh.net with SMTP; 24 Nov 2008 19:13:06 -0000 Received: from b0.ovh.net (HELO queue-out) (213.186.33.50) by b0.ovh.net with SMTP; 24 Nov 2008 19:13:22 -0000 Received: from ip-183.net-82-216-1.versailles2.rev.numericable.fr (HELO ?192.168.0.12?) (forum%x9c.fr@82.216.1.183) by ns0.ovh.net with SMTP; 24 Nov 2008 19:13:20 -0000 Message-Id: From: "forum@x9c.fr" To: caml-list@inria.fr In-Reply-To: <87tz9xt6bb.fsf@aryx.cs.uiuc.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Apple Message framework v929.2) Subject: Re: [Caml-list] [ANN] Kaputt 1.0 alpha Date: Mon, 24 Nov 2008 20:13:19 +0100 References: <8D0DD4BD-CCA5-4640-84E4-5F14F0804035@x9c.fr> <20081123213044.GA32214@usha.takhisis.invalid> <1227482073.4929e3d999bca@imp.ovh.net> <87tz9xt6bb.fsf@aryx.cs.uiuc.edu> X-Mailer: Apple Mail (2.929.2) X-Ovh-Tracer-Id: 18217060492809929504 X-Ovh-Remote: 82.216.1.183 (ip-183.net-82-216-1.versailles2.rev.numericable.fr) X-Ovh-Local: 213.186.33.20 (ns0.ovh.net) X-Miltered: at concorde with ID 492AFCD2.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; zacchiroli:01 zack:01 ocaml:01 haskell:01 rjmh:01 ocaml:01 functors:01 combinators:01 combinators:01 1.0:98 clones:98 janet:98 calibrate:98 sourceforge:01 caml-list:01 Le 24 nov. 08 =E0 17:52, Yoann Padioleau a =E9crit : > forum@x9c.fr writes: > > Hi Xavier, > >> Selon Stefano Zacchiroli : >> >>> (...) >> >> I was indeed aware of oUnit when I started working on Kaputt. >> The initial intent was to provide OCaml with something along >> the lines of the QuickCheck library developed for Haskell >> (http://www.cs.chalmers.se/~rjmh/QuickCheck/). Clones of QuickCheck >> exist for various languages (caml-list@inria.fr) but not for OCaml, > > Actually I posted a few years ago a small module imitating parts of =20= > quicheck: > > http://aryx.kicks-ass.org/~pad/ocaml/quickcheck.ml Sorry, I failed to remember this. > Apparently they even now use my ugly file in the Janet Street Core =20 > Library. > > >> even if a QuickCheck equivalent is provided by the Reins library >> (http://ocaml-reins.sourceforge.net/). > > I didn't find much in this ocaml reins library ... and it > looks quite heavy in functors ... Yes, I indeed wanted to rely upon functions/combinators instead. It seems lighter this way. > Your library looks very good, very clean. I just noticed you missed > the 'pair' and 'tuple' random generators. Well, maybe their names are not intuitive but Generator.zip{1..5} allows to combine n generators into a generator returning tuples of order n (zip1 being the identity function). > One criticism is that like many other libraries, such as oUnit, > ocamlcalendar, they seem a little bit heavyweight. You got hundreds > of functions, 5 modules ... That's true but it seems hard to have a combinator-based library with few functions/combinators. With too few combinators, you leave too much work to the developer (including a lot a boilerplate code). With too many combinators, you request the developer to take more time in order to use the library. I find it hard to calibrate the size =20= of the library. Maybe things could be done in a lighter way by using objects ? Xavier