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 A08FD5D5 for ; Tue, 2 Nov 2021 08:50:45 +0000 (UTC) IronPort-Data: =?us-ascii?q?A9a23=3AAykhxqqtuCMuG3C3hw1Jdh5sNZxeBmIDZBIvgKr?= =?us-ascii?q?LsJaIsI5as4F+vjYaDT2Pa/mPYWfwf9l0Ooq0pkgGu8TXx9ZiSgFlr3thQiMRo?= =?us-ascii?q?6IpJ/zJdxaqZ3v6wu7rFR88sZ1GMrEsFC2FJ5Pljk/F3oPJ8D8sislkepKmULS?= =?us-ascii?q?dY3kpH1c9IMscoUkLd9AR09cAbeeRU1vlVePa+6UzCXf9s9JGGjp8B5Gr9HuDi?= =?us-ascii?q?M/PVAYw5TTSUxzkUGj2zBH5BLpHTU24wuCRroN8RoZWTM6bpF21E/+wwvsjNj+?= =?us-ascii?q?luu6TnkwiWa/XJQHIi3xMWqHkjAIqSi4ai/xrcqtHLx4J0XPQwYgZJNZl7PRcT?= =?us-ascii?q?S8iN6jI3eAcSAUdFD54MLdu+bndIHH5v9b7I0juKiawma40UCnaOqVdoI6bG1p?= =?us-ascii?q?m/vUdLCoMaQyrjuOsxbu6Tq9njawLJ8DuOMYbu2p85TrCEfE8QtbEWaqizdRR2?= =?us-ascii?q?TM0h9tSNfrZYM8UZCApZxPFCzVEM1ITTZY/h/uAiHj1dDtRo1mU460t7AD7xwV?= =?us-ascii?q?02aLkPNfJZ8yiSsBcn0LerWXDl0zyCxYINNGZkWqt/Xelh+uJliT+MKoZHaWk/?= =?us-ascii?q?/9snF2OwGAeEjUZUFK6pb+yjUvWc9lWLkhR/is1sYAz8kasXp/6VBS9pDiDpBF?= =?us-ascii?q?0c9FZFuk+6RqR4qvS6AeLC2RCRTlEAPQtvcoyADgrzUOhmtfoHiB09qGVRG2H9?= =?us-ascii?q?6uIoDWtPjIZa2QFYEcsRgIf6tzupIZ1lhPJUtFLDaS0yMXpcQwcaRjiQDMWn68?= =?us-ascii?q?UgYsP1r6n8Eva2mLqp57TTwdz6B+/Y45s1SshDKbNWmBiwQGFhRqYELukcw=3D?= =?us-ascii?q?=3D?= X-IronPort-AV: E=Sophos;i="5.87,202,1631570400"; d="scan'208,217";a="1542324" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 02 Nov 2021 09:50:44 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id EA80CE01BF; Tue, 2 Nov 2021 09:50:43 +0100 (CET) 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 AF4B9E0072 for ; Tue, 2 Nov 2021 09:50:38 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=Pass smtp.pra=alan.schmitt@polytechnique.org; spf=Pass smtp.mailfrom=SRS0=35Um=PV=polytechnique.org=alan.schmitt@bounces.m4x.org; spf=Pass smtp.helo=postmaster@mx1.polytechnique.org IronPort-PHdr: =?us-ascii?q?A9a23=3A1kw6ahdUtUgXe6T/WSKAqco+lGM+q9jLVj580XL?= =?us-ascii?q?Ho4xHfqnrxZn+JkuXvawr0AWRG9SCoK8bw8Pt8InYEVQa5piAtH1QOLdtbDQiz?= =?us-ascii?q?fssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB?= =?us-ascii?q?1JuPoEYLOksi7ze+/94PPbwlSgDexfLx+IRW0oA7MqsQYnIxuJ7orxBDUuHVIY?= =?us-ascii?q?eNWxW1pJVKXgRnx49q78YBg/SpNpf8v7tZMXqrmcas2S7xYFykmPHsu5ML3rxn?= =?us-ascii?q?DTBCA6WUaX24LjxdHGQnF7BX9Xpfsriv3s/d21SeGMcHqS70/RDSu4aRtSB/2i?= =?us-ascii?q?ScHLD85/3rTisNukalarhWhpwZizI7PfYqZMPRzcr/Ycd4cWGFPXNteVzZZD42?= =?us-ascii?q?8cYUBEuQPM+VXoIbhvFYBtweyCBO2Ce/z1jNFhHn71rA63eQ7FgHG2RQtEs4Ks?= =?us-ascii?q?HvOqtX+KbocXvy1zKnNzDXDc+9W0ir65YfSdhAuu/eMUahrccXNyUkvEgLFjkm?= =?us-ascii?q?MqYH+JzOV0eANsmiH7+V+Se2vi2gnqwBoojiy2MggkI7Jhpgayl3d8yhy3Yk6K?= =?us-ascii?q?8GiRkFhfd6kDIVftzucN4ZuQs0sTW9mtTokxrAGpZO2fCgExIg7yhPdaPGKc4i?= =?us-ascii?q?G7wztWeqMPDp1hHJodayxihiy80WtzuPyW8uo3FpXqidInd/BvW0D2RzU78iIU?= =?us-ascii?q?Pp9/kG51DaXyQ/T9uBEIVwqmqrDLJ4hx7swmYQJvUTFACD2hF36jKiKeUo+/+i?= =?us-ascii?q?o7/7rYrL8pp+TL4N0iwf+Mr4vmsOlG+g4PBIOU3Cb+OS7yb3j4VD5TK9RgfIoi?= =?us-ascii?q?qXYvpfaJcAVpq6jGQBV15wv5Aq4DzejyNgYgGIHLEhLeBKGi4jmJUrOLOrkAve?= =?us-ascii?q?4hlSgiDhrx/HaPr3hH5XCNWLPn6vmfbZ480JczxIzws5Z55JPFr4OOu/8VlX2t?= =?us-ascii?q?NzCAR81Kw60zPzhCNpjzYMeRXiPDbGHP6POq1OH+uUvI+yUaI8SpDnyMf0l5/r?= =?us-ascii?q?2jX8jnl8RZ7Wm3ZwSaHygAvRpOV+ZYXvxjdgfCmcGpBYxTOvviFGaUD5cenazX?= =?us-ascii?q?6Y45j0hD4KmF4jDS4awi7KCxCe2BoBaan5CB1yWDHvka4qJV+0CZS6OOMNsnDM?= =?us-ascii?q?JWaC8R4IvyB2irhH2xrpoI+bO5yEUqYjv2MV36uHPkxw56CZ6AN6H026XSmF5h?= =?us-ascii?q?mMISCEy3KB4uUF9z1iC3bVij/xAEtxT4/NIUhskOpHAz+x6DdHyWhvcftiXUlq?= =?us-ascii?q?mRc+mAT4pQtIwxd8BfVp9Fs2/ghzd2yemGaIZm6CECZAu/K/Qw2L9Kshyxnre0?= =?us-ascii?q?akulVgmQs9BNW28ga5/8hDeCZPVnUuEi6qnbaoR0S7D+2eG1WeApk5XXRZoUaX?= =?us-ascii?q?CWXAeZlfWosrl6UPCSb+uCK0nMhZfxsKYLatKcNLpgE1cS/fnItveZXi9m3ysC?= =?us-ascii?q?haIw7OMbZbqe3kG0SrGD0gEjgYT8mqYOgglHCuhpm3TDTN0GVLoeUPs/vFyqGm?= =?us-ascii?q?nQU8s0wGKc0ph2qKp9REPgPycT+of3rYFuCc6tzV5B0293tLTC9qYvQVtZqRcY?= =?us-ascii?q?dUn4FdGz23VrQJ9PobzZ5xl0xQabAI99xfqyBNfDppG184nsCVuhEB5NqTSmBs?= =?us-ascii?q?VfCye9ZTxIaHMbGj+7RSrLanM1QeamN2f/6NK7PUjt33iuhuoHwws6SZJyd5Qh?= =?us-ascii?q?lKY75OCNwESVJPtTg5j/hxzoffBaSk45p/I/WVrNbiovzTC3dMwGeZjzQyvKYQ?= =?us-ascii?q?MeJiYHRP/RpVJT/OlL/YnzgPxBvrhFPhV8L8oMsimcfqfxaPtO/xvzmvOZYVv5?= =?us-ascii?q?ZAklFqL8ztgR+XI2Zcc3vze2RGIBW6UZLiJuMfqn4tJfncXQnr5zjLrVtc5Ww?= =?us-ascii?q?=3D=3D?= IronPort-HdrOrdr: =?us-ascii?q?A9a23=3A6mKBda9hcPC8v8xfu6luk+ALI+orL9Y04lQ7?= =?us-ascii?q?vn2ZKCYlCPBw8vrEoB1173HJYVoqNU3I2urwXZVoOEm8yXct2+ks1NSZLWvbUQ?= =?us-ascii?q?mTXflfBOLZqlWLJ8SZzJ8l6U4KScdD4bPLYWSSwvyKhDVRsr0bsaK6GQ2T9IDj?= =?us-ascii?q?5mYoZztDL4tn6x59Cg6dGEEzfg9bHpA0faDshfav4wDQH0gqUg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DmAAASaxphlyIeaIFahAWBGgFkVzoxh?= =?us-ascii?q?EeJBIZFgiSDKIV1hleMC4FzAQMBDSoBDgUBAgQBAYRhAoJrAh4GAQUzEwECBBU?= =?us-ascii?q?BAQUBAQECAQMDBAETAQEBAQEBAQEJGwZehWgNgjUMGYNtAwEhCkABAiIjAxQHA?= =?us-ascii?q?wIRARcBFAoXARIUBgGCVgGDBwUKi2KcCoExgQGDTQEDAgELBQ8vhBWBYw0CFIE?= =?us-ascii?q?XhXBTSIJuCINwAicQgVVEgRWCdW6CQAsMCwEBAQEBgRQLCQERAgEIIS2CYYJkB?= =?us-ascii?q?IMhAiQOPi4tPCIBAVAIAQI1PRsECA8uARYvA5FBAQMollOTV2stB4MrgTEGC4d?= =?us-ascii?q?mgRWMRYd7g2WBSJBfkGkhlXCIdYELCYI1h3GLUhQEBIUogU0qgQ0/HgwHMxowQ?= =?us-ascii?q?4I1AQEyCWAOjXgBMxaCMoEegT6DGzuFS0AyAgEBNAIGAQoBAQMJgQgBAQUTCwG?= =?us-ascii?q?GACyBQFsBAQ?= X-IPAS-Result: =?us-ascii?q?A0DmAAASaxphlyIeaIFahAWBGgFkVzoxhEeJBIZFgiSDKIV?= =?us-ascii?q?1hleMC4FzAQMBDSoBDgUBAgQBAYRhAoJrAh4GAQUzEwECBBUBAQUBAQECAQMDB?= =?us-ascii?q?AETAQEBAQEBAQEJGwZehWgNgjUMGYNtAwEhCkABAiIjAxQHAwIRARcBFAoXARI?= =?us-ascii?q?UBgGCVgGDBwUKi2KcCoExgQGDTQEDAgELBQ8vhBWBYw0CFIEXhXBTSIJuCINwA?= =?us-ascii?q?icQgVVEgRWCdW6CQAsMCwEBAQEBgRQLCQERAgEIIS2CYYJkBIMhAiQOPi4tPCI?= =?us-ascii?q?BAVAIAQI1PRsECA8uARYvA5FBAQMollOTV2stB4MrgTEGC4dmgRWMRYd7g2WBS?= =?us-ascii?q?JBfkGkhlXCIdYELCYI1h3GLUhQEBIUogU0qgQ0/HgwHMxowQ4I1AQEyCWAOjXg?= =?us-ascii?q?BMxaCMoEegT6DGzuFS0AyAgEBNAIGAQoBAQMJgQgBAQUTCwGGACyBQFsBAQ?= X-IronPort-AV: E=Sophos;i="5.84,326,1620684000"; d="scan'208,217";a="397984850" X-MGA-submission: =?us-ascii?q?MDFJF2g/Xxz+zRcD5OxZy9B31XLAAUQfZhGUZw?= =?us-ascii?q?EFK/2JgiMkPNBxaZyy8MYfPF1JPE9Iaixemlz8qvm5nSRXATLOH5EsT0?= =?us-ascii?q?kO4cJqK/8PZ6gXWprgLgxdEv3W6Yhpgca15Tz8ixp5GHZjqxF6eUU+A3?= =?us-ascii?q?fZUg52u+1qKLBMoav1WUzekA=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2021 09:50:37 +0100 Received: from set (set.irisa.fr [131.254.10.170]) (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 7D03B5647C2; Tue, 2 Nov 2021 09:50:35 +0100 (CET) From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 02 Nov 2021 09:50:21 +0100 Message-ID: <87sfwfaqlu.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Nov 2 09:50:36 2021 +0100 (CET)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.300195, queueID=050435647C5 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: 18611 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 October 26 to November 02, 2021. 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 Lists.ocaml.org: service temporarily sunsetted Talk at Func Prog Sweden First OPAM releases of Scad_ml and [@@deriving scad] Other OCaml News Old CWN Lists.ocaml.org: service temporarily sunsetted =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=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: Anil Madhavapeddy 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 *This note does not concern the main OCaml email list, which continues to be available through * The lists.ocaml.org e-mail service has been going through a rough time in the past few years, with vast swathes of spam regularly hitting our ingress email server and require manual unblocking every time. It was set up [back in 2012] as an augmentation of the main OCaml mailing list and really helped with some big projects in the early days (the design of and migration to ppx from camlp4, for example). However, in the intervening years e-mail has reduced in importance as a primary community communication mechanism (as evidenced, for example, in this forum). With the latest spam surge, I've moved the service into read-only mode with all the mailboxes and archives still available on the website, but with mail delivery and list creation/admin disabled. All existing links should continue to work to historical links online without change. The only mailing list on there that was still active to my knowledge is the opam-commits cron list, which will be replaced by an ocurrent-based deployer for that website shortly. I hope to bring e-mail back to ocaml.org sometime in 2022, as it's an important communications medium that is highly accessible. One challenge is spam, and another is the inflexibility of GNU Mailman and its upgrade mechanism (essentially a manual process from 2 to 3). Therefore, if there is anyone in the community interested in building a simple e-mail list manager in OCaml, that would be of interest :slight_smile: [back in 2012] Talk at Func Prog Sweden =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=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: Leonardo Laguna Ruiz 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 Here's a link for the talk I gave at the Func Prog Sweden meetup. In that talk I show the process we follow some years ago in order to move all our code base to OCaml and why it was an excellent decision. [Wolfram System Modeler] is a simulation environment that can be used to model multi-domain systems. For example systems composed of electrical, thermal, hydraulic, mechanical, etc, components. One of the main parts of System Modeler is the model compiler (Kernel) which takes models written in the Modelica language and compiles them into efficient simulation executables. This compiler was ported to OCaml by using custom tool that performed the code to code translation of our old code base. Slides [Wolfram System Modeler] First OPAM releases of Scad_ml and [@@deriving scad] =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=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: geoffder 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 I'd like to announce the first release onto opam of [Scad_ml] and [ppx_deriving_scad]. The former being a DSL front-end to the [OpenSCAD] solid modelling language, and the latter providing transformation function generation for custom types (a pattern that I have found useful during my time using `Scad_ml'. When I decided I wanted to pick up OpenScad, I was pleasantly surprised to discover that the `Scad_ml' library already existed on GitHub, credits to . Over time I filled out the rest of the OpenSCAD language coverage, as well as some additional helpful math, and reorganized things to try and keep it from getting too messy as more and more was tacked on. Finally, after some help in the ocaml discord (from NULL and octachron), we also now can track whether shapes are 2D or 3D with minimal changes to the user interface, preventing misapplications of operations that would otherwise only appear in the OpenSCAD console. The `[@@deriving scad]' ppx is my solution to make a habit I developed to get around the otherwise fully declarative nature of working in OpenSCAD more ergonomic. Shapes in OpenSCAD cannot be queried in any way, so upon creation, the locations of it's vertices or it's origin are not available. Of course, since you created it, you know exactly it's dimensions, and where you have moved it, but what if you want to use the location of one of it's vertices, wherever that ends up after a series of transformations? What I did for some time before learning how to write a ppx, was put the coordinates I cared about into a record with the shape, and mapped over the type (by hand (and regex)) with the relevant functions (typically transform and rotate). Turns out writing a ppx with `Ppxlib' and `metaquot' isn't so bad, and I really wish I did it sooner! Anyway, to the few of you out there that might use OpenSCAD, I hope that these tools might come in handy! [Scad_ml] [ppx_deriving_scad] [OpenSCAD] 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 ocamlcore planet 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=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 [OCaml Planet]. =E2=80=A2 [Hiring a Developer Educator] =E2=80=A2 [Verification for Dummies: SMT and Induction] =E2=80=A2 [SCoP Passed Phase 1 of the DAPSI Initiative!] [OCaml Planet] [Hiring a Developer Educator] [Verification for Dummies: SMT and Induction] [SCoP Passed Phase 1 of the DAPSI Initiative!] 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 Content-Disposition: inline OCaml Weekly News

OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of October 26 to November 02, 2021.

Lists.ocaml.org: service temporarily sunsetted

Anil Madhavapeddy announced

This note does not concern the main OCaml email list, which continues to be available through https://sympa.inria.fr/sympa/arc/caml-list/

The lists.ocaml.org e-mail service has been going through a rough time in the past few years, with vast swathes of spam regularly hitting our ingress email server and require manual unblocking every time. It was set up back in 2012 as an augmentation of the main OCaml mailing list and really helped with some big projects in the early days (the design of and migration to ppx from camlp4, for example). However, in the intervening years e-mail has reduced in importance as a primary community communication mechanism (as evidenced, for example, in this forum).

With the latest spam surge, I've moved the service into read-only mode with all the mailboxes and archives still available on the website, but with mail delivery and list creation/admin disabled. All existing links should continue to work to historical links online without change. The only mailing list on there that was still active to my knowledge is the opam-commits cron list, which will be replaced by an ocurrent-based deployer for that website shortly.

I hope to bring e-mail back to ocaml.org sometime in 2022, as it's an important communications medium that is highly accessible. One challenge is spam, and another is the inflexibility of GNU Mailman and its upgrade mechanism (essentially a manual process from 2 to 3). Therefore, if there is anyone in the community interested in building a simple e-mail list manager in OCaml, that would be of interest :slight_smile:

Talk at Func Prog Sweden

Leonardo Laguna Ruiz announced

Here's a link for the talk I gave at the Func Prog Sweden meetup. In that talk I show the process we follow some years ago in order to move all our code base to OCaml and why it was an excellent decision.

https://youtu.be/FGXiAARXE2M

Wolfram System Modeler is a simulation environment that can be used to model multi-domain systems. For example systems composed of electrical, thermal, hydraulic, mechanical, etc, components.

One of the main parts of System Modeler is the model compiler (Kernel) which takes models written in the Modelica language and compiles them into efficient simulation executables. This compiler was ported to OCaml by using custom tool that performed the code to code translation of our old code base.

Slides https://a2076202-c90b-450e-901b-cb56c346913c.usrfiles.com/ugd/a20762_adfa899586c7413a8c17f7b708dbc177.pdf

First OPAM releases of Scad_ml and [@@deriving scad]

geoffder announced

I'd like to announce the first release onto opam of Scad_ml and ppx_deriving_scad. The former being a DSL front-end to the OpenSCAD solid modelling language, and the latter providing transformation function generation for custom types (a pattern that I have found useful during my time using Scad_ml.

When I decided I wanted to pick up OpenScad, I was pleasantly surprised to discover that the Scad_ml library already existed on GitHub, credits to https://github.com/namachan10777. Over time I filled out the rest of the OpenSCAD language coverage, as well as some additional helpful math, and reorganized things to try and keep it from getting too messy as more and more was tacked on. Finally, after some help in the ocaml discord (from NULL and octachron), we also now can track whether shapes are 2D or 3D with minimal changes to the user interface, preventing misapplications of operations that would otherwise only appear in the OpenSCAD console.

The [@@deriving scad] ppx is my solution to make a habit I developed to get around the otherwise fully declarative nature of working in OpenSCAD more ergonomic. Shapes in OpenSCAD cannot be queried in any way, so upon creation, the locations of it's vertices or it's origin are not available. Of course, since you created it, you know exactly it's dimensions, and where you have moved it, but what if you want to use the location of one of it's vertices, wherever that ends up after a series of transformations? What I did for some time before learning how to write a ppx, was put the coordinates I cared about into a record with the shape, and mapped over the type (by hand (and regex)) with the relevant functions (typically transform and rotate). Turns out writing a ppx with Ppxlib and metaquot isn't so bad, and I really wish I did it sooner!

Anyway, to the few of you out there that might use OpenSCAD, I hope that these tools might come in handy!

Other OCaml News

From the ocamlcore planet blog

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

--=-=-=--