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 1E1007FEE7 for ; Wed, 26 Jul 2017 11:17:54 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jdimino@janestreet.com; spf=Pass smtp.mailfrom=jdimino@janestreet.com; spf=None smtp.helo=postmaster@mxout3.mail.janestreet.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jdimino@janestreet.com) identity=pra; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jdimino@janestreet.com designates 38.105.200.229 as permitted sender) identity=mailfrom; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.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@mxout3.mail.janestreet.com) identity=helo; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="postmaster@mxout3.mail.janestreet.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AvmR33BHQeLuRBoOUdomDy51GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7zosywAkXT6L1XgUPTWs2DsrQf2rqQ6/iocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDmwbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+?= =?us-ascii?q?NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjD?= =?us-ascii?q?QhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VC+85Kl3VhDnlC?= =?us-ascii?q?YHNyY48G7JjMxwkLlbqw+lqxBm3oLYfJ2ZOP94c6jAf90VWHBBU95TWCxPAo2y?= =?us-ascii?q?YYgBAfcfM+lEtIT9u0cCoAGiCQWwGO/iyDlFjWL2060g1OQhFBnL0gg+ENIUrn?= =?us-ascii?q?vUqdT1O7kPWu67zanIyDTDb/VR2Tzg74XIcA0uofCJXbJxd8rRzlIiFwHfgVWW?= =?us-ascii?q?t4PlJC+V1v4TvGeF8+psT/6gi2kiqwxopDWk28kiio7Mho0Py1DE8z10wIk0Jd?= =?us-ascii?q?2kSE57fMWrHIFMuCGdMot7RN4pTWJwuCsixLALuoS3cDUWxJkn3RLTdeCLf5SS?= =?us-ascii?q?7h79SuqcJS90iGx5dL+7nRq/8kitxvfiWsWp0FtGtChInsXKu3sQzRLc8NKHRe?= =?us-ascii?q?F4/kq52TaAyQTT6uZcLEAxmqvbLIMhwqI+m5YJtETMBC72mEHsgK+UbEok/Pan?= =?us-ascii?q?6//7YrX8uJCTKZN0hhviPaQpn8yzGeU4Mg4QUGiH4emx2r7u8VfkTLlWjvA6iL?= =?us-ascii?q?fVvIzGKcgBuKK1HQtY3p4m6xmlDjem1NoYnWMALFJAYB+HjZXmO1DLIPD5C/e/?= =?us-ascii?q?hE+hkDVxyPDAILLhGYnNLmLdn7j/YbZx8VJTyA02zdxH/ZJbFqkBIO7vWk/2rN?= =?us-ascii?q?HXEgU2Mwmww+r+DNV915geWX6UD6+CMKLStEeI6fg1L+mNYo8Vojf9JOI/6/7g?= =?us-ascii?q?l39q0WMaKJGp3J8WcGi1VsprKUiDKS70gtYFEH8Ss0wgQebnknWNVDdSYzC5WK?= =?us-ascii?q?dqtR8hD4fzL4rZS4WsjfSt3SK6GJoeMmJKC1WNF3DAdYyCVuwQci+fPolqlTlS?= =?us-ascii?q?BuvpcJMoyRz77Fyy8LFgNOeBv3RA7Z8=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BaAQCIXXhZfeXIaSZdGwEBAQMBAQEJA?= =?us-ascii?q?QEBFwEBBAEBCgEBhBOBFAefUR+IMI1ZDoIEKIUfAoM3B0EWAQEBAQEBAQEBAQE?= =?us-ascii?q?SAQEJFghXgjMkAYJBAQIDIx0BATcBDwsLDQICJgICIQESAQUBHAYTCIoPAxUDD?= =?us-ascii?q?aVdP4sfa4ImgwgBAQWEKA2EAwEBAQEBAQEBAgEBAQEBAQEBGAMFEnmCHYNNhQW?= =?us-ascii?q?CV4Fmg0mCYZ8kPIdPh2GEcYsxhwlIi1GIDxQfgRUlAYE7MiEIHBVJGgaEZ4ITd?= =?us-ascii?q?Yk1AQEB?= X-IPAS-Result: =?us-ascii?q?A0BaAQCIXXhZfeXIaSZdGwEBAQMBAQEJAQEBFwEBBAEBCgE?= =?us-ascii?q?BhBOBFAefUR+IMI1ZDoIEKIUfAoM3B0EWAQEBAQEBAQEBAQESAQEJFghXgjMkA?= =?us-ascii?q?YJBAQIDIx0BATcBDwsLDQICJgICIQESAQUBHAYTCIoPAxUDDaVdP4sfa4Imgwg?= =?us-ascii?q?BAQWEKA2EAwEBAQEBAQEBAgEBAQEBAQEBGAMFEnmCHYNNhQWCV4Fmg0mCYZ8kP?= =?us-ascii?q?IdPh2GEcYsxhwlIi1GIDxQfgRUlAYE7MiEIHBVJGgaEZ4ITdYk1AQEB?= X-IronPort-AV: E=Sophos;i="5.40,414,1496095200"; d="scan'208";a="284990853" Received: from mxout3.mail.janestreet.com ([38.105.200.229]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jul 2017 11:17:53 +0200 Received: from [172.27.56.68] (helo=tot-qpr-mailcore1) by mxout3.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1daIS0-00049Q-0K for caml-list@inria.fr; Wed, 26 Jul 2017 05:17:52 -0400 X-JS-Flow: external X-JS-Scanner-attachment: (ok) No attachments Received: by tot-qpr-mailcore1 with ocaml/mailcore/mailcore 1.0+103 (52e62653b568) (envelope-from ) id BZeF5A-BNk9oA-AA; 2017-07-26 05:17:52.004310-04:00 Received: from mail-lf0-f70.google.com ([209.85.215.70]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) (envelope-from ) id 1daIRz-00082O-VG for caml-list@inria.fr; Wed, 26 Jul 2017 05:17:51 -0400 Received: by mail-lf0-f70.google.com with SMTP id d80so38129024lfg.0 for ; Wed, 26 Jul 2017 02:17:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=sDKVpcDz7IBMsuhhnA8UQGzCQZX0Ha3mKH+6KV+Vf+Q=; b=FaKnJbFyQGvIdMIY4HTb5p6J66WCWyr0EVUFbp+l/jFc8rltzEkfTw5cjNTz8bK2NV zAB6DHFiHI9KlETDqUmdoxfr/j+Wlamv5rUedDz8eyS4QeektyXPpi2poSjivfebS82a jKqxCg+gdhqfly6jR1Cltkkf9l5B1HUx3djYE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=sDKVpcDz7IBMsuhhnA8UQGzCQZX0Ha3mKH+6KV+Vf+Q=; b=e2YVSB1WmVujtFUKdCg1L64Z9ocLDQALHaGHblhqjGexKiHx4n+uqx0dmvNiC+3YmX uwv5sfhe9n1KqTalhf0pA6ORwnPtK441AcCsJRhK6TERpy5xpI55zaMGSQ6DBAKkhyg8 78HAmNa658hbpmDMKUnIkDVZZdPkarbP2pkDAfxONXpoGkjIxRz2pF4wfdHTM7kVoVry /NTan+Z4KwtdSEPIWK8UlnHqosV9YH8QIvisEFd94994rsVQWtIeotVEsaN/wziBmfFP jTPg1Lg0doJnvtNJ8grOX4yBsxzSMSr8mUpnRrCKa+03MuOcoYuW5AAOatAIJ478NOJq MwjA== X-Gm-Message-State: AIVw111lkqzsqHtKKRQ2mrbfBUFy3O1WlKdc3inpxGwgr18XCyW+TtTT miVqywe/qgzRVz56luavX6pQfhg9nEFmqwuLcL+9a89W2G4YdVufqZSxAi+24UDuFkQcgPNHZ5m TUiS8oOER8K+V7eTJ X-Received: by 10.46.15.25 with SMTP id 25mr139907ljp.90.1501060670827; Wed, 26 Jul 2017 02:17:50 -0700 (PDT) X-Received: by 10.46.15.25 with SMTP id 25mr139904ljp.90.1501060670686; Wed, 26 Jul 2017 02:17:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.206.202 with HTTP; Wed, 26 Jul 2017 02:17:50 -0700 (PDT) In-Reply-To: References: From: Jeremie Dimino Date: Wed, 26 Jul 2017 10:17:50 +0100 Message-ID: To: Philippe Veber Cc: caml users Content-Type: text/plain; charset="UTF-8" X-JS-Exim-Data-Received: 2017-07-26 05:17:51-0400 X-JS-Processed-by: mailcore Subject: Re: [Caml-list] Sexplib and js_of_ocaml You can use parsexp [1], which implements the same parser as sexplib and works well in javascript. [1] https://github.com/janestreet/parsexp On Wed, Jul 26, 2017 at 9:38 AM, Philippe Veber wrote: > Dear all, > > I recently noticed that sexplib parser fails with a "Too much recursion" > exception when run in the browser on a very moderately sized string > representation of an S-exp. I understand this is due to the absence of tail > call optimization (although js_of_ocaml performs it in the case of a single > recursive function). With this idea in mind, I suppose there is no simple > workaround, so I wanted to ask if anyone knew a convenient replacement for > serialization/deserialization that would work in the browser. > > Cheers, > Philippe. -- Jeremie