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

Alan Schmitt
2025-08-12T15:32:40Z

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

Hello

Here is the latest OCaml Weekly News, for the week of August 05 to 12,
2025.

Table of Contents
─────────────────

Slipshow!
Miou, a simple scheduler for OCaml 5
Dream development open video call
Other OCaml News
Old CWN

Slipshow!
═════════

Archive: <https://discuss.ocaml.org/t/ann-slipshow/16337/9>

Paul-Elliot announced
─────────────────────

It is with some /bitter/ joy that I’m announcing the 0.4.1 version of
Slipshow [on opam]:

[on opam] <https://github.com/ocaml/opam-repository/pull/28181>

The slides strike back
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

The main improvements of this version are the introduction of
arguments to actions, a frontmatter, and improvements to slides.

All together, they allow to easily design presentations the slides
way:

<https://github.com/user-attachments/assets/844754a7-7731-45a8-8cc5-97a315d5cd92>

┌────
│ ---
│ toplevel-attributes: {children:slide children:enter="~duration:0"}
│ ---
│
│ # Slide 1
│
│ Content
│
│ ---
│
│ # Slide 2
│
│ Content
│
│ ---
│
│ # Slide 3
│
│ You get it
└────

So, why “​/bitter/ joy”?

I was reluctant to add good support for traditional slide-based
presentation. There are already very good and mature solutions for
this, including some with similar technical foundations as Slipshow. I
was more interested in developping the new things: Slips!

However, Slipshow starts to have useful features that competitor don’t
always have (for instance: a self-contained html output! But more, and
more to come). Also, for people who already have slide-based
presentations, it makes it easier to migrate them, and use a single
tool for old and new presentations!

Finally, I wanted to make Slipshow a bit more versatile and added
attributes, frontmatter, and a new options: `toplevel-attributes'. The
proper slide support is actually just a nice consequence of this
versatility! 🥳

Here is the full changelog:

• Fix `children:' not working sometimes
• Add `--toplevel-attributes' to control the attributes on the
toplevel container
• Render slide titles as slide titles
• Add arguments to actions
• Add frontmatter

You can now do

┌────
│ ---
│ theme: vanier
│ dimension: 16:9
│ css: my_pres.css
│ ---
│
│ The content here.
└────

OCaml-specific notes on action arguments
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

In this release, I add the ability to give arguments to actions. For
instance, an action can be to focus on a specific element:

┌────
│ {#my_element}
│ Some content
│
│ {focus="my_element"}
└────

The "positional" arguments is the list of IDs that must be focused. To
add other kind of arguments , they need to be named:

┌────
│ {#my_element}
│ Some content
│
│ {focus="~duration:2 ~margin:5 my_element"}
└────

It was fun to integrate OCaml syntax in slipshow ;) This way, people
coming to OCaml after learning slipshow will feel familiar with the
syntax!

Paul-Elliot later announced
───────────────────────────

The Slipshow development intensifies… It is with external pleasure
that I announce the [0.5.0] release of slipshow [on opam].

Warning: External files have invaded our world! They raise dead
formats like PDF into the liveliness of Slipshow presentations!

[0.5.0] <https://github.com/panglesd/slipshow/releases/tag/v0.5.0>

[on opam] <https://github.com/ocaml/opam-repository/pull/28308>

Slipshow 0.5.0: Plan 9 from External Files
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

As subtly hinted by the title, this slipshow release focuses on the
integration of external files in a presentation. Rest assured, a
compiled Slipshow presentation stays a standalone HTML file!

In effect, you can now include PDFs, videos and audios files in your
presentations! Here is a demo:

<https://github.com/user-attachments/assets/bf7d5933-9b29-4e52-ac2a-c4a9a87d9dc6>

With the simple source:

┌────
│ {#title}
│ # Plan 9 from External Files
│
│ {pause play-media=mp4}
│ ## Video demo
│
│ ![](plan9.mp4){#mp4 style="width:100%"}
│
│ {pause up}
│
│ ## PDF demo
│
│ ![](plan9.pdf){#pdf}
│
│ {focus=pdf}
│
│ {change-page="~n:all pdf"}
│
│ {unfocus up=title}
└────

Here is the full changelog:

◊ Compiler

• Add support for pdfs
• Add support for audios and videos
• Fix `enter' action being added to blockquotes

◊ Language

• Add a carousel type and a `change-page' action
• Add a `play-media' action

◊ Engine

• Fix compatibility of slipshow and editable content
• Fix scroll bar appearing in drawing toolbox

Miou, a simple scheduler for OCaml 5
════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-miou-a-simple-scheduler-for-ocaml-5/12963/16>

Calascibetta Romain announced
─────────────────────────────

I am pleased to announce the release of [miou.0.4.0], the
documentation was just updated [here] and the book to learn about Miou
is still available [here]. This version mainly consolidates our
experiments with other libraries, notably: [`ocaml-dns'],
[`happy-eyeballs'], [`mirage-crypto'], [`ocaml-tls'], [`httpcats'],
[`carton'], [`sendmail'] and [`caqti'].

This consolidation of the API allows us to go further and, in
particular, to start offering the [development of unikernels with
OCaml 5]. To this end, you can follow projects such as [miou-solo5] or
[chaos]. An overview is available [on my blog] (which presents the
latest Mirage retreat in May).

We would also like to continue improving [Vif] and [Hurl] ([a
tutorial] has just been published on this subject).

Other projects are still in the experimental phase, such as: [`notty'
/ `nottui'], [`blaze'], [`multipart_form'] or [`awa-ssh'].

Finally, we would like to thank everyone who has participated directly
or indirectly in this project and to its integration into the OCaml
ecosystem.

Happy hacking!

[miou.0.4.0] <https://github.com/robur-coop/miou>

[here] <https://docs.osau.re>

[here] <https://robur-coop.github.io/miou>

[`ocaml-dns'] <https://github.com/mirage/ocaml-dns>

[`happy-eyeballs'] <https://github.com/robur-coop/happy-eyeballs>

[`mirage-crypto'] <https://github.com/mirage/mirage-crypto>

[`ocaml-tls'] <https://github.com/mirleft/ocaml-tls>

[`httpcats'] <https://github.com/robur-coop/httpcats>

[`carton'] <https://github.com/robur-coop/carton>

[`sendmail'] <https://github.com/mirage/colombe>

[`caqti'] <https://github.com/paurkedal/ocaml-caqti>

[development of unikernels with OCaml 5]
<https://github.com/robur-coop/miou-solo5/blob/main/slides/retreat.md>

[miou-solo5] <https://github.com/robur-coop/miou-solo5>

[chaos] <https://git.robur.coop/robur/chaos>

[on my blog] <https://blog.osau.re/articles/last_mirageos_retreat.html>

[Vif] <https://github.com/robur-coop/vif>

[Hurl] <https://github.com/robur-coop/hurl>

[a tutorial] <https://robur-coop.github.io/vif/>

[`notty' / `nottui'] <https://github.com/robur-coop/notty-miou>

[`blaze'] <https://github.com/dinosaure/blaze>

[`multipart_form'] <https://github.com/dinosaure/multipart_form>

[`awa-ssh'] <https://github.com/mirage/awa-ssh>

Dream development open video call
═════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/dream-development-open-video-call/17053/6>

Continuing this thread, Anton Bachin announced
──────────────────────────────────────────────

For those interested in minutes/notes, providing a brief summary
:slight_smile:

We had a chat about how to maintain Dream as a community, added
several people to the repo (master branch is locked for security), and
worked through what we can do immediately on several PRs. I showed how
I maintain Dream on those PRs, and several others contributed their
thoughts and ideas.

At the end we talked off-topic a bit about the future of Dream and
bigger projects in it and around it to tackle.

It’s difficult to write out minutes as it was a lot of detailed talk
and work – adding specific people, dealing with specific issues. One
can see the recent activity in the [Dream repo] to see our guinea pig
PRs :slight_smile:

[Dream repo] <https://github.com/aantron/dream>

Anton Bachin later added
────────────────────────

We’re going to have the next dev meeting this coming Friday, and
weekly thereafter.

Other OCaml News
════════════════

>From the ocaml.org blog
───────────────────────

Here are links from many OCaml blogs aggregated at [the ocaml.org
blog].

• [Upcoming OCaml Events]
• [Irmin Retrospective]

[the ocaml.org blog] <https://ocaml.org/blog/>

[Upcoming OCaml Events] <https://ocaml.org/events>

[Irmin Retrospective] <https://patrick.sirref.org/irmin-retro/>

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
to the [caml-list].

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

[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>

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

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