From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 2BFD6E0085 for ; Fri, 18 Sep 2020 12:37:11 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=ulysse@u31.fr; spf=Pass smtp.mailfrom=SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr; spf=None smtp.helo=postmaster@mail.lotophages.fr Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of ulysse@u31.fr) identity=pra; client-ip=109.74.198.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr"; x-sender="ulysse@u31.fr"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr designates 109.74.198.13 as permitted sender) identity=mailfrom; client-ip=109.74.198.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr"; x-sender="SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail.lotophages.fr) identity=helo; client-ip=109.74.198.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=wvOp=C3=u31.fr=ulysse@lotophages.fr"; x-sender="postmaster@mail.lotophages.fr"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3ACbaQOB16l+MN82HlsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?seMXKfad9pjvdHbS+e9qxAeQG9mCtLQc1aGN6+igATVGvc/f9ihaMdRlbFwssY?= =?us-ascii?q?0uhQsuAcqIWwXQDcXBSGgEJvlET0Jv5HqhMEJYS47UblzWpWCuv3ZJQk2sfQV6?= =?us-ascii?q?Kf7oFYHMks+5y/69+4HJYwVPmTGxfa5+IA+5oAnMtMQam5duJ6c+xhbHvndDZu?= =?us-ascii?q?BayX91KV6JkBvw+8a98IR//yhMvv4q6tJNX7j9c6kkV7JTES4oM3oy5M3ltBnD?= =?us-ascii?q?SRWA634BWWgIkRRGHhbI4gjiUpj+riX1uOx92DKHPcLtVrA7RS6i76ZwRxD2ji?= =?us-ascii?q?oMKiM0/3vWisx0i6JbvQ6hqhliyIPafI2ZKPxzdb7act0CQmpPXchfXDFFDo+h?= =?us-ascii?q?c4cDCuwMNvtaoYbgvVsDtRSxCxesCu3yxDFHhWX40rEh3us7DQ3KwBYtE84SvH?= =?us-ascii?q?nWqtj+KaccUfqyzKnN1TjMYfdW2Dfm6IjTbB8uufCCWqhqccXL00kgCh7Og1KN?= =?us-ascii?q?qYzhPzKVzf8NvHaA4up9W++jlnQrqw9rojW2wMonl4bGiJ4PxF/e6SV53Jg6Jc?= =?us-ascii?q?e+SENjZdOpHodcuj2VOoV5X88vQ2NltigkxrAbupO2fTYGxYkjyhPQdfCLbYaG?= =?us-ascii?q?7BztWeufPTp1i3Jrdb2wihqu70WtxevxXdS33lZStidJj8XAu3QX2xHR5cWLUO?= =?us-ascii?q?Zx80Oi1DqVygze5PlILEI3mKbBNpIsxrA9moAOvUnBHyL6glj6gayZe0gi5+Om?= =?us-ascii?q?8f7oYq/8qZ+ZL4J0ih/xMqApmsGnBOQ3KAkOX2yB9eS4073j4Ur5QK1KjvIsna?= =?us-ascii?q?nWrovaKd4Vpq6jGwNV04Aj5AijDzq+zdgUgX0KIEhHdR+IlYTlJlXDLfPiAfui?= =?us-ascii?q?jVmgiDJryOrHPr3lDJXNNH/DkLL5cLhg90BS1RY/wMhR5pJKE78BOOr+V1H/ud?= =?us-ascii?q?HAEx80PRG4z/zpCNVnzo4eRGaPA6+CMKPJr1CF/eYvI+6QZI8SoDb9K+Iq5/Hw?= =?us-ascii?q?gn8ig1Mdc7Op0YMNaH+kBvRmP1mZYX30j9gdC2gKuw4+QPXuiF2DSj5Te22/X7?= =?us-ascii?q?k85zE+EIKpF53PRoGrgLyb3Se0BIdaZm5cCgPELXC9PY6NXvNJbCOJPudglCYF?= =?us-ascii?q?XP6vUcVpgRqnsQu/z7t8MsLV/DcZvNTtzo4myffUkEQP8S1vFMmq/OCXRnt41j?= =?us-ascii?q?cVQy4tx61XvBckjFmZh/sry8dEHMBesqsaGjwxMoTRmrUiUoygakf6Zt6MDW2e?= =?us-ascii?q?bJC+GzhhHM9qmpkAeRQlQojwvlX4xyOvRoQtufmLCZgzqPqO2nHwI4B5zGrBzK?= =?us-ascii?q?kogFQ9BMVVZzX/1/xPsjPLDouMqH230qOjdKASxinIrTrRyW2Su1lYWQF9SuPL?= =?us-ascii?q?RyJGaw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BsCAAgjWRf/w3GSm1fglqBIVIuB3BWM?= =?us-ascii?q?ixWg2OQNwGdMAEDAQ0vBAEBhngCHAcBBDUFDQIQAQEFAQEBAgEDAwQBbIVcAQu?= =?us-ascii?q?CNwwXg0IdAQE4FAREAl8kgxaDAJlbm3uBMoMBAQEFhlF9gUKFVoEDhTWBHRuGX?= =?us-ascii?q?4Qlgy8Tgk2QDDOCcocji1KRCgiBUoEXu24BjSh7hFegJIFsIoFXdBGDJGkNjXQ?= =?us-ascii?q?BhVmJGj8zNwIGAQkBAQMJjl8BAQ?= X-IPAS-Result: =?us-ascii?q?A0BsCAAgjWRf/w3GSm1fglqBIVIuB3BWMixWg2OQNwGdMAE?= =?us-ascii?q?DAQ0vBAEBhngCHAcBBDUFDQIQAQEFAQEBAgEDAwQBbIVcAQuCNwwXg0IdAQE4F?= =?us-ascii?q?AREAl8kgxaDAJlbm3uBMoMBAQEFhlF9gUKFVoEDhTWBHRuGX4Qlgy8Tgk2QDDO?= =?us-ascii?q?Ccocji1KRCgiBUoEXu24BjSh7hFegJIFsIoFXdBGDJGkNjXQBhVmJGj8zNwIGA?= =?us-ascii?q?QkBAQMJjl8BAQ?= X-IronPort-AV: E=Sophos;i="5.77,274,1596492000"; d="scan'208,217";a="359396306" X-MGA-submission: =?us-ascii?q?MDHCx+GU7mKfPh8JEMRqMp6MucdaG9lcHtk4RZ?= =?us-ascii?q?Eb6RwgRCOPcIn+SAHaO3DGZagJ84AestRYh/9Q5EOaNZ6oWFnrjK8Jdb?= =?us-ascii?q?nR8VlriiRwrL1ri8k4oWsOQggoBBCpBlirxlls3tPRS9n+CYiWxzPDL6?= =?us-ascii?q?AQBU2N07v+SxjelsHPnqFhCQ=3D=3D?= Received: from mail.lotophages.fr ([109.74.198.13]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 12:37:09 +0200 Received: from [IPv6:::ffff:192.168.0.1] (unknown [78.193.176.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: ulysse@u31.fr) by mail.lotophages.fr (Postfix) with ESMTPSA id 89E0F1DC93 for ; Fri, 18 Sep 2020 12:37:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=u31.fr; s=dkim; t=1600425428; h=from:from:reply-to:subject:subject:date:date:to:to:cc: mime-version:mime-version:content-type:content-type; bh=F/nKQsqSaQb4I2I9ku3i92wSZko32UUPa39LYxs6EOU=; b=CIQtqpVHc8kTZJs92NzSOBv4xJwuv2sRF8aZgWPzQEjVJkqYM2lgMfpNkrnFPo5FIL7hZO 6ZZqFA5XFgXkLeYZCxos2QnteS81L+Jtv+JOdupxoGw8oqji6YoMTU+kDgk7ey7RZhZj30 n9VtOslMhDsGIdW5x+m1uuiyDeWbjpo= MIME-Version: 1.0 To: "caml-list@inria.fr" From: =?utf-8?Q?Ulysse_G=C3=A9rard?= Date: Fri, 18 Sep 2020 12:37:10 +0200 Importance: normal X-Priority: 3 Content-Type: multipart/alternative; boundary="_A2DC12DD-DA45-4572-AFF2-245ACBDF72AD_" Message-Id: <20200918103711.2BFD6E0085@sympa.inria.fr> Subject: [Caml-list] [ANN] Merlin 3.4.0 : introducing external configuration readers --_A2DC12DD-DA45-4572-AFF2-245ACBDF72AD_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" I am glad to announce, on behalf of the Merlin team, the release of Merlin = 3.4.0 which brings some major changes in the way configuration is handled. As you might know, Merlin reads its configuration from the closest .merlin = file to the source file being edited. These files tell merlin where to find othe= r source files and build artifacts, but also which flags should be passed to = the compiler, which syntax extensions are enabled and which packages are used b= y the project. In this setting the configuration is the same for all the source files of a folder, regardless of their specificities. In other words, the configuratio= n loaded for a single source file contains the union of the dependencies of t= his file and of all its siblings which is not an optimal behavior. Starting with version 3.4.0 merlin will ship with two packages: merlin and dot-merlin-reader which, as the name suggests, reads configuration from .me= rlin files. Both are necessary for proper function. When a .merlin file is present in the source folder the Merlin server will = start a dot-merlin-reader process and communicate with it via standard input and output following a simple protocol. These processes are halted with the ser= ver. This change should not have any visible impact on users=E2=80=99 workflows = as long as the dot-merlin-reader binary is correctly installed and in the path. (which should be the case in opam-based setups) This change in itself will not solve the granularity problem mentioned earl= ier, but it paves the way for such improvements: in a near-future Dune will stop generating .merlin files and Merlin will obtain file-based configuration directly from the build system using the same protocol as the one used by dot-merlin-reader.=20 Changelog + merlin binary - fix completion of pattern matchings with exception patterns (#1169= ) - delegate configuration reading to external programs via a simple p= rotocol and create a new package dot-merlin-reader with a binary that reads .merlin files. (#1123, #1152) --_A2DC12DD-DA45-4572-AFF2-245ACBDF72AD_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

 

I am glad to announce= , on behalf of the Merlin team, the release of Merlin 3.4.0

which bring= s some major changes in the way configuration is handled.=

 

As= you might know, Merlin reads its configuration from the closest .merlin fi= le

to the source file being edited. These files tell merlin where to fi= nd other

source files and build artifacts, but also which flags should = be passed to the

compiler, which syntax extensions are enabled and whic= h packages are used by the

project.

 

In this setting the = configuration is the same for all the source files of a

folder, regardl= ess of their specificities. In other words, the configuration

loaded fo= r a single source file contains the union of the dependencies of this<= /o:p>

f= ile and of all its siblings which is not an optimal behavior.

&nbs= p;

Starting with version 3.4.0 merlin will ship with two packages: merlin an= d

dot-merlin-reader which, as the name suggests, reads configuration fr= om .merlin

files. Both are necessary for proper function.

&nbs= p;

When a .merlin file is present in the source folder the Merlin server wil= l start

a dot-merlin-reader process and communicate with it via standar= d input and

output following a simple protocol. These processes are hal= ted with the server.

 

= This change should not have any visibl= e impact on users=E2=80=99 workflows as long as

the dot-merlin-reader b= inary is correctly installed and in the path. (which

<= p class=3DMsoNormal>should be the case= in opam-based setups)

 

This change in itself will not solve = the granularity problem mentioned earlier,

but it paves the way for suc= h improvements: in a near-future Dune will stop

generating .merlin file= s and Merlin will obtain file-based configuration

directly from the bui= ld system using the same protocol as the one used by

<= p class=3DMsoNormal>dot-merlin-reader.=

 

Changelog

=C2=A0=C2=A0 + merlin binary

=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 - fix completion of pattern matchings with exce= ption patterns (#1169)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - delegate = configuration reading to external programs via a simple protocol=

=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 and create a new package dot-merlin-re= ader with a binary that reads

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 .merlin files. (#1123, #1152)

= --_A2DC12DD-DA45-4572-AFF2-245ACBDF72AD_--