From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver= Authentication-Results: plum; dmarc=fail (p=none dis=none) header.from=polytechnique.org Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=ugobJim4; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=polytechnique.org header.i=@polytechnique.org header.a=rsa-sha256 header.s=svoboda header.b=DXQBGwja; dkim-atps=neutral Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id A1EA9B80123 for ; Tue, 2 Apr 2024 15:31:31 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=pXRd2SNdZbQ4HmTlRUQSvM3nfgt6oVKqGM30I2QSnz4=; b=ugobJim4PZeqDYCBnk0Q83LwPhiHMa8/fV12GETNCVzyWjhyD4bM+IL9 TjRydiWramhPP2Oc2m1zaCPywpQbVTsw6Oky+3CeTH/1caGYlZ9dW50q6 hPQEJ5KSwIV/0wnIzqVzhHDunVaWd+RY++ud3kWG92w9Qy3B2kcmUj6cF o=; Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only Authentication-Results: mail2-relais-roc.national.inria.fr; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr; dkim=hardfail (body hash did not verify [final]) header.i=@polytechnique.org X-IronPort-AV: E=Sophos;i="6.07,175,1708383600"; d="scan'208,217";a="159539827" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 02 Apr 2024 16:31:31 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id B1BF1E0157; Tue, 2 Apr 2024 16:31:30 +0200 (CEST) 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 F012DE0131 for ; Tue, 2 Apr 2024 16:31:27 +0200 (CEST) IronPort-SDR: 660c16bd_wyTnIlbWeAFiQCokYzjlroXbX4WK6Z/6rTolxfQru79FV8e ge2xuG+mbGGdnSxM0oa+fMDRNFFSVUZ84YUHD5Q== X-IPAS-Result: =?us-ascii?q?A0GVEABfFQxmlyIeaIFQChZ/gnlbKBkBYlYyBwhIA2uDa?= =?us-ascii?q?INPjTRkgRaQL4g/gjCBaoEsFiMEEAEDAQ0uAQ4EAQIEAQEDAQIBgguCdAJPC?= =?us-ascii?q?YcvAh8GAQQ0EwECBAEBAQEDAgMBAQEBAQEIAQEFAQEBAgEBAgQGAQIQAQEBA?= =?us-ascii?q?QEBAQE3BRA1hW0NgkoZFSNrgSUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQECCAQBJQQzASMaAgECBgoTAQEmDAYYIwMJCwEGA?= =?us-ascii?q?wIRATUDARMBEhQGgmYBgl8DBQwGP5Jhmzp6gTKBAYIKAQEGew0+AwIJAgIDA?= =?us-ascii?q?Q4JJQGvB4FhCYEwGIgNGgFqaAKEIwmENCcPgVVEgRU1gXNKB2+BUAFNIQsXA?= =?us-ascii?q?gEBGH0CCQkBBwoCAQMFAhAPJAkJgxyCaIEXKVaBKoEANjEmgQpWRAMDTmt2h?= =?us-ascii?q?A9+JoFyAYVOElcKCw9bggNmggpgAQEHDYEdhm2BTIEiCGsbEB43ERATDQMIb?= =?us-ascii?q?h0CMToDBQMEMgoSDAsfBVQDQAZICwMCGgUDAwSBLAULGgIQLCYDAxJJAhAUA?= =?us-ascii?q?zgDAwYDCjEuT0EMUANkHzEJPA8MGgIbFA0kIwIsPgMJChACFgMdFAQwEQkLJ?= =?us-ascii?q?gMqBjYCEgwGBgZcIBYJBCMDCAQDUAMgcBEDBBoECwd2gUiBdQQTRAMQgTKHQ?= =?us-ascii?q?oJYgz+CIIQ4ToFWLwNEHUADC209NRQbKKUUDQFvAgGBcwolDgouBgEBFRA0B?= =?us-ascii?q?xMHDgMCAQcMCAoEAhMNAi4EBAgRGwUKBQ8TCw0EAQkCARIHDxkGCQILAi0Dk?= =?us-ascii?q?jMMBAwYKgNysAxsNAeEFoFbBgyIe4EkkhWDVYQFgVaLJhqZFSKYQCCCNIZJU?= =?us-ascii?q?wqBGwmCVZUUJgYEE4U5gXsjbD8eDAczGjBDDQiCUgkWMBwPV4dKhy0BCIIbK?= =?us-ascii?q?IE+gRgOgXU7gkWULgNBNQEBAQEJLgIHAQoBAQMJhWIBAWmCIQEnBAiBSAEB?= IronPort-PHdr: A9a23:/UWs8BHarV7RGXwHdg+vXJ1GfwRDhN3EVzX9CrIZgr5DOp6u447ld BSGo6k33RmQBt+QtKwMotGVmp6jcFRD26rJiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wE ZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbAhEmj6wbalvI Bi4swnducsbjIp/Iast1xXFpWdFdOtRyW50P1yfmAry6Nmt95B56SRQvPwh989EUarkeqkzU KJVAjc7PW0r/cPnrRbMQxeB6XsaSWUWjwFHAxPZ4xHgX5f+qTX1u+xg0ySHJ8L2TLQ0WTO/7 6d3TRLjlSkKOyIl/GzRl8d8jKFVoBS/pxx+2I7UYZqaNP5gcajAc9IaQnBBUdtKVydcBo+xY ZcDA+8HMO1FrYfyukEOoAO+CweyGe3hxDxGiXDq0qAhyestDRvL0RY8E94SsnnZqsj+OqcIU eCyyanF1SnOb/dM1jf79YPGbwwuofGJXbJxbcrR1VQkGgTfgVWUs4PlOSmZ1v8RvGib6upgV P6vi3I8pgFppTivwsctipXXiY0JylDE8yR5wJ8oJdKmUkJ7ZsSkEJRJuiycKoB5Td8sTXtyt yYm1r0Jp4S7fC4SxZg72hLSZOCLfoaU7x/tWuicLit0iXNndb+jiBu88VWsx+P/W8Wo01tHs jZJn8XOu30D1xLe5daLRPVg80q93TuC0R3Y5O9DIUAxj6XbKpghz6YolpUNrUTDHzP2l1vuj K+Rc0Uk//an5/7hYrr4up+QL4h0hR3kPaQrnsyzG+M4MhIBX2SD9uS81aHj/U3kQLpRlPE5j q7ZsJXCKcsGvK65BBdV3Z0k6xewFTupzNMYnXwfIFJLeRKHgI3pNEvULP/kCve/hkygkCxqx /DJJr3hBo/CLn7ZnLfmZ7Z95FZQyA0vwt9F4pJUDqgNIOn9WkPrs9zYFBA5PxSqzOb9EtVyz J8eWWOWAq+ELqzeq0OH5uI3L+aQZY8Vojj8J+Ik5/7olXM5nkMScrOs3ZsTcny0BPNmI1+WY Xb0ntcOC30KvgsjQ+P0k12OSyJcZ3G3X64k6DE7EpipDYLZSYy0nLONxju0HppTZmxeC1CMF 23od4SeVPsWZiKSOMlsmSEHW7i5U4ItyA+iuQvgx7Z6MubZ9TcUuJz/2NRv6eDemgk++SF6A siAyW2BUWF5k2wSSzMowaxzu1Jxx1iH3KV+nvdVC9hT5+5SUgcmK5Hc1fF0C9HzWw3fZtqFV FCrSci8Dz4rVNI+2doObl59G9q8ihDD2DKnA7oalrCWHpA06qXc33zxJsZh1XnJyKkhj18nQ stWKG2pmLRz9w/JB47Gi0mZlqCqeroA3CPV6WuP026DsFtFXAJsXqjJR34SalfModn36U7OV 7quBq4mMgtFx86CMKxKatjxgFtbWPntJcjSbnqylGmsCxeIx6uBYozodWgFxCXdD0wEkgAP/ XmYKQc+BiGho2PHDDxzC13jeUTs8fNxqH6jVEA0yxuFb0t727qu5hEVhfmcS/IP3rIYoyous DJ0HEu7393KFdWAvBBtfKBTbNIy+ltH0njZtwNlMpymNK9tnkQefBhvv0PyyxV3DZ1NndUyo HMw0AVyMb6Y0E9Gdz6AwZ//ILjXKm3r8BCraq7WwU3e3c2N+qYP7fQ4s0/ssBuoFkok6XVn0 sNa32GS5pXQX0IuVse7VlkxvVAuo67cSi0i4cXS2GE6deG/uzrGntYoH/cNyxC6ft4ZPrnXO hX1FpgzA8GoYNchm12ocg5MaOlW/ahyJMimcvqaxIazO+JxgD+tjWJG+Z1wlEWW+HwvGabzw 58ZzqTAjUO8XDDmgQL66qgf+KhBbDAWRS+kzDT8QZVWfut0dJoKDmGnJ4u2wM9/jtjjQS0Q7 0atUnUB3sLhYh+OdxrlxwQF3EAepzq8kiu9ziBouykuqruD0SfOxeX7aRdBPXREFyF5lVm5G YGvlJgBWVSwKQ0glR+r/0H/kpNhn/wqHVPMQBJsX33uKGVzTqa7tryDetNCrpQyvnBeVO26J 0uRSrv8vwcy2ST+GWBT33Y+KyHsvY/2zFRhkGzIFH9otzLCfN1ogxfS4NuJXflKwj8PXzV1k xHSFgH6J96t7MmZnJfFs/mjWiSmTJI7nTDD64SGuWP74GRrBUb6hPWvgpj8FhB81ybn1t5sX CGOrRDmY4Ct2b7oeeRgNlJlAlPx8a8YUsl3j5cwiZcM2HMbmoTd/HwJln32OMla3qS2ZWQER DoCydrYqAb/30grInWMzoP/HnKTp6kpL9C+a2VQwSk96sFWFI+M67hVgSZ+oly5tB/cJ/9nk XZVyPcj7mIbn/BcoBAknUD/SvgZGUhVOzCplgzdtorv6vwPOCD0Kf7riBkb/5jpFryJrwBCV Wysf54jGXQ19cBjKBfX12W17Ij4ed7WZNZVtxuOkh6GgfIGTfB53vcMmydjPnrw+HM/zOtux ydU5snvjrKYKjBJ3PehBRpJKjD+Z8US4yzgy6FEkZOf24mpWI5qGjAKQIfAR/W1FjkfrrLia xbIFycz4CT+e/KXDUqE5UFqomiaWZmvPnfRP3IZyNR+WDGFI0hOnA0fXDM7h4M0UAewy4ayF SUxriBU7Vn+pBxWz+tuPBSqSWbTqjCjbTIsQYSeJh5bhu1bz3/cKtfWrud6HiUDu4aksBTIM WuDIQJBEWAOXEWAQVHlJLino9faoaCUAe+3Lv2GZrvry6QWbM2znced6JRnqhKsY92IOmh+A vY73EtaQH0/HN7WzjwLQipRjCnNas+HuD+2/TBxpc2ktvG3SETo/4TqafMaPdh0+h+wiLuOL KbJ3nc/cG4EkMhUgySUgLEElEYfkSRvayWgHfwbuCjBQbiR/80fRx8XZiVvNddZuqc13w1DI 8ne2Zv+0r91iOJwCk8QDAaw3JjxOYpReyfmaACiZg7DLrmNKDzVztuiZKq9TeYVl+BIr1irv i7dFUb/PzOFnj2vVha1MOgKgjvIWX4W8Iy7bBtpDnDuCdz8bRjueuRNtmVj84crhybuFTsEN jxtb05GrruR9D5VxPJlFDlI6nNja/KPmyOY8/XwIJELt/BmGWJxy/Ic5241gegwjmkMVLlul S3eo8Q76WqcqbHa+AB4UU9qimNTg4aaoUhpOaPY74RNH3He80cE6WyWTQ8Bp95kFsHHsadNz NPCj+T2dCcE9Mjbt5h5ZYCcOIeMN3wvNgDsETjfAV4eTDKlAmrYglRUjPCY8nDG5oh/sJXnn 4ACD6NKTFFgXO1PEVxrRZZRRfU/FiNhi7OQi9QEoGazvAWEDtsPpYjJD7rRAO2zem/D3P8dP 0dOmuu+dthbdYzjhx47MAg8xdyWXRGIG4sQx08pJkw1uBkfoSE4FzdqnRy/LFr1vzdQFObqz ERu0lIsPb0hrGXlsQg+KweY9nU8zxljwo6A43jZMz/pcvXqBdkPWXatuxBja8GqHwp4P1/tx hJoZmiYGOoZyrJkcSoDZBb0gZJUArYcSKRFZERV3vSLf7Az1kwarCy7xEhB7O+DCJ14lQJsf 4T+535H3gtiapYyK8mybOJRyUNMg6uVoiKy/uUhmUkGIEIc7G6ZeCgJoVEFcL48KGKk8/dt5 gqLhzZYMDFWBrxz+q4srRt7YLjIxjmFsfYLMk2rMu2DM66V83PNk8KFWBJ4108FkVVE4akj0 condBncXEQuwb2NUhURYJOYeEcMN5YUryCVJnrd1IeFiYh4NIi8CO3yGOqHtaJPx1mhAB5sB IMUqMIIApir1kjca8bhNr8Mjxs3t2GJbB2ICupEfBWTnXIJuca6mdVM57IFcwMnHmQoFQXi/ rHTtxMni/qFXc4rbzEdRIRRP3Y/XouhkC5cvmhcJDOwz+QSxRPE6mPs4CPKA3OvCrgrLOfRf h5qBNysrH8n9LOqjFfM7pjED2TqbJJ6vdve9e4Rp5CGEu5ZC75nvA2P/usQD2zvWGnJH9mvI pH2YIR5dt34BEGxVVmngi40RcP8b569a7KFigbyScNIoZGWiXo9YNSlGGhUSHIS76kTobhxb goZb98nbA704k4gYrenLl7Q253rSmKpY1O+oNFVyvi8bLFMiS9wfqm90nRyF/nSKsGv9kocW JwBjhff3OuuIY5EXnqrcpS8UwDf/GwhkGxwKus5wuE+2Q7F914GPGLSHNE= IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:fRayKa0BprZrCUgTsQ7TVQqjBI8kLtp133Aq2lEZdPU1SL36qy nKpp4mPHDP5gr5NEtMpTniAsm9qBHnlKKdiLN5VdyftWLd11dAQrsP0aLShxXeXwf++uRe2a oISdkdNPTASX5gg4Lf6Am8euxQpOVvHZrY4Nvj8w== X-Talos-CUID: =?us-ascii?q?9a23=3A6Kz9FWucC4/PAzW2/MstsgWt6Is5e2OM83zAfHa?= =?us-ascii?q?hMl4uWuCqTwO26oRNxp8=3D?= X-Talos-MUID: 9a23:4ZIUnARUL0BkkV7uRXTcjQg8CdhIz52AGWQdnZ8Pv8CCMg5vbmI= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.07,175,1708383600"; d="scan'208,217";a="83673855" X-MGA-submission: =?us-ascii?q?MDGwNT1hxqvnWDbXb5VnFaas4dIC3lCTtabiAe?= =?us-ascii?q?N1yw4+OQ+yPGoFphBd5uAky9MwwH3xz6cW9QqYS+ln9YBI4cv2Q/IbNp?= =?us-ascii?q?sl/1t/A5S5yrHzc3/Py90ABxg7vF07JaZ4vFN6pzHthQCMxUuFD48ong?= =?us-ascii?q?jv5t4rKIcQ+a0OyKotqWSABA=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2024 16:31:25 +0200 Received: from mac-03220211.irisa.fr (mac-03220211.irisa.fr [131.254.21.249]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 1227E5648D4; Tue, 2 Apr 2024 16:31:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1712068284; bh=rq4JqMrgO/KTyxLP2WPmlQZkswpkBAXpsP4+uDNq8KU=; h=From:To:Subject:Date:Message-ID; b=DXQBGwjawaMiPd9NudaXgtLY9o4mheA8YDSRHGr7F9wzmmKfF1Cf6OAj9myTAOqlj 6bXl9YnLJxtKwkfpzbhCzyUNMRNs9ZPDO/A+q2jVSmOYQ8HDzc7iGVyoLNzcAbqfba 3pYlt1xvqLqbI8Tanv9hIf4n+7Fuh96wfs7bkxoo= From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 02 Apr 2024 16:31:22 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Apr 2 16:31:24 2024 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.499360, queueID=5578A5648D6 X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19106 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Here is the latest OCaml Weekly News, for the week of March 26 to April 02, 2024. Table of Contents =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 Odoc 3.0 planning OCaml Platform Newsletter: February 2024 Your Feedback Needed on OCaml Home Page Wireframe! OCaml Workshop 2024 at ICFP =E2=80=93 announcement and call for proposals down.0.2.0 and omod.0.4.0 stdlib-random 1.2 Other OCaml News Old CWN Odoc 3.0 planning =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90 Archive: Jon Ludlam announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80 For many years we've had a team here at Tarides working away on Odoc, quietly adding new features, fixing bugs, speeding things up and generally enabling OCaml package mantainers to write good documentation. Up until recently, those improvements have mostly been incremental, but with the recent addition of some larger new features like search and source rendering we've found we need to think a bit more broadly and consider how these changes will fit into the larger ecosystem. We're also thinking of how to extend the abilities of Odoc to handle more structure in the documentation, with better support for images, an improved sidebar, and a better ability to link to the docs of other packages. We've therefore started the process that's going to lead to Odoc 3.0, which will involve not only work on odoc itself, but also on ocaml.org, the documentation pipeline that produces the docs for ocaml.org, dune, and odig. It's being done incrementally, so we've started with the core issues of how to structure your docs, how to do references both within the docs and across packages, what the output file structure will look like and how the breadcrumbs will reflect that. What we've posted so far is by no means the final version, and we'd love to get feedback on the suggestions we've got so far. Getting this right is surprisingly complicated, so the more people we have thinking about it, the better our chances of success! So if you're interested in writing or reading docs, I encourage you to head on over to [the discussion] we've just started on [ocaml/odoc] and join in the conversation! [the discussion] [ocaml/odoc] OCaml Platform Newsletter: February 2024 =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Thibaut Mattio announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Welcome to the tenth edition of the OCaml Platform newsletter! In this February 2024 edition, we are excited to bring you the latest on the OCaml Platform, continuing our tradition of highlighting recent developments as seen in [previous editions]. To understand the direction we're headed, especially regarding development workflows and user experience improvements, check out our [roadmap]. *Highlights:* =E2=80=A2 The OCaml Platform tools have added support for OCaml 5.2. It's available in the temporary releases =E2=80=A2 [`Merlin 4.14-502~preview'] (@voodoos (Tarides)) =E2=80=A2 [`Ocaml-lsp-server 1.18.0~5.2preview'] (@voodoos (Tarides)) =E2=80=A2 [`Ppxlib 0.32.1~5.2preview'] (@NathanReb (partly funded by the OCaml Software Foundation)). *Releases:* =E2=80=A2 [UTop 2.14.0] =E2=80=A2 [Merlin 4.14] =E2=80=A2 [Dune 3.14.0] =E2=80=A2 [Ppxlib 0.31.2] =E2=80=A2 [Dune 3.13.1] [previous editions] [roadmap] [`Merlin 4.14-502~preview'] [`Ocaml-lsp-server 1.18.0~5.2preview'] [`Ppxlib 0.32.1~5.2preview'] [UTop 2.14.0] [Merlin 4.14] [Dune 3.14.0] [Ppxlib 0.31.2] [Dune 3.13.1] *[Dune]* Exploring Package Management in Dune ([W4]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C *Contributed by:* @rgrinberg (Tarides), @Leonidas-from-XIV (Tarides), @gridbugs (Tarides), @kit-ty-kate (Tarides), @Alizter *Why:* Unify OCaml tooling under a single command line for all development workflows. This addresses one of the most important pain points [reported by the community]. *What:* Prototyping the integration of package management into Dune using opam as a library. We're introducing a `dune pkg lock' command to generate a lock file and enhancing `dune build' to handle dependencies in the lock file. More details in the [Dune RFC]. *Activities:* =E2=80=A2 One of the main remaining blockers to make Dune package managem= ent usable in real world project is to make some of the low level dependencies, notably OCamlFind and the OCaml compiler, relocatable. =E2=80=93 [ocaml/ocamlfind#72] =E2=80=A2 We experimented with a Coq-platform patch to make OCamlFind relocatable, but we faced issues with packages using `topkg' due to `ocamlbuild' build failures. This led to identifying an error with directory symlink handling in Dune [ocaml/dune#9873], [ocaml/dune#9937] =E2=80=A2 To track the buildability of opam packages with Dune package management, we worked on a GitHub action that effectively provides us with a dashboard of opam packages coverage on a select set of packages. The repository is available at [gridbugs/dune-pkg-dashboard]. =E2=80=A2 Based on the findings from the above, several issues were opene= d on the Dune issue tracker. All the known issues are now tracked in the [Package Management MVP] milestone on Dune's issue tracker. =E2=80=A2 We also focused on improving features that were previously implemented. Noteworthy changes include the addition of [workspace package pins] and enhancements for correct path handling in packages =E2=80=93 [ocaml/dune#9940] =E2=80=A2 Work included updates and refactorings to improve source fetchi= ng, particularly the removal of a rudimentary Git config parser in favor of using `git config' directly ([ocaml/dune#9905]), and enhancements to how Dune handles Git repositories, such as the checking out of Git repos via `rev_store' ([ocaml/dune#10060]). =E2=80=A2 Contributions also focused on refining and testing Dune's packa= ge handling, including a fix to ensure that opam's untar code is not used ([ocaml/dune#10085]), and improvements to Dune's handling of recursive submodules in Git repos ([ocaml/dune#10130]). [W4] [reported by the community] [Dune RFC] [ocaml/ocamlfind#72] [ocaml/dune#9873] [ocaml/dune#9937] [gridbugs/dune-pkg-dashboard] [Package Management MVP] [workspace package pins] [ocaml/dune#9940] [ocaml/dune#9905] [ocaml/dune#10060] [ocaml/dune#10085] [ocaml/dune#10130] *[opam]* Native Support for Windows in opam 2.2 ([W5]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Contributed by:* @rjbou (OCamlPro), @kit-ty-kate (Tarides), @dra27 (Tarides), @AltGr (OCamlPro) *Why:* Enhance OCaml's viability on Windows by integrating native opam and `opam-repository' support, fostering a larger community, and more Windows-friendly packages. *What:* Releasing opam 2.2 with native Windows support, making the official `opam-repository' usable on Windows platforms. *Activities:* =E2=80=A2 Addressed the issue where the Windows loader would display bloc= king dialogue boxes upon failing to find DLLs, adhering to best practices by suppressing these dialogs, and opting for exit codes instead. This enhancement eliminates disruptive interruptions, ensuring a more seamless operation for automated tasks and CI environments. =E2=80=93 [#5828] =E2=80=A2 Fixed shell detection issues when opam is invoked via Cygwin's `/usr/bin/env', enhancing compatibility and user experience for those utilising Cygwin alongside `cmd' or PowerShell. =E2=80=93 [#5797] =E2=80=A2 Recommend Developer Mode on Windows. To optimise storage and al= ign with best practices, Developer Mode is recommended for enabling symlink support. =E2=80=93 [#5831] =E2=80=A2 Resolved issues related to environment variable handling, specifically fixing bugs where updates or additions to environment variables would incorrectly remove or alter them. =E2=80=93 [#5837] =E2=80=A2 Addressed early loading of git location information, particular= ly benefiting Windows users by ensuring correct retrieval and application of git-related configurations. =E2=80=93 [#5842] =E2=80=A2 Disabled ACL in Cygwin. By setting `noacl' in `/etc/fstab' for `/cygdrive' mount, this change avoids permission mismatch errors, enhancing reliability and usability for Cygwin users. =E2=80=93 [#5796] =E2=80=A2 Introduced the ability to define the package manager path at initialisation, improving customisation and integration capabilities for Windows users. =E2=80=93 [#5847] =E2=80=A2 Added `winsymlinks:native' to the Cygwin environment variable, improving compatibility within the Cygwin ecosystem. =E2=80=93 [#5793] =E2=80=A2 Fixed script generation issues related to path quoting, ensuring smoother initialisation and setup processes, especially in mixed-environment scenarios like Cygwin. =E2=80=93 [#5841] =E2=80=A2 Corrected the precedence and handling of `git-location' configurations during initialisation, streamlining Git integration and providing clearer control over Git settings. =E2=80=93 [#5848] =E2=80=A2 Extended the use of eval-variables to internal Cygwin installat= ions and adjusted the setup to better accommodate Windows-specific requirements, enhancing flexibility and system compiler integration. =E2=80=93 [#5829] [W5] [#5828] [#5797] [#5831] [#5837] [#5842] [#5796] [#5847] [#5793] [#5841] [#5848] [#5829] *[=E2=80=8B`odoc'=E2=80=8B]* Unify OCaml.org and Local Package Documentatio= n ([W25]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Contributed by:* @jonludlam (Tarides), @julow (Tarides), @panglesd (Tarides), Luke Maurer (Jane Street) *Why:* Improving local documentation generation workflow will help package authors write better documentation for their packages, and consolidating the different `odoc' documentation generators will help make continuous improvements to `odoc' available to a larger audience. *What:* We will write conventions that drivers must follow to ensure that their output will be functional. Once established, we will update the Dune rules to follow these rules, access new `odoc' features (e.g., source rendering), and provide similar functionalities to docs.ocaml.org (a navigational sidebar, for instance). This will effectively make Dune usable to generate OCaml.org package documentation. *Activities:* =E2=80=A2 Work continued on the design for the new `odoc' drivers convent= ions shared by Dune and OCaml.org, and we plan to publish the RFC in March. =E2=80=A2 We also started comparing and prototyping various approaches to= add sidebar support to `odoc'. Several prototypes have been developed and discussed with the team, and we will resume work on the sidebar implementation once the driver conventions have been adopted. [W25] *[=E2=80=8B`odoc'=E2=80=8B]* Add Search Capabilities to `odoc' ([W25]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C *Contributed by:* @panglesd (Tarides), @EmileTrotignon (Tarides), @julow (Tarides), @jonludlam (Tarides) *Why:* Improve usability and navigability in OCaml packages documentation, both locally and on OCaml.org, by offering advanced search options like type-based queries. *What:* Implementing a search engine interface in `odoc', complete with a UI and a search index. Additionally, we're developing a default client-side search engine based on Sherlodoc. *Activities:* =E2=80=A2 The implementation and refinement of sherlodoc's integration wi= th odoc were our major focuses, this included making sherlodoc pass opam CI on different architectures and adjusting the dune rules for better usability =E2=80=93 [ocaml/dune#9956] =E2=80=A2 After the big sherlodoc PR was merged and sherlodoc released la= st month, work continued on refining the dune rules for sherlodoc and on adjusting the search bar's scope based on discussions with the team. =E2=80=A2 We implemented keyboard navigation in the search bar to improve= its usability =E2=80=93 [ocaml/odoc#1088] [W25] [ocaml/dune#9956] [ocaml/odoc#1088] *[=E2=80=8B`odoc'=E2=80=8B]* Improving `odoc' Performance ([W25]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Contributed by:* @jonludlam (Tarides), @julow (Tarides), @gpetiot (Tarides) *Why:* Address performance issues in `odoc', particularly for large-scale documentation, to enhance efficiency and user experience and unlock local documentation generation in large code bases. *What:* Profiling `odoc' to identify the main performance bottlenecks and optimising `odoc' with the findings. *Activities:* =E2=80=A2 Performance improvements were achieved by addressing issues with source location lookups for non-existent identifiers, significantly improving link time for large codebases. =E2=80=A2 Several PRs from the module-type-of work were opened, including fixes and tests aimed at enhancing `odoc''s handling of transitive library dependencies, shape lookup, and module-type-of expansions =E2= =80=93 [ocaml/odoc#1078], [ocaml/odoc#1081] =E2=80=A2 Improve the efficiency of finding `odoc' files in accessible pa= ths, cutting the time to generate documentation by two in some of our tests =E2=80=93 [ocaml/odoc#1075] [W25] [ocaml/odoc#1078] [ocaml/odoc#1081] [ocaml/odoc#1075] *[Merlin]* Support for Project-Wide References in Merlin ([W19]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Contributed by:* @voodoos (Tarides) *Why:* Enhance code navigation and refactoring for developers by providing project-wide reference editor features, aligning OCaml with the editor experience found in other languages. *What:* Introducing `ocamlmerlin server occurrences' and LSP `textDocument/references' support, extending compiler's Shapes for global occurrences and integrating these features in Dune, Merlin, and OCaml LSP. *Activities:* =E2=80=A2 Continued investigations and improvements on Dune rules to addr= ess configuration issues =E2=80=A2 After adding support for OCaml 5.2 to `merlin-lib', we've rebas= ed the project-wide occurrences work over it. =E2=80=A2 We also started work with the Jane Stree team to test project w= ide references at scale in their monorepo. Following our initial integration, we focused on refining Merlin's indexing and occurrence query capabilities, including addressing bottlenecks and regressions in shape reductions =E2=80=93 [ocaml/ocaml#13001] [W19] [ocaml/ocaml#13001] *[Merlin]* Improving Merlin's Performance ([W19]) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C= =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Contributed by:* @pitag (Tarides), @Engil (Tarides) *Why:* Some Merlin queries have been shown to scale poorly in large codebases, making the editor experience subpar. Users report that they sometimes must wait a few seconds to get the answer. This is obviously a major issue that hurts developer experience, so we're working on improving Merlin performance when it falls short. *What:* Developing benchmarking tools and optimising Merlin's performance through targeted improvements based on profiling and analysis of benchmark results. *Activities:* =E2=80=A2 In `merlin-lib', we've continued the work on a prototype to pro= cess the buffer in parallel with the query computation. Parallelism refers to OCaml 5 parallelism (domains). [W19] Your Feedback Needed on OCaml Home Page Wireframe! =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Claire Vandenberghe announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80 I'm reaching out to ask for a few minutes of your time to review the wireframe designs for the OCaml Home, Industrial, and Academic pages. After conducting user interviews with OCaml enthusiasts, we've gathered valuable insights on what information newcomers find most helpful when visiting the OCaml home. As a result, we've been working on restructuring these three major pages to better cater to user needs. (*Please note that these wireframes primarily focus on navigation, layout, and content, rather than the User Interface (UI).*) Your feedback is crucial at this stage, so please feel free to leave comments directly on Figma, via email, or let's schedule a quick call to discuss. Thank you for taking part in this review. *Figma Link*: OCaml Workshop 2024 at ICFP =E2=80=93 announcement and call for proposals =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Sonja Heinze announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 This year, [ICFP] (the International Conference on Functional Programming) is going to take place in beautiful Milan. Such as every year since 2012, on the last day of that conference, i.e. on *September 7th (Saturday)*, we'll hold a workshop on OCaml. The workshop is intended to cover all different kinds of aspects of the OCaml programming language as well as the OCaml ecosystem and its community, such as scientific and/or research-oriented, engineering and/or user-oriented, as well as social and/or community-oriented. [ICFP] Call for talk proposals =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C The [call for talk proposals] for the workshop is open. [call for talk proposals] =E2=97=8A Dates Here are the important dates: =E2=80=A2 Talk proposal submission deadline: May 30th (Thursday) =E2=80=A2 Author notification: July 4th (Thursday) =E2=80=A2 Workshop: September 7th (Saturday) =E2=97=8A Submissions Submissions are typically around 2 pages long (flexible), describing the motivations of the work and what the presentation would be about. We encourage everyone who might be interested in giving a talk to submit a proposal! We truly mean everyone, and also have strongly anyone in mind who belongs to a group that's traditionally underrepresented at OCaml workshops, e.g. due to your gender(s) or non-gender, where you're from or based or whatever other kinds of characteristics you might have. You should all be able to find all information you'll need to submit a proposal on the official [call for talk proposals]. However, if you have any question, don't hesitate to ask us. [call for talk proposals] =E2=97=8A Quota on accepted talks per affiliation Even though none of us is a fan of quotas, last year's workshop experimented with a quota of a maximum of four talks given by speakers with the same company/university/institute affiliation. In order to guarantee a coverage of a diverse range of topics and perspectives, we'll experiment with the same affiliation quota again. Do not hesitate to submit your talk proposal in any case: quotas, if needed, will be taken into account by the PC after reviewing all submissions, so there's no reason to self-select upfront. About the workshop itself =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C So far, we've only talked about talk proposals and formalities. The really exciting part will be the workshop itself! It's going to be a whole-day workshop and, similarly to previous years, it's likely going to have four sessions of about four talks each. It's a rather informal and interactive environment, where people engage in all kinds of conversations about OCaml during the breaks and after the workshop. =E2=97=8A Hybrid attendance and cost for speakers We're aiming to make the workshop hybrid with the same streaming modalities as last year, meaning that *talks as well as participation can be either in-person or remote*, and *remote attendance will be free*. To promote a good atmosphere, communication and engagement, we prefer to have most talks in-person, but remote talks will be most welcome as well. We know that giving the talk in-person comes with an economic cost. We're very happy to announce that thanks to the [OCaml Software Foundation], *registration fees will be covered for speakers* in case they can't get them funded by other means (e.g. their employer). We will do our best to provide the best workshop experience possible for remote participants, within the constraints of the hybrid format. While attending in-person does come with advantages, it also comes with an environmental cost, and we strongly support transitioning to a less plane-intensive organization for conferences and community events :deciduous_tree: . [OCaml Software Foundation] =E2=97=8A Related events The day before the OCaml workshop, i.e. Sep 6th (Friday), is the day of the [ML workshop], with focus on more theoretical aspects of OCaml and the whole family of ML languages in general. The ML workshop [has already been announced on the OCaml discuss] and tends to be very interesting for OCaml lovers as well. We're looking forward to the the talk submissions and to the workshop! Let us know if you have any questions. @Armael and @pitag [ML workshop] [has already been announced on the OCaml discuss] down.0.2.0 and omod.0.4.0 =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Daniel B=C3=BCnzli announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 It's my pleasure to announce new releases for [down] and [omod] which provide a nice `ocaml' toplevel user experience upgrade. Simply add to your `.ocamlinit': =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 #use "down.top" =E2=94=82 #use "omod.top"=20 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 And enjoy all the benefits you can learn about in the [down manual] and in the [omod tutorial]. These are mainly maintenance releases but if you ever though that down was a bit slow when pasting code, it now (well for almost two years=E2=80= =A6) implements [bracketed pastes]. Thanks to @emillon for the reference. [down] [omod] [down manual] [omod tutorial] [bracketed pastes] stdlib-random 1.2 =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90 Archive: octachron announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80 The library `stdlib-random' is a small compatibility library that provides compiler-independent implementations of the PRNGs used in the history of the standard library `Random': =E2=80=A2 stdlib-random.v3: implement the PRNG used in OCaml 3.07 to 3.11 =E2=80=A2 stdlib-random.v4: implement the PRNG used in OCaml 3.12 to 4.14 =E2=80=A2 stdlib-random.v5: implement the PRNG currently used in OCaml 5 =E2=80=A2 stdlib-random.v5o: implement the PRNG currently used in OCaml 5= in pure OCaml This library is targeted toward programs that need a deterministic and stable behaviour of the `Random' module across OCaml versions. The newly released version 1.2.0 updates all implementations to provide the new `int_in_range' function (and its `int32_in_range', `nativeint_in_range', `int64_in_range' variants) that will be available in OCaml 5.2.0. Note however that the implementations on the pre-OCaml 5 PRNGs are not optimal, since I prioritised the maintenance cost over performance, but that could be changed if required. Other OCaml News =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 >>From the ocaml.org blog =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. =E2=80=A2 [NetHSM: Bringing Open Source to the World of Hardware Security Modules] =E2=80=A2 [Frama-Clang v0.0.15 for Frama-C 28.0 Nickel] [the ocaml.org blog] [NetHSM: Bringing Open Source to the World of Hardware Security Modules] [Frama-Clang v0.0.15 for Frama-C 28.0 Nickel] Old CWN =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe to the [caml-list]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt] --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of March 26 to April 02,= 2024.

Odoc 3.0 planning

Jon Ludlam announced

For many years we've had a team here at Tarides working away on Odoc, quiet= ly adding new features, fixing bugs, speeding things up and generally enabling OCaml package mantainers to write good documentation= . Up until recently, those improvements have mostly been incremental, but with the recent addition of some larger new features like = search and source rendering we've found we need to think a bit more broadly and consider how these changes will fit into the larger ec= osystem. We're also thinking of how to extend the abilities of Odoc to handle more structure in the documentation, with bette= r support for images, an improved sidebar, and a better ability to link to the docs of other packages.

We've therefore started the process that's going to lead to Odoc 3.0, which= will involve not only work on odoc itself, but also on ocaml.org, the documentation pipeline that produces the docs for ocaml.org,= dune, and odig. It's being done incrementally, so we've started with the core issues of how to structure your docs, how to do refer= ences both within the docs and across packages, what the output file structure will look like and how the breadcrumbs will reflect t= hat. What we've posted so far is by no means the final version, and we'd love to get feedback on the suggestions we've got so far.= Getting this right is surprisingly complicated, so the more people we have thinking about it, the better our chances of success!

So if you're interested in writing or reading docs, I encourage you to head= on over to the discussion we've just started on ocaml/odoc and join in the conversation!

OCaml Platform Newsletter: February 2024

Thibaut Mattio announced

Welcome to the tenth edition of the OCaml Platform newsletter!

In this February 2024 edition, we are excited to bring you the latest on th= e OCaml Platform, continuing our tradition of highlighting recent developments as seen in previous editions. To understand the direction we're headed, especially regarding development workflows and user experienc= e improvements, check out our roadmap.

Highlights:

Releases:

[Dune] Exploring Package Management in Dune (<= a href=3D"https://ocaml.org/docs/platform-roadmap#w4-build-a-project">W4)

Contributed by: @rgrinberg (Tarides), @Leonidas-from-XIV (Tarides), = @gridbugs (Tarides), @kit-ty-kate (Tarides), @Alizter

Why: Unify OCaml tooling under a single command line for all develop= ment workflows. This addresses one of the most important pain points reported by the community.

What: Prototyping the integration of package management into Dune us= ing opam as a library. We're introducing a dune pkg lock command to generate a lock file and enhancing dune build to ha= ndle dependencies in the lock file. More details in the Dune RFC.

Activities:

  • One of the main remaining blockers to make Dune package management usab= le in real world project is to make some of the low level dependencies, not= ably OCamlFind and the OCaml compiler, relocatable. – ocaml/ocamlfind#72
  • We experimented with a Coq-platform patch to make OCamlFind relocatable= , but we faced issues with packages using topkg due to o= camlbuild build failures. This led to identifying an error with dire= ctory symlink handling in Dune ocaml/dune#9873, ocaml/dune#9937
  • To track the buildability of opam packages with Dune package management= , we worked on a GitHub action that effectively provides us with a dashboar= d of opam packages coverage on a select set of packages. The repository is = available at gri= dbugs/dune-pkg-dashboard.
  • Based on the findings from the above, several issues were opened on the= Dune issue tracker. All the known issues are now tracked in the Package Management MVP milestone on Dune'= s issue tracker.
  • We also focused on improving features that were previously implemented.= Noteworthy changes include the addition of workspace package pins and enhancements for corre= ct path handling in packages – ocaml/dune#9940
  • Work included updates and refactorings to improve source fetching, part= icularly the removal of a rudimentary Git config parser in favor of using <= code>git config directly (ocaml/dune#9905), and enhancements to how Dune handles Git re= positories, such as the checking out of Git repos via rev_store (ocaml/dune#10060).
  • Contributions also focused on refining and testing Dune's package handl= ing, including a fix to ensure that opam's untar code is not used (ocaml/dune#10085), and im= provements to Dune's handling of recursive submodules in Git repos (ocaml/dune#10130).

[opam] Native Support for Windows in opam 2.2 = (W5)

Contributed by: @rjbou (OCamlPro), @kit-ty-kate (Tarides), @dra27 (T= arides), @AltGr (OCamlPro)

Why: Enhance OCaml's viability on Windows by integrating native opam= and opam-repository support, fostering a larger community, and more Windows-friendly packages.

What: Releasing opam 2.2 with native Windows support, making the off= icial opam-repository usable on Windows platforms.

Activities:

  • Addressed the issue where the Windows loader would display blocking dia= logue boxes upon failing to find DLLs, adhering to best practices by suppre= ssing these dialogs, and opting for exit codes instead. This enhancement el= iminates disruptive interruptions, ensuring a more seamless operation for a= utomated tasks and CI environments. – #5828
  • Fixed shell detection issues when opam is invoked via Cygwin's /u= sr/bin/env, enhancing compatibility and user experience for those ut= ilising Cygwin alongside cmd or PowerShell. – #5797
  • Recommend Developer Mode on Windows. To optimise storage and align with= best practices, Developer Mode is recommended for enabling symlink support= . – #5831
  • Resolved issues related to environment variable handling, specifically = fixing bugs where updates or additions to environment variables would incor= rectly remove or alter them. – #5837
  • Addressed early loading of git location information, particularly benef= iting Windows users by ensuring correct retrieval and application of git-re= lated configurations. – #5842
  • Disabled ACL in Cygwin. By setting noacl in /etc/fst= ab for /cygdrive mount, this change avoids permission m= ismatch errors, enhancing reliability and usability for Cygwin users. = 13; #5796
  • Introduced the ability to define the package manager path at initialisa= tion, improving customisation and integration capabilities for Windows user= s. – #5847
  • Added winsymlinks:native to the Cygwin environment variabl= e, improving compatibility within the Cygwin ecosystem. – #5793
  • Fixed script generation issues related to path quoting, ensuring smooth= er initialisation and setup processes, especially in mixed-environment scen= arios like Cygwin. – #5841
  • Corrected the precedence and handling of git-location conf= igurations during initialisation, streamlining Git integration and providin= g clearer control over Git settings. – #5848
  • Extended the use of eval-variables to internal Cygwin installations and= adjusted the setup to better accommodate Windows-specific requirements, en= hancing flexibility and system compiler integration. – #5829

[=E2=80=8Bodoc=E2=80=8B] Unify OC= aml.org and Local Package Documentation (W25)

Contributed by: @jonludlam (Tarides), @julow (Tarides), @panglesd (T= arides), Luke Maurer (Jane Street)

Why: Improving local documentation generation workflow will help pac= kage authors write better documentation for their packages, and consolidating the different odoc documentation generators = will help make continuous improvements to odoc available to a larger audience.

What: We will write conventions that drivers must follow to ensure t= hat their output will be functional. Once established, we will update the Dune rules to follow these rules, access new odoc features (e.g., source rendering), and provide similar functionalities to docs.ocaml.org (a navigational sidebar, for instance). T= his will effectively make Dune usable to generate OCaml.org package documentation.

Activities:

  • Work continued on the design for the new odoc drivers conv= entions shared by Dune and OCaml.org, and we plan to publish the RFC in Mar= ch.
  • We also started comparing and prototyping various approaches to add sid= ebar support to odoc. Several prototypes have been developed a= nd discussed with the team, and we will resume work on the sidebar implemen= tation once the driver conventions have been adopted.

[=E2=80=8Bodoc=E2=80=8B] Add Sear= ch Capabilities to odoc (W25)

Contributed by: @panglesd (Tarides), @EmileTrotignon (Tarides), @jul= ow (Tarides), @jonludlam (Tarides)

Why: Improve usability and navigability in OCaml packages documentat= ion, both locally and on OCaml.org, by offering advanced search options like type-based queries.

What: Implementing a search engine interface in odoc, c= omplete with a UI and a search index. Additionally, we're developing a default client-side search engine based on Sherlodoc.

Activities:

  • The implementation and refinement of sherlodoc's integration with odoc = were our major focuses, this included making sherlodoc pass opam CI on diff= erent architectures and adjusting the dune rules for better usability = 13; ocaml/dune#9956=
  • After the big sherlodoc PR was merged and sherlodoc released last month= , work continued on refining the dune rules for sherlodoc and on adjusting = the search bar's scope based on discussions with the team.
  • We implemented keyboard navigation in the search bar to improve its usa= bility – ocaml/o= doc#1088

[=E2=80=8Bodoc=E2=80=8B] Improvin= g odoc Performance (W25)

Contributed by: @jonludlam (Tarides), @julow (Tarides), @gpetiot (Ta= rides)

Why: Address performance issues in odoc, particularly f= or large-scale documentation, to enhance efficiency and user experience and unlock local documentation generation in large code bases.

What: Profiling odoc to identify the main performance b= ottlenecks and optimising odoc with the findings.

Activities:

  • Performance improvements were achieved by addressing issues with source= location lookups for non-existent identifiers, significantly improving lin= k time for large codebases.
  • Several PRs from the module-type-of work were opened, including fixes a= nd tests aimed at enhancing odoc's handling of transitive libr= ary dependencies, shape lookup, and module-type-of expansions – ocaml/odoc#1078, ocaml/odoc#1081
  • Improve the efficiency of finding odoc files in accessible= paths, cutting the time to generate documentation by two in some of our te= sts – ocaml/odoc= #1075

[Merlin] Support for Project-Wide References i= n Merlin (W19)

Contributed by: @voodoos (Tarides)

Why: Enhance code navigation and refactoring for developers by provi= ding project-wide reference editor features, aligning OCaml with the editor experience found in other languages.

What: Introducing ocamlmerlin server occurrences and LS= P textDocument/references support, extending compiler's Shapes= for global occurrences and integrating these features in Dune, Merlin, and OCam= l LSP.

Activities:

  • Continued investigations and improvements on Dune rules to address conf= iguration issues
  • After adding support for OCaml 5.2 to merlin-lib, we've re= based the project-wide occurrences work over it.
  • We also started work with the Jane Stree team to test project wide refe= rences at scale in their monorepo. Following our initial integration, we fo= cused on refining Merlin's indexing and occurrence query capabilities, incl= uding addressing bottlenecks and regressions in shape reductions – <= a href=3D"https://github.com/ocaml/ocaml/pull/13001">ocaml/ocaml#13001<= /li>

[Merlin] Improving Merlin's Performance (W19)

Contributed by: @pitag (Tarides), @Engil (Tarides)

Why: Some Merlin queries have been shown to scale poorly in large co= debases, making the editor experience subpar. Users report that they sometimes must wait a few seconds to get the answer. This is obvi= ously a major issue that hurts developer experience, so we're working on improving Merlin performance when it falls short.

What: Developing benchmarking tools and optimising Merlin's performa= nce through targeted improvements based on profiling and analysis of benchmark results.

Activities:

  • In merlin-lib, we've continued the work on a prototype to = process the buffer in parallel with the query computation. Parallelism refe= rs to OCaml 5 parallelism (domains).

Your Feedback Needed on OCaml Home Page Wireframe!

Claire Vandenberghe announced

I'm reaching out to ask for a few minutes of your time to review the wirefr= ame designs for the OCaml Home, Industrial, and Academic pages.

After conducting user interviews with OCaml enthusiasts, we've gathered val= uable insights on what information newcomers find most helpful when visiting the OCaml home.

As a result, we've been working on restructuring these three major pages to= better cater to user needs.=20

(Please note that these wireframes primarily focus on navigation, layout= , and content, rather than the User Interface (UI).)

Your feedback is crucial at this stage, so please feel free to leave commen= ts directly on Figma, via email, or let's schedule a quick call to discuss. Thank you for taking part in this review.=20

Figma Link: https://www.figma.com/file/eLNSdvayxqvvfBsRsdbJXN/OCaml-Home-Page= ?type=3Ddesign&node-id=3D5%3A2500&mode=3Ddesign&t=3DhHclskuVpoO= zKP2u-1

OCaml Workshop 2024 at ICFP – announcement and call for= proposals

Sonja Heinze announced

This year, ICFP (the Internatio= nal Conference on Functional Programming) is going to take place in beautiful Milan.

3D"rJIS7LPAT.j=

Such as every year since 2012, on the last day of that conference, i.e. on = September 7th (Saturday), we'll hold a workshop on OCaml. The workshop is intended to cover all different kinds of aspects of = the OCaml programming language as well as the OCaml ecosystem and its community, such as scientific and/or research-oriented, e= ngineering and/or user-oriented, as well as social and/or community-oriented.

Call for talk proposals

The = call for talk proposals for the workshop is open.

  • Dates

    Here are the important dates:

    • Talk proposal submission deadline: May 30th (Thursday)
    • Author notification: July 4th (Thursday)
    • Workshop: September 7th (Saturday)
  • Submissions

    Submissions are typically around 2 pages long (flexible), describing the mo= tivations of the work and what the presentation would be about.

    We encourage everyone who might be interested in giving a talk to submit a = proposal! We truly mean everyone, and also have strongly anyone in mind who belongs to a group that's traditionally underrepresented= at OCaml workshops, e.g. due to your gender(s) or non-gender, where you're from or based or whatever other kinds of character= istics you might have. You should all be able to find all information you'll need to submit a proposal on the official call for talk proposals. However, if you have any question, don't hesitate to ask us.

  • Quota on accepted talks per affiliation

    Even though none of us is a fan of quotas, last year's workshop experimente= d with a quota of a maximum of four talks given by speakers with the same company/university/institute affiliation. In order t= o guarantee a coverage of a diverse range of topics and perspectives, we'll experiment with the same affiliation quota again.

    Do not hesitate to submit your talk proposal in any case: quotas, if needed= , will be taken into account by the PC after reviewing all submissions, so there's no reason to self-select upfront.

About the workshop itself

So far, we've only talked about talk proposals and formalities. The really = exciting part will be the workshop itself! It's going to be a whole-day workshop and, similarly to previous years, it's likely going= to have four sessions of about four talks each. It's a rather informal and interactive environment, where people engage in all kin= ds of conversations about OCaml during the breaks and after the workshop.

  • Hybrid attendance and cost for speakers

    We're aiming to make the workshop hybrid with the same streaming modalities= as last year, meaning that talks as well as participation can be either in-person or remote, and remote attendan= ce will be free. To promote a good atmosphere, communication and engagement, we prefer to have most talks in-person, but r= emote talks will be most welcome as well.

    We know that giving the talk in-person comes with an economic cost. We're v= ery happy to announce that thanks to the = OCaml Software Foundation, registration fees will be covered for speakers in ca= se they can't get them funded by other means (e.g. their employer).

    We will do our best to provide the best workshop experience possible for re= mote participants, within the constraints of the hybrid format. While attending in-person does come with advantages, it also comes = with an environmental cost, and we strongly support transitioning to a less plane-intensive organization for conferences and co= mmunity events :deciduous_tree: .

  • Related events

    The day before the OCaml workshop, i.e. Sep 6th (Friday), is the day of the= ML workshop, with focus on more theoretical aspects of OCaml and the whole= family of ML languages in general. The ML workshop h= as already been announced on the OCaml discuss and tends to be very interesting for OCaml lovers as well.

    We're looking forward to the the talk submissions and to the workshop! Let us know if you have any questions. @Armael and @pitag

down.0.2.0 and omod.0.4.0

Daniel B=C3=BCnzli announced

It's my pleasure to announce new releases for down and omod which provide a nic= e ocaml toplevel user experience upgrade. Simply add to your .ocamlinit:=20

#use "down.top"
#use "omod.top"=20

And enjoy all the benefits you can learn about in the down manual and in the omod tutor= ial.

These are mainly maintenance releases but if you ever though that down was = a bit slow when pasting code, it now (well for almost two years=E2=80=A6) implements bracketed pastes. Thanks to @emillon for the reference.

stdlib-random 1.2

octachron announced

The library stdlib-random is a small compatibility library tha= t provides compiler-independent implementations of the PRNGs used in the history of the standard library Random:

  • stdlib-random.v3: implement the PRNG used in OCaml 3.07 to 3.11
  • stdlib-random.v4: implement the PRNG used in OCaml 3.12 to 4.14
  • stdlib-random.v5: implement the PRNG currently used in OCaml 5
  • stdlib-random.v5o: implement the PRNG currently used in OCaml 5 in pure= OCaml

This library is targeted toward programs that need a deterministic and stab= le behaviour of the Random module across OCaml versions.

The newly released version 1.2.0 updates all implementations to provide the= new int_in_range function (and its int32_in_range, nativeint_in_range, int64_in_range variants) tha= t will be available in OCaml 5.2.0.

Note however that the implementations on the pre-OCaml 5 PRNGs are not opti= mal, since I prioritised the maintenance cost over performance, but that could be changed if required.

Other OCaml News

Old CWN

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

If you also wish to receive it every week by mail, you may subscribe to the= caml-list.

--=-=-=--