OCaml Weekly News

Previous Week Up Next Week


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

Table of Contents

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.


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


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.