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.1 required=5.0 tests=AWL,DNS_FROM_SECURITYSAGE autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id F3ABABBAF for ; Tue, 18 Nov 2008 13:56:52 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmoBAGtKIknCpx6wmWdsb2JhbACTWQEBAQEBCAsKBxG+MYJ5 X-IronPort-AV: E=Sophos;i="4.33,625,1220220000"; d="scan'208";a="20080210" Received: from smtpmin.univ-orleans.fr (HELO min.univ-orleans.fr) ([194.167.30.176]) by mail1-smtp-roc.national.inria.fr with ESMTP; 18 Nov 2008 13:56:52 +0100 Received: from smtps.univ-orleans.fr (localhost [127.0.0.1]) by min.univ-orleans.fr (Postfix) with ESMTP id 53E3712B4ED; Tue, 18 Nov 2008 13:56:52 +0100 (CET) Received: from [192.168.0.12] (ras75-4-82-235-58-110.fbx.proxad.net [82.235.58.110]) by smtps.univ-orleans.fr (Postfix) with ESMTP id 847B436E60; Tue, 18 Nov 2008 13:56:53 +0100 (CET) Subject: Re: [Caml-list] Wanted: your feedback on the hierarchy of OCaml Batteries Included From: David Teller To: Richard Jones Cc: Daniel =?ISO-8859-1?Q?B=FCnzli?= , OCaml List In-Reply-To: <20081118123231.GA15110@annexia.org> References: <1227002178.6170.25.camel@Blefuscu> <20081118100625.GA25627@annexia.org> <421532A1-E2CA-404F-8387-E11DA9B3DE79@erratique.ch> <1227010539.6170.72.camel@Blefuscu> <20081118123231.GA15110@annexia.org> Content-Type: text/plain Date: Tue, 18 Nov 2008 13:56:53 +0100 Message-Id: <1227013013.6170.113.camel@Blefuscu> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ocaml:01 univ-orleans:01 ocaml:01 lablgtk:01 ifdef:01 lablgtk:01 gmisc:01 gmisc:01 camlp:01 camlp:01 ifdef:01 cheers:01 univ-orleans:01 lifo:01 liquidations:98 On Tue, 2008-11-18 at 12:32 +0000, Richard Jones wrote: > API changes are handled really badly in OCaml, ironically because of > the lack of a textual preprocessor. You can't just write this every > time lablgtk / calendar / latest culprit decides to change their API: > > #ifdef LABLGTK < 210 > let icon = GMisc.image () in > icon#set_stock icon_type ~size:size; > icon > #else > let icon = GMisc.image () in > icon#set_stock `DIALOG_ERROR; > icon#set_icon_size `DIALOG; > icon > #endif Side-note: That's certainly something we could add to Batteries, if needed. Camlp4 is pretty-much necessary to use Batteries anyway and Camlp4 already defines IFDEF, INCLUDE, etc. We would just need to complete that DSL perhaps to accept any valid OCaml expression and call the ocaml interpreter to evaluate these expressions. Cheers, David -- David Teller-Rajchenbach Security of Distributed Systems http://www.univ-orleans.fr/lifo/Members/David.Teller Angry researcher: French Universities need reforms, but the LRU act brings liquidations.