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 A70B95D5 for ; Tue, 24 May 2022 08:04:10 +0000 (UTC) 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=XFDDxmY9dzq01MoY8CzskDtbFERenH//oBWUhMHH0Pw=; b=Rf3n8ZIfatlZplwb4/WzGEtqN5k5RXx700vYgc4HdjQVbv2DQMgprP15 zX3VFljTCYBIQiwHdTMVqYZFDUpGw87LoRfzQM23zfHGK+nHkt8obQguh vlO/w8ZkhFtbFQc4ysVSlTq2ymdDRE1M9kVmlnVYOYpYZkBUkxpEMlVKj o=; Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr Received-SPF: SoftFail (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr is inclined to not designate 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 ip4:192.134.164.0/24 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 X-IronPort-AV: E=Sophos;i="5.91,248,1647298800"; d="scan'208,217";a="37788293" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 24 May 2022 10:04:09 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 558E8E7C14; Tue, 24 May 2022 10:04:09 +0200 (CEST) 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 43F07E43AC for ; Tue, 24 May 2022 10:04:06 +0200 (CEST) IronPort-SDR: 79/XXDpyXFo4ucSHNVQQ+1jvQyTpieg9D3CF9kJBC2FntmD0Ikb0zQRkbe71vfonPY3OCr/7DX q6Jt/WtypwDtmUgjLV10S8PNpcPHf0I+9eu0KfMRlnjDYWEr3QyqA0HDgkWI8TVHWAxqRJEh4E PL13y1k/Utx2d1ZE0mf1Y5zIPHc8xLW53wx6iUJT5USjMVAdK75Lr3SCQIHzOzLcQHSxkZCPbw x7SoujamHCzfoV+cP0ql+FQkBV3A/VkOA5yIzlv50FXN92Ko49TsrM2rjzzsydh+ZcmipPlnEe aibQ7fIlFPn8TqMcUaOtvNmm X-IPAS-Result: =?us-ascii?q?A0DhAQBHkYxihyIeaIFag3lbKBkBXgZVLQcIQ4ROiQCFQ?= =?us-ascii?q?gGCSoEWiDiGfI4UEAEDAQ0sAQwGAQIEAQGFAgJPAQSEbAIeBgEFMxMBAgQBA?= =?us-ascii?q?QEBAwIDAQEBAQEBAwEBBQEBAQIBAQIEBAETAQEBAQ0LCQUICgcQDgU8ZGQEg?= =?us-ascii?q?UsEgXQLNA2CIhMMGYNwARgDBgo7AwIlIwMUAQYDAhEBFwEeFwESFAaCC1gBg?= =?us-ascii?q?xcEAQqQapwRgTGBAYNPARgPhCKBElMkgRiGGllKAYMKhBkpEIFVRIEVgilKB?= =?us-ascii?q?26BQQF+CxcBAQEBAYE7AQFWgyCCZQSDII80gyAHOgNONRKBIXEBCAYGBwoFM?= =?us-ascii?q?gYCDBgUBAITEU0GHQITDAoGFg5CEhkMDwMSAxEBBwILEggVLAgDAgMIAwIDL?= =?us-ascii?q?gIDGAkHCgMdCAocEhAUAgQTHwsIAxofLQkCBA4DQwgLCgMRBAMTGAsWCBAEB?= =?us-ascii?q?gMJLw0oCwMFDw8BBgMGAgUFAQMgAxQDBScHAyEHCyYNDQQjHQMDBSYDAgIbB?= =?us-ascii?q?wICAwIGFwYCAhlYCigNCAQIBBgEHiUTBQIHMQUELwIeBAUGEQkCFgIGBAUCB?= =?us-ascii?q?AQWAgISCAIIJxsHFjYZAQVdBgsJIhYGHBARBQYWAyRRJwUwBiKSX4MYDIExA?= =?us-ascii?q?g44VwkiDgUBCgkXARcJAjYOFRUBBxsPCwQJBQkQDC4BCgsGKZFwEh4DJ5Enh?= =?us-ascii?q?yKCYQeSRTQHg1GBPQYMiCyBII0AiCODdYFPim+YJiGWRiCJKIESCYJJlEMGA?= =?us-ascii?q?gIThSSBTiqBawwHMxowgysJRQEDAg0BAgIDAQIBAgkBAQJUjVUWg1CEWTuFT?= =?us-ascii?q?D80AgEBNwIGAQoBAQMJhWMBAQUTCwGIEgSCRAEB?= IronPort-PHdr: A9a23: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 Gh7TG0iSA3F5bc= IronPort-Data: A9a23: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 77s IronPort-HdrOrdr: A9a23:hwky/awXf0SACig13yy/KrPwK71zdoMgy1knxilNoH1uEvBw+P rAoB1273XJYVUqOU3I++rvBEDoexq1nqKdirN8AV7NZmTbkVrtBL4nx4rvyT/tFkTFh41g/J YlVbNxTPn5DV0St7ee3OBUKadD/OW6 X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.91,248,1647298800"; d="scan'208,217";a="37788267" X-MGA-submission: =?us-ascii?q?MDHhAKmNJ3qUpkWpFubWPMyuWR5gxzoUQ9uzF/?= =?us-ascii?q?cx/04EJq1WkmRsfM6tQXWx2KpIwpuSF6M4TgkbLpuaX+qTFD+LTwpgfJ?= =?us-ascii?q?h4KbMSKTJ+o4fGkTbU5SCKjB8gt6fJRZE1KdeD/BmOhdfDucr1/HoLc2?= =?us-ascii?q?h2FuN2xisgX71de+tGbKp7Uw=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2022 10:04:05 +0200 Received: from set (cbg35-2-78-242-14-140.fbx.proxad.net [78.242.14.140]) (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 D2B49564C59; Tue, 24 May 2022 10:04:03 +0200 (CEST) From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 24 May 2022 10:04:03 +0200 Message-ID: <87pmk3l5l8.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue May 24 10:04:04 2022 +0200 (CEST)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.041535, queueID=9ABE2564C5B 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: 18767 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 May 17 to 24, 2022. 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 ML Family Workshop 2022: Final Call for Presentations Dune 3.2.0 Hardcaml MIPS CPU Learning Project and Blog A tutorial on parallel programming in OCaml 5 Old CWN ML Family Workshop 2022: Final Call for Presentations =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: Benoit Montagu 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 We are happy to invite submissions to the *ML Family Workshop 2022*, to be held during the ICFP conference week on Thursday, September 15th. The ML family workshop warmly welcomes submission touching on the programming languages traditionally seen as part of the =E2=80=9CML famil= y=E2=80=9D (Standard ML, OCaml, F#, CakeML, SML#, Manticore, MetaOCaml, etc.). The scope of the workshop includes all aspects of the design, semantics, theory, application, implementation, and teaching of the members of the ML family. We also encourage presentations from related languages (such as Haskell, Scala, Rust, Nemerle, Links, Koka, F*, Eff, ATS, etc), to exchange experience of further developing ML ideas. The workshop does not have proceedings, making it the perfect venue to run some ideas with the community or present some work in progress within a friendly environment. The PC has a broad expertise and submissions are 3 pages long: when in doubt, just submit! Currently, the workshop is scheduled to be an in-person event. We will give to the authors of accepted abstracts the opportunity to give their talks remotely if necessary, in case they could not travel. See the detailed CFP online on the ICFP website: Important dates =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C =E2=80=A2 Friday 3th June (any time zone): Abstract submission deadline =E2=80=A2 Tuesday 28th June: Author notification =E2=80=A2 Thursday 15th August: ML Family Workshop Program committee =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C =E2=80=A2 Kenichi Asai (Ochanomizu University) =E2=80=A2 Arthur Azevedo de Amorim (Boston University) =E2=80=A2 Dariusz Biernacki (University of Wroc=C5=82aw) =E2=80=A2 Stephen Dolan (Jane Street) =E2=80=A2 Kavon Farvardin (Apple) =E2=80=A2 Arma=C3=ABl Gu=C3=A9neau (Inria) =E2=80=A2 Sam Lindley (University of Edinburgh) =E2=80=A2 Guido Mart=C3=ADnez (CIFASIS-CONICET) =E2=80=A2 Keiko Nakata (SAP Innovation Center Potsdam) =E2=80=A2 Lionel Parreaux (Hong Kong University of Science and Technology) =E2=80=A2 Matija Pretnar (University of Ljubljana) =E2=80=A2 Mike Rainey (Carnegie Mellon University) =E2=80=A2 Yann R=C3=A9gis-Gianas (Nomadic Labs) =E2=80=A2 KC Sivaramakrishnan (IIT Madras and Tarides) =E2=80=A2 Ningning Xie (University of Cambridge) Chair: Beno=C3=AEt Montagu (Inria) Submission details =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C See the online CFP for the details on the expected submission format. Submissions must be uploaded to the workshop submission website before the submission deadline. Dune 3.2.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 Archive: Rudi Grinberg 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 On behalf of the dune team, I'm pleased to announce the availability of version 3.2.0. This release contains few new features, but is packed with bug fixes and usability improvements. In particular, I'd like to point out that we've continued to improve the user experience with the watch mode. I encourage you all to try it out if you haven't already. Happy Hacking. 3.2.0 (17-05-2022) =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C =E2=80=A2 Fixed `dune describe workspace --with-deps' so that it correctly handles Reason files, as well as files any other dialect. (#5701, @esope) =E2=80=A2 Disable alerts when compiling code in vendored directories (#56= 83, @NathanReb) =E2=80=A2 Fixed `dune describe --with-deps', that crashed when some preprocessing was required in a dune file using `per_module'. (#5682, fixes #5680, @esope) =E2=80=A2 Add `$ dune describe pp' to print the preprocssed ast of sources. (#5615, fixes #4470, @cannorin) =E2=80=A2 Report dune file evaluation errors concurrently. In the same wa= y we report build errors. (#5655, @rgrinberg) =E2=80=A2 Watch mode now default to clearing the terminal on rebuild (#56= 36, fixes, #5216, @rgrinberg) =E2=80=A2 The output of jobs that finished but were cancelled is now omitted. (#5631, fixes #5482, @rgrinberg) =E2=80=A2 Allows to configure all the default destination directories with `./configure' (adds `bin', `sbin', `data', `libexec'). Use `OPAM_SWITCH_PREFIX' instead of calling the `opam' binaries in `dune install'. Fix handling of multiple `libdir' in `./configure' for handling `/usr/lib/ocaml/' and `/usr/local/lib/ocaml'. In `dune install' forbid relative directories in `libdir', `docdir' and others specific directory setting because their handling was inconsistent (#5516, fixes #3978 and #5455, @bobot) =E2=80=A2 `--terminal-persistence=3Dclear-on-rebuild' will no longer dest= roy scrollback on some terminals (#5646, @rgrinberg) =E2=80=A2 Add a fmt command as a shortcut of `dune build @fmt --auto-prom= ote' (#5574, @tmattio) =E2=80=A2 Watch mode now tracks copied external files, external directori= es for dependencies, dune files in OCaml syntax, files used by `include' stanzas, dune-project, opam files, libraries builtin with compiler, and foreign sources (#5627, #5645, #5652, #5656, #5672, #5691, #5722, fixes #5331, @rgrinberg) =E2=80=A2 Improve metrics for cram tests. Include test names in the event= and add a category for cram tests (#5626, @rgrinberg) =E2=80=A2 Allow specifying multiple licenses in project file (#5579, fixes #5574, @liyishuai) =E2=80=A2 Match `glob_files' only against files in external directories (#5614, fixes #5540, @rgrinberg) =E2=80=A2 Add pid's to chrome trace output (#5617, @rgrinberg) =E2=80=A2 Fix race when creating local cache directory (#5613, fixes #546= 1, @rgrinberg) =E2=80=A2 Add `not' to boolean expressions (#5610, fix #5503, @rgrinberg) =E2=80=A2 Fix relative dependencies outside the workspace (#4035, fixes #= 5572, @bobot) =E2=80=A2 Allow to specify `--prefix' via the environment variable `DUNE_INSTALL_PREFIX' (#5589, @vapourismo) =E2=80=A2 Dune-site.plugin: add support for `archive(native|byte, plugin)' used in the wild before findlib documented `plugin(native|byte)' in 2015 (#5518, @bobot) =E2=80=A2 Fix a bug where Dune would not correctly interpret `META' files= in alternative layout (ie when the META file is named `META.$pkg'). The `Llvm' bindings were affected by this issue. (#5619, fixes #5616, @nojb) =E2=80=A2 Support `(binaries)' in `(env)' in dune-workspace files (#5560,= fix #5555, @emillon) =E2=80=A2 (mdx) stanza: add support for (locks). (#5628, fixes #5489, @emillon) =E2=80=A2 (mdx) stanza: support including files in different directories = using relative paths, and provide better error messages when paths are invalid (#5703, #5704, fixes #5596, @emillon) =E2=80=A2 Fix ctypes rules for external lib names which aren't valid ocaml names (#5667, fixes #5511, @Khady) Hardcaml MIPS CPU Learning Project and Blog =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: Alexander (Sasha) Skvortsov 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=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80 Hi everyone! Last fall, we completed our original plan for this project, rewriting the verilog MIPS CPU we had designed for a class into Hardcaml. A few weeks later, we got an invite to video-meet with the Hardcaml team to talk about our experience. They even sent us actual Arty A-7 FPGAs so we could test out our simulation on real hardware! Junior year ended up much busier than expected, and although we had gotten our code onto the FPGAs by January, we=E2=80=99ve only just now fu= lly finished our project. Our blog now has 2 bonus installments: 1. [Running Hardcaml on an actual FPGA]. Here, we lit up LEDs to display the output of a hardcoded program. 2. [Hardcaml MIPS and I/O]. Here, we restructured our CPU so that programs can communicate with an external device using UART. With these changes, our full design is now a simplified but realistic processor that can run meaningful programs. Thank you very much to @andyman, @fyquah95, Ben Devlin, and the rest of the Jane Street FPGA team for creating Hardcaml, meeting with us, and answering our numerous questions throughout this process. Thank you also to @yaron_minsky and Jane Street for sending us the FPGAs to try out our code. This has been an incredibly interesting, challenging, and rewarding journey. We hope that our blog posts and sample project are useful for learning Hardcaml in the future, and welcome any questions or comments. [Running Hardcaml on an actual FPGA] [Hardcaml MIPS and I/O] A tutorial on parallel programming in OCaml 5 =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: KC Sivaramakrishnan 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 ran a hands-on tutorial on the new parallel programming primitives in the upcoming OCaml 5 at the Tarides off-site last week. It covers the low-level parallelism primitives exposed by the OCaml 5 compiler as well as high-level parallel programming using `domainslib'. I hope you like it and find it useful. Please feel free to open issues if you find anything amiss. Alain De Vos asked and Olivier Nicole replied =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=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 As it is not immediately clear for me, does it uses threads , green threads, processes , fibers ? And who is responsible for the scheduling ,the Ocaml application or the underlying operating system ? Each domain corresponds to one system thread. The scheduling between them is therefore performed by the operating system. The tutorial only covers domains, which are the way to perform /parallelism/ in OCaml 5. To use /concurrency/ (e.g. having several IO-depending operations that run concurrently on the same core), the main mechanism is effects (which at the level of the runtime system, are implemented using small stack segments called fibers), as in the [eio library]. Effects allow such libraries to provide a form a lightweight threads (aka green threads) whose scheduling is implemented in the OCaml application using effect mechanisms. [eio library] UnixJunkie then said =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 is a very simple tutorial on parallel programming in OCaml: use parany ! For OCaml 5, use the right branch of parany: Happy hacking! 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 [online]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [online] [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 May 17 to 24, 2022.

ML Family Workshop 2022: Final Call for Presentations

Benoit Montagu announced

We are happy to invite submissions to the ML Family Workshop 2022, to be held during the ICFP conference week on Thursday, September 15th.

The ML family workshop warmly welcomes submission touching on the programming languages traditionally seen as part of the =E2=80=9CML family= =E2=80=9D (Standard ML, OCaml, F#, CakeML, SML#, Manticore, MetaOCaml, etc.). The scope of the workshop includes all aspects of the design, semantics, theory, application, implementation, and teaching of the members of the ML family. We also encourage presentations from related languages (such as Haskell, Scala, Rust, Nemerle, Links, Koka, F*, Eff, ATS, etc), to exchange experience of further developing ML ideas.

The workshop does not have proceedings, making it the perfect venue to run some ideas with the community or present some work in progress within a friendly environment. The PC has a broad expertise and submissions are 3 pages long: when in doubt, just submit!

Currently, the workshop is scheduled to be an in-person event. We will give to the authors of accepted abstracts the opportunity to give their talks remotely if necessary, in case they could not travel.

See the detailed CFP online on the ICFP website: https://icfp22.sigplan.org/home/mlfamilyworkshop-2022#Call-fo= r-Presentations

Important dates

  • Friday 3th June (any time zone): Abstract submission deadline
  • Tuesday 28th June: Author notification
  • Thursday 15th August: ML Family Workshop

Program committee

  • Kenichi Asai (Ochanomizu University)
  • Arthur Azevedo de Amorim (Boston University)
  • Dariusz Biernacki (University of Wroc=C5=82aw)
  • Stephen Dolan (Jane Street)
  • Kavon Farvardin (Apple)
  • Arma=C3=ABl Gu=C3=A9neau (Inria)
  • Sam Lindley (University of Edinburgh)
  • Guido Mart=C3=ADnez (CIFASIS-CONICET)
  • Keiko Nakata (SAP Innovation Center Potsdam)
  • Lionel Parreaux (Hong Kong University of Science and Technology)
  • Matija Pretnar (University of Ljubljana)
  • Mike Rainey (Carnegie Mellon University)
  • Yann R=C3=A9gis-Gianas (Nomadic Labs)
  • KC Sivaramakrishnan (IIT Madras and Tarides)
  • Ningning Xie (University of Cambridge)

Chair: Beno=C3=AEt Montagu (Inria)

Submission details

See the online CFP for the details on the expected submission format.

Submissions must be uploaded to the workshop submission website https://ml2022.hotcrp.com/ befor= e the submission deadline.

Dune 3.2.0

Rudi Grinberg announced

On behalf of the dune team, I'm pleased to announce the availability of ver= sion 3.2.0. This release contains few new features, but is packed with bug fixes and usability improvements. In parti= cular, I'd like to point out that we've continued to improve the user experience with the watch mode. I encourage y= ou all to try it out if you haven't already.

Happy Hacking.

3.2.0 (17-05-2022)

  • Fixed dune describe workspace --with-deps so that it corre= ctly handles Reason files, as well as files any other dialect. (#5701, @esope)
  • Disable alerts when compiling code in vendored directories (#5683, @NathanReb)
  • Fixed dune describe --with-deps, that crashed when some preprocessing was required in a dune file using per_module. (#5682, fixes #5680, @esope)
  • Add $ dune describe pp to print the preprocssed ast of sou= rces. (#5615, fixes #4470, @cannorin)
  • Report dune file evaluation errors concurrently. In the same way we rep= ort build errors. (#5655, @rgrinberg)
  • Watch mode now default to clearing the terminal on rebuild (#5636, fixe= s, #5216, @rgrinberg)
  • The output of jobs that finished but were cancelled is now omitted. (#5= 631, fixes #5482, @rgrinberg)
  • Allows to configure all the default destination directories with = ./configure (adds bin, sbin, data, libexec= ). Use OPAM_SWITCH_PREFIX instead of calling the opam binaries in dune install. Fix ha= ndling of multiple libdir in ./configure for handling /usr/lib= /ocaml/ and /usr/local/lib/ocaml. In dune install forbid rela= tive directories in libdir, docdir and others specific directory sett= ing because their handling was inconsistent (#5516, fixes #3978 and #5455, @bobot)
  • --terminal-persistence=3Dclear-on-rebuild will no longer d= estroy scrollback on some terminals (#5646, @rgrinberg)
  • Add a fmt command as a shortcut of dune build @fmt --auto-promote= (#5574, @tmattio)
  • Watch mode now tracks copied external files, external directories for dependencies, dune files in OCaml syntax, files used by include stanzas, dune-project, opam files, libraries builtin with compiler, and foreign sources (#5627, #5645, #5652, #5656, #5672, #5691, #5722, fixes #5331, @rgrinberg)
  • Improve metrics for cram tests. Include test names in the event and add= a category for cram tests (#5626, @rgrinberg)
  • Allow specifying multiple licenses in project file (#5579, fixes #5574, @liyishuai)
  • Match glob_files only against files in external directorie= s (#5614, fixes #5540, @rgrinberg)
  • Add pid's to chrome trace output (#5617, @rgrinberg)
  • Fix race when creating local cache directory (#5613, fixes #5461, @rgri= nberg)
  • Add not to boolean expressions (#5610, fix #5503, @rgrinbe= rg)
  • Fix relative dependencies outside the workspace (#4035, fixes #5572, @b= obot)
  • Allow to specify --prefix via the environment variable DUNE_INSTALL_PREFIX (#5589, @vapourismo)
  • Dune-site.plugin: add support for archive(native|byte, plugin) used in the wild before findlib documented plugin(native|byte) in 2015 (#5= 518, @bobot)
  • Fix a bug where Dune would not correctly interpret META fi= les in alternative layout (ie when the META file is named META.$pkg). The L= lvm bindings were affected by this issue. (#5619, fixes #5616, @nojb)
  • Support (binaries) in (env) in dune-workspace= files (#5560, fix #5555, @emillon)
  • (mdx) stanza: add support for (locks). (#5628, fixes #5489, @emillon)
  • (mdx) stanza: support including files in different directories using re= lative paths, and provide better error messages when paths are invalid (#5703, #57= 04, fixes #5596, @emillon)
  • Fix ctypes rules for external lib names which aren't valid ocaml names (#5667, fixes #5511, @Khady)

Hardcaml MIPS CPU Learning Project and Blog

Alexander (Sasha) Skvortsov announced

Hi everyone! Last fall, we completed our original plan for this project, re= writing the verilog MIPS CPU we had designed for a class into Hardcaml. A few weeks later, we got an invite to = video-meet with the Hardcaml team to talk about our experience. They even sent us actual Arty A-7 FPGAs so we could t= est out our simulation on real hardware!

Junior year ended up much busier than expected, and although we had gotten = our code onto the FPGAs by January, we=E2=80=99ve only just now fully finished our project. Our blog now has 2 bonus installm= ents:

  1. Running Hardcaml on an actual FPGA. Here, we lit up LEDs= to display the output of a hardcoded program.
  2. Hardcaml MIPS and I/O. Here, we restructured our CPU so that programs = can communicate with an external device using UART.

With these changes, our full design is now a simplified but realistic proce= ssor that can run meaningful programs.

Thank you very much to @andyman, @fyquah95, Ben Devlin, and the rest of the= Jane Street FPGA team for creating Hardcaml, meeting with us, and answering our numerous questions throughout = this process. Thank you also to @yaron_minsky and Jane Street for sending us the FPGAs to try out our code.

This has been an incredibly interesting, challenging, and rewarding journey= . We hope that our blog posts and sample project are useful for learning Hardcaml in the future, and welcome any que= stions or comments.

A tutorial on parallel programming in OCaml 5

KC Sivaramakrishnan announced

I ran a hands-on tutorial on the new parallel programming primitives in the= upcoming OCaml 5 at the Tarides off-site last week. It covers the low-level parallelism primitives exposed by the OC= aml 5 compiler as well as high-level parallel programming using domainslib. I hope you like it and = find it useful. Please feel free to open issues if you find anything amiss.

https://github.com= /kayceesrk/ocaml5-tutorial

Alain De Vos asked and Olivier Nicole replied

As it is not immediately clear for me, does it uses threads , green threads= , processes , fibers ? And who is responsible for the scheduling ,the Ocaml application or the underlying ope= rating system ?

Each domain corresponds to one system thread. The scheduling between them i= s therefore performed by the operating system.

The tutorial only covers domains, which are the way to perform paralleli= sm in OCaml 5. To use concurrency (e.g. having several IO-depending operations that run concurrently on the same co= re), the main mechanism is effects (which at the level of the runtime system, are implemented using small stack segme= nts called fibers), as in the eio library. Effects allow such libraries to provide a form a lightweight threads (aka green threads) whose scheduling is implemen= ted in the OCaml application using effect mechanisms.

UnixJunkie then said

Here is a very simple tutorial on parallel programming in OCaml: use parany= ! https://github.com/UnixJun= kie/parany For OCaml 5, use the right branch of parany: https://githu= b.com/UnixJunkie/parany/tree/domains

Happy hacking!

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 online.

--=-=-=--