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
  │ 
  │ ![](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:[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/>