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 c5ff346549e7 (Postfix) with ESMTPS id 89E6A5D5 for ; Tue, 24 Mar 2020 17:33:09 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.72,301,1580770800"; d="scan'208,217";a="441974438" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 24 Mar 2020 18:33:08 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 603617F468; Tue, 24 Mar 2020 18:33:08 +0100 (CET) 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 25C9F7F42C for ; Tue, 24 Mar 2020 18:33:02 +0100 (CET) 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@mxout1.mail.janestreet.com IronPort-PHdr: =?us-ascii?q?9a23=3AyXHmVRMmOVymqozHXm4l6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0Ivn/rarrMEGX3/hxlliBBdydt6sYzbOL6uu/ASQp2tWojjMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9vIxi6txjdu8kLjYdtKKs91gbCr2dVde?= =?us-ascii?q?hR2W5nKlWfkgrm6Myt5pBj6SNQu/wg985ET6r3erkzQKJbAjo7LW07/dXnuhbf?= =?us-ascii?q?QwSB4HscSXgWnQFTAwfZ9hH6X4z+vTX8u+FgxSSVJ8z2TbQzWTS/86dmTQLjhS?= =?us-ascii?q?kbOzIl9mzcl8p9h79Zrh28vRxy24HbboGbOvR9Y63TY88VSHFbUcpNTSFMGJ+w?= =?us-ascii?q?Y5cNAucHIO1Wr5P9p1wLrRamAQejGvnvxSFNhn/3w6IxzuovEQDD3AwhGdIOt2?= =?us-ascii?q?nfodL3NKgPUOC1yajIzTPEb/5N2zfy8o7IfQ46ofGQR7J/b9TeyVU1GwzZiVWQ?= =?us-ascii?q?rJXoMjWI3eoDtGib6vBvVeOpi2M/pAFxoySvxscxiobSnI4a1lfE9SBhzIY0I9?= =?us-ascii?q?24Uk97bsS+HJterSGWL5Z5Qt4kQ252oio10aAGuZ+/fCcXzpks2h3Ra+SffoWG?= =?us-ascii?q?4R/vTvudLSt4iX5/Zr6zmwq+/VKix+D/TsW4zkpGoy5fntTPtn0BzQLf5tSER/?= =?us-ascii?q?dn/EqtxTCC3B3J5O5eO0A7j6/bJoYhwrEukpoTtlzOHir5mUXxka+Walgo9vKt?= =?us-ascii?q?6+v9Y7XmooWQN41uhQH4LKsugdC/Af4mPQcQQ2iX4/iz1Lrm/UHhQbVKiOM5kr?= =?us-ascii?q?XBvZ3UJskXvLO1DxNV34o59RqzEyuq3M4akHQENF5FfQiIj4ntO1HAOvD4CvK/?= =?us-ascii?q?jkyukDh2xvDGO7zhApPKLnXYkrfuZ7B95FBHyAov19BQ+YxbCq0bLP3vXU/xsc?= =?us-ascii?q?TUDgUlPAys3+bnFNJ925sCVm2VB6+ZNLresVuJ5uI0P+mBf5QVuTb4K/g9/fHi?= =?us-ascii?q?l345mVkHfamox5Qbcn64Hu41a3meNHHlh9NJDHwHpBF2GOfjjVnHVT9Ie16zWb?= =?us-ascii?q?g973c1EtT1I53EQ9WPjaaM2Sa2VrFXY2FADRjYE3vpcoSCXN8OYSSfOdN7nzEY?= =?us-ascii?q?E7OmTtlyhlmVqAbmxu8/faLv8SoCuMe7jYUn16jojRg3sAdMIYGd3mWKFTEmm3?= =?us-ascii?q?MPWiNvmqV2oEg7yF6F3LNkmfFVCZpY4PYbCl5rZ66Z9PRzDpXJYiyEe96ITFi8?= =?us-ascii?q?RdD/X2MzR9Q82MMUbkthXd6li0Kahnb4M/ouj7WOQacM3OfExXGoeZR/wnDLz7?= =?us-ascii?q?U7glQ6BMBIMD/+iw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DuBACIQ3pefU7IaSZmHgELHIFwC4MVV?= =?us-ascii?q?TIqhBiBHI1tlU2ICwoBAwEMIwwEAQGERIIpHAcBBDMGDgIQAQEFAQEBAgECAwQ?= =?us-ascii?q?BEwEBCRYIhgYMgjsigx8RHQEBOB4HNwIkEgEFASI1gwWCfAMMoSeBBD2LKIEyg?= =?us-ascii?q?n8BAQWBQ0GEHIE1CRKBJowvGoFBP4FHhgACAQECgg6CZIJesFiCRodfjykdg06?= =?us-ascii?q?YDwGLI4thgRySfQ8jgRwpTYEuMxoIGxVsBoI1CUcYDYQWigeDFV6BPokXQTMCA?= =?us-ascii?q?Y9JAQE?= X-IPAS-Result: =?us-ascii?q?A0DuBACIQ3pefU7IaSZmHgELHIFwC4MVVTIqhBiBHI1tlU2?= =?us-ascii?q?ICwoBAwEMIwwEAQGERIIpHAcBBDMGDgIQAQEFAQEBAgECAwQBEwEBCRYIhgYMg?= =?us-ascii?q?jsigx8RHQEBOB4HNwIkEgEFASI1gwWCfAMMoSeBBD2LKIEygn8BAQWBQ0GEHIE?= =?us-ascii?q?1CRKBJowvGoFBP4FHhgACAQECgg6CZIJesFiCRodfjykdg06YDwGLI4thgRySf?= =?us-ascii?q?Q8jgRwpTYEuMxoIGxVsBoI1CUcYDYQWigeDFV6BPokXQTMCAY9JAQE?= X-IronPort-AV: E=Sophos;i="5.72,301,1580770800"; d="scan'208,217";a="441974405" X-MGA-submission: =?us-ascii?q?MDE9mrQ+AU7HESSFxPj5yLxTB9SH4j8smBfOba?= =?us-ascii?q?1xThdATcmzOVeaBpbpRYbjnHwnbnf9k11wuj+BjqmoyX5OTOpqmDXc0m?= =?us-ascii?q?ECuNSJZ0zl9mG8inuYdtO0xSyucIX7fFbatqVa3Dnd7nhQuYeF/3nRnk?= =?us-ascii?q?3acuG7wsAvD3FXNYd8Rv8bag=3D=3D?= Received: from mxout1.mail.janestreet.com ([38.105.200.78]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Mar 2020 18:32:57 +0100 X-JS-Received: from [30.32.81.38] (helo=igm-qpr-mailcore1) by mxout1.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.2) (envelope-from ) id 1jGnQ8-0001XK-JQ for caml-list@inria.fr; Tue, 24 Mar 2020 13:32:56 -0400 X-JS-Flow: external X-JS-Received: by igm-qpr-mailcore1 with ocaml/mailcore/main_production (4edf3cac77a0) (envelope-from ) id BeekRI--C1vCQ-Sa; 2020-03-24 13:32:56.594596-04:00 X-JS-Scanner-attachment: No attachments X-JS-Scanner-esets: Not scanned (internal mail) Received: from mail-ed1-f70.google.com ([209.85.208.70]) by mxgoog2.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.2) id 1jGnQ8-00054F-Fc for caml-list@inria.fr; Tue, 24 Mar 2020 13:32:56 -0400 Received: by mail-ed1-f70.google.com with SMTP id ce13so15373275edb.11 for ; Tue, 24 Mar 2020 10:32:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=uBDPlMsVr8fotzGfBtlmVVhcYfsYTOQAIYg+pQNInnY=; b=mg+oPq4fXeFouzj29PO4IuMeJM6/PR4RvuNn9vsW0G/DqMt2EVOvQ3Na/KWmT2Jiol l+Gdh2W5CoiaQ7q9IkoHxPgk2uuC4szqBTGdf0Ao9PISfJPIzR1/CngP49tgy9YE/b8w XxPRNJnB4TEDRFwF009HP9p//JAOiNudctuyc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=uBDPlMsVr8fotzGfBtlmVVhcYfsYTOQAIYg+pQNInnY=; b=o0xZ0W3ojX/vf5Bjs8rcc2Wxo02jgbLssxjwDqr/081ycr+Xh8MojKvmDmHgLzgbGb y1/MMbyR6g24/sFlVsA47Im8f3CFzpceg0zogl141qNkZmAqVnVIQUtS6OXoVGYz7Mq1 WxpYQcCaho6qvWglOlyxKb1QmR2SD4CKQKLadqsbUUtmw0mwC9t/6+wgRjDMibYzOJM3 QsIXAube9VMpp+j65gdPmK3TakkIGQKvjrGe1zDXKnrTPO9mAmBDesAiMlvDVYxAej21 oFeQ9/uJQbiPmxzWGfZAfMZHLHP9Fymvx1loN/DdHbp/+2x+gt3utb4jvtPHZS4Fphak svCg== X-Gm-Message-State: ANhLgQ0EFGrqYTBr6778YxPlHCu1Mvf6sqRSaIHwZ67/aiDK7LgUmaQ6 K6jAd/T6vzbBU86T/4vBgwXoqc3taB3tMUuBpoj9NIcS3wbcgY2N60gYtWh38PpIkbDK7cD+jWe xa+hnbkISW8M/pUHB3stKo5NfIg== X-Received: by 2002:a50:da49:: with SMTP id a9mr18412225edk.388.1585071175618; Tue, 24 Mar 2020 10:32:55 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvHqqk3UhzRMzVVPiMGZcdKhCoTA/oEEsUKcG7c3+BJSNV/IB41s3ZhOutCL7nyC1042JtzhRfEsY095a+r5GM= X-Received: by 2002:a50:da49:: with SMTP id a9mr18412204edk.388.1585071175403; Tue, 24 Mar 2020 10:32:55 -0700 (PDT) MIME-Version: 1.0 From: Jeremie Dimino Date: Tue, 24 Mar 2020 17:32:44 +0000 Message-ID: To: caml users Content-Type: multipart/alternative; boundary="0000000000005aa04f05a19d24f7" X-JS-Exim-Data-Received: 2020-03-24 13:32:56-0400 X-JS-Processed-by: mailcore Subject: [Caml-list] [ANN] First release of Pp, a pretty-printing library Reply-To: Jeremie Dimino X-Loop: caml-list@inria.fr X-Sequence: 18069 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --0000000000005aa04f05a19d24f7 Content-Type: text/plain; charset="UTF-8" Hi, I'm happy to announce the first release of the pp library! https://github.com/diml/pp This library provides a lean alternative to the Format module [1] of the standard library. It uses the same comcepts of boxes and break hints, however it defines its own algebra which some might find easier to work with and reason about. I personally do :). The final rendering is still done via a formatter which makes it easy to integrate `Pp` in existing programs using `Format`. We introduced this module in [Dune][2] to help improve the formatting of messages printed in the terminal and it has been a success. The new API is smaller, simpler and makes it easy for developers to do the right thing. Once the `Pp` module of Dune was mature enough, we decided to extract it into a separate library so that it could benefit others. The library itself is composed of a single `Pp` module and has no dependencies. Its documentation is self-contained and no previous knowledge is required to start using it, however the various guides for the `Format` module such as this one [3] should be applicable to `Pp` as well. If you have used `Format` before and like me found its API complicated and difficult to use, I hope that you will find `Pp` nicer to work with! Thanks, Jeremie [1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html [2]: https://dune.build [3]: http://caml.inria.fr/resources/doc/guides/format.en.html --0000000000005aa04f05a19d24f7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

I'm happy to announce the first release = of the pp library!

=C2=A0 htt= ps://github.com/diml/pp

This library provides a lean alternative= to the Format module [1] of the standard library. It uses the same comcept= s of boxes and break hints, however it defines its own algebra which some m= ight find easier to work with and reason about.=C2=A0 I personally do :). T= he final rendering is still done via a formatter which makes it easy to int= egrate `Pp` in existing programs using `Format`.

We introduced this = module in [Dune][2] to help improve the formatting of messages printed in t= he terminal and it has been a success. The new API is smaller, simpler and = makes it easy for developers to do the right thing. Once the `Pp` module of= Dune was mature enough, we decided to extract it into a separate library s= o that it could benefit others.

The library itself is composed of a = single `Pp` module and has no dependencies.=C2=A0 Its documentation is self= -contained and no previous knowledge is required to start using it, however= the various guides for the `Format` module such as this one [3] should be = applicable to `Pp` as well.

If you have used `Format` before and lik= e me found its API complicated and difficult to use, I hope that you will f= ind `Pp` nicer to work with!

Thanks,

Jeremie

[1]: http= s://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html
[2]: https://dune.build
[3]: http://caml.inria.fr/re= sources/doc/guides/format.en.html
--0000000000005aa04f05a19d24f7--