Attn: Development Editor, Latest OCaml Weekly News
Alan Schmitt <[email protected]> Tue, 12 Aug 2025 17:32:34 +0200
| Newsgroups | gmane.comp.lang.caml.inria |
|---|---|
| Message-ID | <[email protected]> |
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
│
│ {#mp4 style="width:100%"}
│
│ {pause up}
│
│ ## PDF demo
│
│ {#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:[email protected]>
[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/>