From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 086797FAF6 for ; Mon, 1 Dec 2014 10:44:36 +0100 (CET) Received-SPF: Neutral (mail3-smtp-sop.national.inria.fr: domain of simon.cruanes.2007@m4x.org does not assert whether or not 129.104.30.34 is permitted sender) identity=pra; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=xpn7=AV=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="simon.cruanes.2007@m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of SRS0=xpn7=AV=m4x.org=simon.cruanes.2007@bounces.m4x.org designates 129.104.30.34 as permitted sender) identity=mailfrom; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=xpn7=AV=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="SRS0=xpn7=AV=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of postmaster@mx1.polytechnique.org designates 129.104.30.34 as permitted sender) identity=helo; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=xpn7=AV=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="postmaster@mx1.polytechnique.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At0CAC44fFSBaB4inGdsb2JhbABbg1dYxmGBJoY8FgEBAQEBEQEBAQEBCAsJCRQuhT40BUmIUwQJrR2lXZQrgR8FlVKGdIFrlSIBCwGCJm4BgkYBAQE X-IPAS-Result: At0CAC44fFSBaB4inGdsb2JhbABbg1dYxmGBJoY8FgEBAQEBEQEBAQEBCAsJCRQuhT40BUmIUwQJrR2lXZQrgR8FlVKGdIFrlSIBCwGCJm4BgkYBAQE X-IronPort-AV: E=Sophos;i="5.07,492,1413237600"; d="asc'?scan'208";a="91188310" Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 01 Dec 2014 10:46:25 +0100 Received: from fuck_yeah (mna75-4-82-225-76-110.fbx.proxad.net [82.225.76.110]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id EE446140C56C0 for ; Mon, 1 Dec 2014 10:44:33 +0100 (CET) Date: Mon, 1 Dec 2014 10:44:30 +0100 From: Simon Cruanes To: OCaml users Message-ID: <20141201094430.GA8862@fuck_yeah> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="MGYHOYXEY6WxJCY8" Content-Disposition: inline User-Agent: Mutt/1.5.22 (2013-10-16) X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Mon Dec 1 10:44:34 2014 +0100 (CET)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.000257, queueID=3E948140C56C2 X-Org-Mail: simon.cruanes.2007@polytechnique.org Subject: [Caml-list] [ANN] cconv-0.2 --MGYHOYXEY6WxJCY8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi everyone, 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). 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. 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. There will be a ppx_deriving [3] instance [4] soon for automatically generating decoders and encoders based on types. If anyone used cconv-0.1, I apologize for the change of interface. The ideas took time to evolve... As usual, bug reports, comments, criticism and accusations of reinventing the wheel are all welcome. Cheers, --=20 Simon [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, comment= s appreciated!) http://weusepgp.info/ key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 62B6 --MGYHOYXEY6WxJCY8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBAgAGBQJUfDh+AAoJEErAHQhJqmK2O9wQAMrymbtoHMQVerJriO7My9Ew v8lpaN+URPwjv646Vv5MlA8QXk1nrUDJWfnSuc2k5e2Kr9P0elHZWiQ4xNEXTZrh d8f/k2IcyH9iLRKi1qKrHnM7AULrOj5NjRQW/vK6iljh6EzqKujm2K2H6x9VoTD2 AVH1uG/Jc40nzm1b7ZCX+nz1HTX+HO2DbYT8w98baErxhOQyYN3GJuTeunaH29xy HwChfhZcH2JHI+HVKbHBaH4AClIYNPQqtR7upwbJ2JgF6bY2h2D0I7paHgVvTmt5 cfa5YIN1ZaEmb7V3FtP2xucTG+bdXBmNSF8zLFEq+4zk5ig3vPtCsXgwOZxZYerZ tTX/B4nyQZdoIEIoCr3YGEMVdQjpHiOBjcVECM13H8GaGL0/kloKJrGuLoOBt1Ft bgMPcF3sIwACrRbHTRpmFpB3duP4v8gkkqyEyCK4Lp0ELOzrE3f6ef/6mrjqsPIB QaDFAAykGyqiI8a1yHgDqKw6YFDHkFddMvG7GWtmBpe7EE/dyM9NPznoTT9F18NU HDJjVJscadz3qNRWC7jNSWVGiwYevwKtReq2hWs9XFoLKTvTNskgz71JL4R0czfK EZxm5gxAxMOzkbZdJvkCx49Q6oDNx1sdGA1weHU6q+mmvsVVbGluiUGwODMjtm1e HSc5Ycez4hMse38YkvoW =sNYt -----END PGP SIGNATURE----- --MGYHOYXEY6WxJCY8--