From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 9D9757EC6E for ; Sat, 18 Jan 2014 10:29:29 +0100 (CET) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.214.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.214.54 as permitted sender) identity=mailfrom; client-ip=209.85.214.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-bk0-f54.google.com) identity=helo; client-ip=209.85.214.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-bk0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnADADpI2lLRVdY2lGdsb2JhbAA/GoNDVqhFkmaBAAgWDgEBAQEHCwsJEiqCJQEBAQICQAEbEgsBAwgEBgULAwMEAQEBDRoHIQEBEQEFAQoBCQgGExIIh1YBAxENNpsnjFyDCZI6ChknAwpkhHIRAQUMjF+BYTMHBoQyBJQ7gXqBbIExiyuDThgphFo7 X-IPAS-Result: AnADADpI2lLRVdY2lGdsb2JhbAA/GoNDVqhFkmaBAAgWDgEBAQEHCwsJEiqCJQEBAQICQAEbEgsBAwgEBgULAwMEAQEBDRoHIQEBEQEFAQoBCQgGExIIh1YBAxENNpsnjFyDCZI6ChknAwpkhHIRAQUMjF+BYTMHBoQyBJQ7gXqBbIExiyuDThgphFo7 X-IronPort-AV: E=Sophos;i="4.95,679,1384297200"; d="scan'208";a="45262046" Received: from mail-bk0-f54.google.com ([209.85.214.54]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 18 Jan 2014 10:29:28 +0100 Received: by mail-bk0-f54.google.com with SMTP id u14so1979944bkz.27 for ; Sat, 18 Jan 2014 01:29:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=suOE8lxbnCaDxd2OzEkQveKaBVvOKoeC1saAQbjAm5U=; b=l8C32/7kPLBDth77Kel4F2MXx1ZDzSO79FYMhxol+OweflyVj+Ot3K9JR0e0MR1UiK 6Xw3UFXIJ4vPQjudxtT2vG+6sdgMVKZ2PJlxwMffb+lSdrdiBeN8rf5q+yWsS82dgxat CGdnWX32MoFWzcf1fuWtw/Dz3a5xYIsCbCCAC7f/faLyf3AziQnRF4V5BmkmJDHM9mI2 JAKXxRn5RpqOFtfe0Euky8MK/unVNV/2w1XYQ8tPCsFv3SF9USkI96cFO92zr8jkuXct 8CLr+WJKD4TB8j5BnhC8Bxclqi7IxYpR9GtWkV8C9Gpmyjmrcunt/jRbijDjy8Vce0xr G82A== X-Received: by 10.205.36.81 with SMTP id sz17mr3522818bkb.29.1390037368113; Sat, 18 Jan 2014 01:29:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.205.45.5 with HTTP; Sat, 18 Jan 2014 01:28:47 -0800 (PST) In-Reply-To: References: <2112632769.281907.1389913202532.open-xchange@communicator.strato.de> <0290505B-A21A-4A05-A1C9-4C5F765DFEB5@math.nagoya-u.ac.jp> <02b301cf13e5$bdd11af0$397350d0$@ffconsultancy.com> From: Gabriel Scherer Date: Sat, 18 Jan 2014 10:28:47 +0100 Message-ID: To: David Allsopp Cc: OCaML List Mailing Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] ocaml considered dangerous No, it does not. It makes the printf codebase easier to work with (if you know your GADTs), but lately the tendency has rather been to hope for *less* complex stuff in formats, rather than more. On Sat, Jan 18, 2014 at 10:11 AM, David Allsopp wr= ote: > Does this new version fix positional specifiers? (http://caml.inria.fr/ma= ntis/view.php?id=3D4204) or has that rather useful (if never working!) feat= ure been consigned to history? > >> -----Original Message----- >> From: caml-list-request@inria.fr [mailto:caml-list-request@inria.fr] On >> Behalf Of Gabriel Scherer >> Sent: 18 January 2014 07:05 >> To: Jeremy Yallop >> Cc: Jon Harrop; Jacques Garrigue; OCaML List Mailing >> Subject: Re: [Caml-list] ocaml considered dangerous >> >> I guess one could also mention that the no-magic implementation is notab= ly >> faster than the current implementation (as it avoids any format string >> parsing at runtime), which is not necessarily a concern for printf (for >> large output you're probably killed by I/O overhead >> anyway) but can be for sprintf or bprintf. >> >> Note that while the current proposal uses GADTs, Beno=EEt also experimen= ted >> with reasonable similar designs using higher-order function (this is the >> usual initial vs. final tagless interpreter >> choice) that would have been implementable before 4.00. >> >> On Sat, Jan 18, 2014 at 3:22 AM, Jeremy Yallop wrote: >> > Jacques Garrigue wrote: >> >>> By the way, there is now an implementation of Printf that avoids most >> of the Obj.magic by using GADTs. It should be merged soon. >> > >> > Jon Harrop wrote: >> >> Just curious: is that a drop-in replacement? >> > >> > Yes, except for some tiny incompatibilities, mostly fixes for bugs >> > that the development of the GADT version uncovered in the original >> > implementation. The patch is here, along with a description and some >> > discussion: >> > >> > http://caml.inria.fr/mantis/view.php?id=3D6017 >> > >> > The author, Beno=EEt Vaugon, presented the design along with some >> > performance figures at OCaml 2013: >> > >> > http://ocaml.org/meetings/ocaml/2013/proposals/formats-as-gadts.pdf >> > http://ocaml.org/meetings/ocaml/2013/slides/vaugon.pdf >> > >> > -- >> > Caml-list mailing list. Subscription management and archives: >> > https://sympa.inria.fr/sympa/arc/caml-list >> > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> > Bug reports: http://caml.inria.fr/bin/caml-bugs >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa.inria.fr/sympa/arc/caml-list >> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs