[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt
2021-04-06T09:42:20Z

[-- Attachment #1: Type: text/plain, Size: 10885 bytes --]

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:
<https://discuss.ocaml.org/t/job-ecosystem-engineer-and-technical-writer-positions/7571/1>

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] <https://tarides.com/>

[Ecosystem Engineer] <https://tarides.com/jobs/ecosystem-engineer>

[Technical Writer] <https://tarides.com/jobs/technical-writer>

Release of cohttp 4.0.0
═══════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-release-of-cohttp-4-0-0/7537/2>

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 ] <https://github.com/mirage/ocaml-git/tree/master/src/mimic>

[here] <https://mirage.github.io/ocaml-git/mimic/index.html>

Timere-parse 0.0.2, natural language parsing of date, time and duration
═══════════════════════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-timere-parse-0-0-2-natural-language-parsing-of-date-time-and-duration/7532/2>

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
<https://daypack-dev.github.io/timere-parse-demo/>

agrid 0.1
═════════

Archive: <https://discuss.ocaml.org/t/ann-agrid-0-1/7587/1>

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] <https://ocamlpro.github.io/agrid>

[flex-array] <https://github.com/backtracking/flex-array>

[Jean-Christophe Filliâtre] <https://www.lri.fr/~filliatr/>

[OCamlPro] <https://www.ocamlpro.com/>

[mosaic] <https://mosaic.univ-lyon1.fr/>

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] <https://www.zapashcanon.fr/~leo/atable/>

State of OCaml and web assembly
═══════════════════════════════

Archive:
<https://discuss.ocaml.org/t/state-of-ocaml-and-web-assembly/2725/15>

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:
• <https://jscoq.github.io/wa/>
• <https://jscoq.github.io/wa/scratchpad.html>

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
<https://jscoq.github.io/ext/sf> and
<https://jscoq.github.io/ext/sf/tools/jscoq-tester.html>).

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: <https://discuss.ocaml.org/t/ann-containers-3-3/7594/1>

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]
<https://github.com/c-cube/ocaml-containers/releases/tag/v3.3>

New OCaml books?
════════════════

Archive: <https://discuss.ocaml.org/t/new-ocaml-books/5789/6>

Deep in this thread, Damien Guichard announced
──────────────────────────────────────────────

I’m also working on a free culture book. The preview is at
<https://damien-guichard.developpez.com/downloads/Algorithmic-with-OCaml.pdf>

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 <https://www.developpez.com/> to
access this link.

Here is my 2nd try. I hope you don't need to be a member of
<https://www.aeriesguard.com/> this time.
<https://www.aeriesguard.com/media/get/504bfbe34d3f517c8acf37ffbe200f84698aca0c/Algorithmic-with-_OCaml.pdf>

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] <mailto:alan.schmitt@polytechnique.org>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>

[Alan Schmitt] <https://alan.petitepomme.net/>

[-- Attachment #2: Type: text/html, Size: 23290 bytes --]