From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 3C90B7FB0B for ; Mon, 1 Dec 2014 11:15:19 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of thomas.gazagnaire@gmail.com) identity=pra; client-ip=74.125.82.50; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="thomas.gazagnaire@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of thomas.gazagnaire@gmail.com designates 74.125.82.50 as permitted sender) identity=mailfrom; client-ip=74.125.82.50; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="thomas.gazagnaire@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-wg0-f50.google.com) identity=helo; client-ip=74.125.82.50; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="postmaster@mail-wg0-f50.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuEBADo/fFRKfVIylGdsb2JhbABbg1dYxmGGToEVFgEBAQEBEQEBAQEHCwsJEjCEAgEBAQMBEigGATgBAwELAQUFGC40AQUBHAYTIogJAwkJBAEIsEg9MZApilgnDYVwAQoBAQEBARYBBQ6QOoNjgR8FlVKIX4Voi3VAgXeDQG8BgkYBAQE X-IPAS-Result: AuEBADo/fFRKfVIylGdsb2JhbABbg1dYxmGGToEVFgEBAQEBEQEBAQEHCwsJEjCEAgEBAQMBEigGATgBAwELAQUFGC40AQUBHAYTIogJAwkJBAEIsEg9MZApilgnDYVwAQoBAQEBARYBBQ6QOoNjgR8FlVKIX4Voi3VAgXeDQG8BgkYBAQE X-IronPort-AV: E=Sophos;i="5.07,493,1413237600"; d="scan'208";a="110425230" Received: from mail-wg0-f50.google.com ([74.125.82.50]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 01 Dec 2014 11:15:09 +0100 Received: by mail-wg0-f50.google.com with SMTP id k14so13685856wgh.9 for ; Mon, 01 Dec 2014 02:15:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=RTQXSfEb/Y72JyvcNwABC4H+GV6kS6R0D8fFRITAv48=; b=eZCACKajGxrB/Viy2rVIzOuOBcqkvDZ2STo8hrURHurDqi6dvtC34Mbh0oFBI5R+ps uRZ5aKpNqcH3nSXppl8lzx/PSr9Sm/XQVewuitucGHLKWksv4U8ElfcbnLy5c+dDppKG 47sGb88cZl3q99GfT1Ohn945NM/kxBiDjQCybi0n/O8bAFy45uxQqsteRf+CIS+FP9ny IYX3FqrbxjiRSFYrB+XoUiKR2QytFIZ2j6eUAT/DO23pAmGsUSfRuUyQSTNitaXiBhqU phakPeKqdnr/75VvNKY5UD5thuj03tDbtaOCnNanTBD1wYDoE/WVxmpWWQaMkM78sf3/ nJzQ== X-Received: by 10.180.76.7 with SMTP id g7mr81562712wiw.38.1417428909718; Mon, 01 Dec 2014 02:15:09 -0800 (PST) Received: from [192.168.0.2] (cpc25-cmbg14-2-0-cust121.5-4.cable.virginm.net. [213.106.112.122]) by mx.google.com with ESMTPSA id d5sm26922343wjb.34.2014.12.01.02.15.08 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 01 Dec 2014 02:15:08 -0800 (PST) Sender: Thomas Gazagnaire Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) From: Thomas Gazagnaire In-Reply-To: <20141201094430.GA8862@fuck_yeah> Date: Mon, 1 Dec 2014 10:15:09 +0000 Cc: OCaml users Content-Transfer-Encoding: quoted-printable Message-Id: <591F1716-EE97-4A11-8CFA-A073ED5E64C3@gazagnaire.org> References: <20141201094430.GA8862@fuck_yeah> To: Simon Cruanes X-Mailer: Apple Mail (2.1993) Subject: Re: [Caml-list] [ANN] cconv-0.2 Hi Simon, Do you have any benchmarks to compare CConv and similar camlp4 generators? Thanks, Thomas > On 1 Dec 2014, at 09:44, Simon Cruanes wrote: >=20 > Hi everyone, >=20 > I'm happy to announce the release of cconv 0.2 [1]. CConv is a > BSD-licensed combinators library for serializing and unserializing data > structures. It particularity is that it doesn't target a specific > serialization format, but any format that is expressive enough (using > some type machinery involving a few GADTs and visitor patterns). >=20 > The rationale is that, for library writers, the current go-to practice > to provide some serialization support is to use type_conv and "with sexp". > This requires camlp4 and a lot of libraries, and forces the choice of > S-expressions on the user. Instead, by providing CConv encoders and > decoders, the user could choose which serialization format (even simple > printing) to use by herself. >=20 > To serialize values of type 'a, one can write a value of type ['a > CConv.Encode.encoder] that can be used with any serialization backend; > to unserialize, it's a value of type ['a CConv.Decode.decoder]. > Then, cconv ships with three (optional) backends, to Yojson, Bencode and > Sexplib; an ['a encoder] can be used with any of those three (same for > decoders). See the readme [2] for more details. >=20 > There will be a ppx_deriving [3] instance [4] soon for automatically > generating decoders and encoders based on types. >=20 > If anyone used cconv-0.1, I apologize for the change of interface. The > ideas took time to evolve... >=20 > As usual, bug reports, comments, criticism and accusations of > reinventing the wheel are all welcome. >=20 > Cheers, >=20 > --=20 > Simon >=20 > [1] https://github.com/c-cube/cconv/tree/0.2 > [2] https://github.com/c-cube/cconv/blob/0.2/README.md#usage > [3] https://github.com/whitequark/ppx_deriving > [4] https://github.com/c-cube/ppx_deriving_cconv (work in progress, comme= nts appreciated!) >=20 > http://weusepgp.info/ > key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 6= 2B6