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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 264797EF1E for ; Fri, 22 Jul 2016 16:38:23 +0200 (CEST) IronPort-PHdr: 9a23:Yy6v8hFDGVLHCT+ZHZ2TGZ1GYnF86YWxBRYc798ds5kLTJ75r82wAkXT6L1XgUPTWs2DsrQf2rKQ7v+rBjFIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TWM5DIfUi/yKRBybrysXNWD14LqiKvtptX6WEZhvHKFe7R8LRG7/036l/I9ps9cEJs30QbDuXBSeu5blitCLFOXmAvgtI/rpMYwuwwZgf8q9tZBXKPmZOx4COUAVHV1e1wysfbztAPEVkOi4nobSmILlh1TS1ze4RX7WY/2rwP1s+N83G+ROsigHp4uXjH3w65tSRLsvw2TMSw98SmDhsV2ja9f5hi8qhptx4/8bZuPPeZ/Z77QO9gaEzkSFv1NXjBMV9vvJ7AECPAMaKMB99Hw Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=daniel.buenzli@erratique.ch; spf=None smtp.mailfrom=daniel.buenzli@erratique.ch; spf=None smtp.helo=postmaster@smtp.webfaction.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CDAABoL5JXgUpWN0pdhBW5W4F7I4V5AoFnFAEBAQEBAQEBEQEBCQ0JCRcxgjIEARIBghMBBAEjVgULCw4MAiYCAkcQBhuIIAgECq5KjT8BAQEHAQEBAQEdBYEBiXaEQIMBK4IvBZNkhUKGFpIcDoVokCEehCuJXwEBAQ X-IPAS-Result: A0CDAABoL5JXgUpWN0pdhBW5W4F7I4V5AoFnFAEBAQEBAQEBEQEBCQ0JCRcxgjIEARIBghMBBAEjVgULCw4MAiYCAkcQBhuIIAgECq5KjT8BAQEHAQEBAQEdBYEBiXaEQIMBK4IvBZNkhUKGFpIcDoVokCEehCuJXwEBAQ X-IronPort-AV: E=Sophos;i="5.28,405,1464645600"; d="scan'208";a="227618344" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Jul 2016 16:38:07 +0200 Received: from [192.168.5.63] (173-12.dsl.iskon.hr [89.164.173.12]) by smtp.webfaction.com (Postfix) with ESMTP id 89F38210861E; Fri, 22 Jul 2016 14:38:04 +0000 (UTC) Date: Fri, 22 Jul 2016 16:38:01 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: Spiros Eliopoulos Cc: OCaml Message-ID: In-Reply-To: References: X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: Re: [Caml-list] ANN: angstrom Looks cool. Le vendredi, 22 juillet 2016 =C3=A0 15:35, Spiros Eliopoulos a =C3=A9crit := =20=20 > For a high-level comparison of Angstrom's features to other parser-combin= ator libraries, see the table included in the README: >=20=20 > https://github.com/inhabitedtype/angstrom#comparison-to-other-libraries Do you have a story for precise line-column and byte count tracking ? It's = quite important in practice to be able to give good error reports.=20=20 Also does the API easily allow to do best-effort decoding (after reporting = an error allow to resync input by discarding and restart the parsing proces= s) ?=20=20 =20=20 > Yojson wins hands down (it benefits greatly from not having to support no= n-blocking incremental input), I guess it also benefits of not implementing the standard at all, e.g. it w= on't check the validity of the underlying character stream.=20=20 Also regarding benchmarks it would be more interesting to have benchmarks o= n real world examples where you convert json input to concrete ocaml data t= ypes. E.g. it would be cool if you could provide a jsonm-like streaming int= erface with angstrom and then use angstrom's combinators to parse the strea= m of json lexeme into OCaml data structures. Best,=20=20 Daniel