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.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id BC281BBAF for ; Tue, 2 Dec 2008 12:27:19 +0100 (CET) X-IronPort-AV: E=Sophos;i="4.33,701,1220220000"; d="scan'208";a="17866145" Received: from concorde.inria.fr ([192.93.2.39]) by mail2-smtp-roc.national.inria.fr with ESMTP; 02 Dec 2008 12:27:19 +0100 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id mB2BRJD8026338 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 2 Dec 2008 12:27:19 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmUBAMuqNEnUGyokkWdsb2JhbACTTAEBAQEJCwoHEQO+B4J9 X-IronPort-AV: E=Sophos;i="4.33,701,1220220000"; d="scan'208";a="20656048" Received: from smtp6-g19.free.fr ([212.27.42.36]) by mail1-smtp-roc.national.inria.fr with ESMTP; 02 Dec 2008 12:27:19 +0100 Received: from smtp6-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp6-g19.free.fr (Postfix) with ESMTP id DEE0419700; Tue, 2 Dec 2008 12:27:18 +0100 (CET) Received: from [82.243.25.161] (cac94-7-82-243-25-161.fbx.proxad.net [82.243.25.161]) by smtp6-g19.free.fr (Postfix) with ESMTP id 0E7C4196F4; Tue, 2 Dec 2008 12:27:12 +0100 (CET) Message-ID: <49351B89.3080208@doomeer.com> Date: Tue, 02 Dec 2008 12:27:05 +0100 From: DooMeeR User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: =?ISO-8859-1?Q?Daniel_B=FCnzli?= Cc: OCaml List Subject: Re: [Caml-list] ocamlbuild rule with recursive action References: <34C5E0E0-6C71-40C2-8AC6-46B619710F32@erratique.ch> In-Reply-To: <34C5E0E0-6C71-40C2-8AC6-46B619710F32@erratique.ch> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Miltered: at concorde with ID 49351B97.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; recursive:01 bunzli:01 22.:98 rec:01 rec:01 caml-list:01 define:02 define:02 nop:02 toto:02 toto:02 env:03 env:03 let:03 daniel:04 Daniel Bünzli a écrit : > Hello, > > Is it possible to define a rule with an action that is performed > repeatedly until a condition is reached ? > > Best, > > Daniel Well, you can define a rule like this : rule ~prod: "%.rec" (fun env build -> let x = env "%2.rec" in (* a new fresh name *) if some condition then build x else Nop) When your rule is executed, for exemple to produce "toto.rec", it will (if some condition) first produce "toto2.rec", which will produce "toto22.rec", and so on until some condition is false. I didn't try it though. -- Romain Bardou