Hello Here is the latest OCaml Weekly News, for the week of March 30 to April 06, 2021. Table of Contents ───────────────── Ecosystem Engineer and Technical Writer positions Release of cohttp 4.0.0 Timere-parse 0.0.2, natural language parsing of date, time and duration agrid 0.1 State of OCaml and web assembly containers 3.3 New OCaml books? Old CWN Ecosystem Engineer and Technical Writer positions ═════════════════════════════════════════════════ Archive: Celine announced ──────────────── [Tarides] is hiring an [Ecosystem Engineer] and a [Technical Writer]. Tarides is a tech startup based in Paris and founded in 2018. We develop a software infrastructure platform to deploy secure, distributed applications with strict resource contraints and low-latency performance requirements. We welcome applications from people of all backgrounds. We are working hard to create a representative, inclusive and friendly team, because we know that different experiences, perspectives and backgrounds make for a better place. Please, don't hesitate to contact me if you have any question, I'll be more than happy to reply! :) [Tarides] [Ecosystem Engineer] [Technical Writer] Release of cohttp 4.0.0 ═══════════════════════ Archive: Continuing this thread, Calascibetta Romain said ──────────────────────────────────────────────── The work on the new conduit is steadily progressing and will be integrated in a new major release of cohttp in the future, once we will be confident that the API is settled. If you want to try using it immediately, then it is available as the [mimic ] library in ocaml-git. I just take the opportunity to show up a tutorial about `mimic' which is now available into the distribution of it: see [here]. Thanks for your work about the release process. [mimic ] [here] Timere-parse 0.0.2, natural language parsing of date, time and duration ═══════════════════════════════════════════════════════════════════════ Archive: Continuing this thread, Darren said ─────────────────────────────────── The demo site has been updated to use Timere-parse, you can now try interacting with `Timere_parse.timere' in web browser at agrid 0.1 ═════════ Archive: zapashcanon announced ───────────────────── I'm pleased to announce the first release of [agrid]. Agrid stands for *Adjustable Grid*. Adjustable grids are basically two dimensional arrays whose width/height can be changed by adding or removing row/column at either end (one at a time). Here's a very short example : ┌──── │ let () = │ let grid = Agrid.of_list [[1; 2]; [3; 4]] in │ let grid = Agrid.snoc_row grid (Flex_array.of_list [5; 6]) in │ Agrid.pp Format.pp_print_int Format.std_formatter grid │ (* prints: │ * 1; 2 │ * 3; 4 │ * 5; 6 │ *) └──── It's based on the great [flex-array] library by [Jean-Christophe Filliâtre] and is mainly a wrapper around it to make it easier for the special case of two dimensional arrays. It's been developped at [OCamlPro] while working on [mosaic] when we wanted to ease the dataset input process, switching from a basic textarea based input to something which looks like a spreadsheet (this work is not yet published on the online version). [agrid] [flex-array] [Jean-Christophe Filliâtre] [OCamlPro] [mosaic] gasche asked and zapashcanon replied ──────────────────────────────────── Out of curiosity: In a spreadsheet, I would assume that inserting/removing rows or columns in the middle is also a useful operation. Would you be able to add this operation? It's not really a spreadsheet, it's more something [like this]. I don't think it would be really useful in the case of mosaic because for big inputs, users are more likely to import the data from a file. Anyway, it's possible to add this operation, but I can't think of an efficient way to do it. I'll think about it and may add such an operation. Actually, if it's added to flex-array, it would be trivial to add it to agrid, so I'll probably try to add it there. [like this] State of OCaml and web assembly ═══════════════════════════════ Archive: Deep in this thread, Emilio Jesús Gallego Arias announced ───────────────────────────────────────────────────────── Yup, we didn't make it yet the "official" release, but it has been used by quite a few people to avoid lack of tail-call optimization in jsoo, live versions: • It literally flies. I guess @corwin-of-amber is the right person to comment more on his superb efforts. Shachar Itzhaky then added ────────────────────────── Hi there @camarick; ocaml-wasm is very much bleeding-edge but it already works surprisingly well and I have used it to run Coq, esp. for the purpose of making the interactive version of Vols. I,II from the Software Foundations textbook (see and ). Of course @ejgallego is exaggerating when he says that it flies, it still runs OCaml bytecode in interpreted mode on top of the WASM JIT. Performance is pretty reasonable still, except in the case some intensive Coq tactics (in which case this is a third level of interpreter… :man_facepalming: ). The main gap right now is the standard libraries `str', `unix', and `threads', for which I have compiled empty stubs, because dynamic loading of libraries in WASI is still immature. I *have* been able to compile `num' and it works correctly because it does not depend on anything else. I am currently investigating how to build `zarith' (which requires `gmp') because Coq 8.13 depends on it. So yeah, this is not at all the coveted WASM backend for `ocamlc', but it's one existing solution and you can hack on it right now. Any help or comments are welcome! containers 3.3 ══════════════ Archive: Simon Cruanes announced ─────────────────────── I'm glad to announce the release of containers 3.3. Containers is an extension to OCaml's standard library that strives to be compatible with it, with more features and a few additional modules to get dynamic arrays, heaps, S-expression parser/printer, etc. In this release, we have new support for parsing/printing canonical S-expressions (a simple binary-safe format), a code-generation module for bitfields, and many improvements to existing modules in particular in the interface between maps/set/hashtbl and iterators. More details [in the github release]. Many thanks to the contributors, in particular @Fardale for his work on CI and auto-doc-generation. [in the github release] New OCaml books? ════════════════ Archive: Deep in this thread, Damien Guichard announced ────────────────────────────────────────────── I’m also working on a free culture book. The preview is at It’s under CC-BY-SA. Planned chapters include : Records, Type polymorphism, Modules as functions, Conceptual graphs. The reason why i don't contribute to @dmbaturin's effort is that my main topic is algorithmic, ocaml is more a good way than a goal. Damien Guichard later added ─────────────────────────── Sorry, you have to be a member of to access this link. Here is my 2nd try. I hope you don't need to be a member of this time. 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]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [online] [Alan Schmitt]