OCaml Weekly News

Previous Week Up Next Week


Here is the latest OCaml Weekly News, for the week of May 21 to 28, 2024.

Table of Contents

odoc Documentation Improvements

Christine announced

The odoc team is working to improve the documentation, so we're reaching out to the community to find out these things:

  • Are you using odoc? If so, how do you use it? What are your thoughts?
  • What parts of the documentation have been helpful?
  • What's missing?
  • What suggestions do you have for improvement?
  • What are you pain points for either/both the documentation or the tool itself?

Your input is more valuable than I can express. Looking forward to your answers!

Using OCaml on windows with WSL

Continuing this thread, Lukasz Stafiniak announced

I have a somewhat related blog post How to update or install a new Linux distribution on WSL.

binsec 0.9.1

Frédéric Recoules announced

On behalf of the BINSEC team, I am glad to announce that version 0.9.1 now lives in Opam.

As a short introduction, BINSEC is an open-source program analyzer developed at CEA List to help improve software security at the binary level. It has been successfully applied in a number of security-related contexts, such as vulnerability finding, (malware) deobfuscation, decompilation, formal verification of assembly code or even binary-level formal verification.

The version 0.9 refactors the SMT solver API, enabling new kinds of interaction (incremental solving) and paving the way to more support to internal solver bindings (bitwuzla, bitwuzla-cxx, z3).

More information can be found on the website , including publications , tutorials or contacts, but also the description of this release as well as previous ones.

UDP multicast examples using async and lwt

Foxder announced

I am very new to OCaml and have been enjoying learning the language. I was looking for examples of simple UDP multicast senders and receivers and could not find any great ones (please let me know if I missed some) so I went about creating some examples for myself and anyone in the future.

I created examples using both async and lwt for concurrency. If anyone has feedback, I would gladly take it to improve on the examples.

opam 2.1.6

Kate announced

We are pleased to announce the minor release of opam 2.1.6.

This opam release consists of backported fixes, of which the main ones are:

  • Warn users when GNU patch cannot be found. This is required for opam-repository maintainers to go forward in implementing ocaml/opam-repository#23789 so that there are as little breakage as possible.
  • Improve depexts handling on Gentoo, NetBSD and OpenBSD.

You’ll find more information in the release blog post.

To upgrade simply run:

bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) --version 2.1.6"

or upgrade your distribution of choice if their opam package is up-to-date.

Getting OCaml Through the Eye of a Needle

Koala announced

Over at lobste.rs there is some discussion on the following blog post: https://hypirion.com/musings/getting-ocaml-through-the-eye-of-a-needle

Basically it’s about the ups and downs when using and installing Ocaml packages. Personally, I’ve had similar experiences, but this article is really well written. The author shows great technical knowledge and I think he tries to be fair.

What do you think?

Discussion on lobste.rs: https://lobste.rs/s/nihkwe/getting_ocaml_through_eye_needle

Merlin 5.0-502

vds announced

We are pleased to announce the release of merlin 5.0-502 !

Support for OCaml 5.2

This release brings official support for OCaml 5.2. Substantial backend changes were required to adapt to this release, especially for features such as occurrences and get-documentation. Do not hesitate to report any suspicious behavior in the issue tracker!

Other changes

This release also fixes a handful of issues:

  • Destruct: Removal of residual patterns (#1737, fixes #1560)
  • Destruct: Do not erase fields' names when destructing punned record fields (#1734, fixes #1661)
  • Ignore SIGPIPE in the Merlin server process (#1746)
  • Fix lexing of quoted strings in comments (#1754, fixes #1753)
  • Improve cursor position detection in longidents (#1756)

Launching the First-Class Windows Project

Sudha Parimala announced

I'm excited to introduce the First-Class Windows Project, which aims to make OCaml more accessible by enhancing the developer experience on Windows to match that of Linux and macOS. Our goal is to create a roadmap outlining the steps needed to fully support OCaml on Windows.

Check our blog post for details: https://tarides.com/blog/2024-05-22-launching-the-first-class-windows-project/

As always, happy to receive questions and feedback.

Chennai OCaml meetup: June 2024

Sudha Parimala announced

Hi all! We're hosting an OCaml meetup at the Tarides Chennai offices. We have some interesting talks followed by informal conversations over food.

@kayceesrk will be speaking about Concurrent Programming with Effect Handlers. We have an open slot for another talk, please get in touch if you'd like to present something.

People of all backgrounds and level of OCaml welcome. RSVP at the following link: https://www.meetup.com/chennai-ocaml-meetup/events/301193020/?utm_medium=referral&utm_campaign=share-btn_savedevents_share_modal&utm_source=link

Looking forward to seeing some of you there!

Caper 1.0

niksu announced

Caper has now reached v1.0, some 5+ years after development first started.

Caper is a tool for understanding and processing “pcap expressions” (also known as tcpdump filters) which are used for network packet analysis. It is entirely written in OCaml and includes pcap analysis logic, a from-scratch BPF compiler, and conversion to/from English expressions.

You can use Caper online through the BPF Exam site.

Caper’s README describes motivation, building, and usage examples, and its CHANGELOG describes recent updates.

A huge thanks goes to Caper’s contributors. Further contributions and feedback are welcome – a list of contribution ideas is included on Caper’s web page.

Ppxlib dev meetings

Nathan Rebours announced

Our next meeting is scheduled on Tuesday May 28th at 6:00PM CET.

I'll post the google meet link here on the day of the meeting.

In the meantime, here is the meeting agenda so far:

  • 5.2 Release
    • Released during compiler's beta, went smoothly
  • 5.3 trunk support
    • Reused the work from @hhugo and adapted it
    • We have an open PR with 5.3 support that needs review
    • External contributors already started adding support for new features: @nojb added support for the effects patterns and an internal change to location reports
    • How to maintain trunk support on our main branch
  • ppx_deriving and ppx_deriving_yojson ppxlib ports
    • PRs open for the release of both
    • A few bug fixes were required but it should be good to go now
  • 5.2 internal AST bump
    • Now that the 5.2 support has been released, we can discuss the plan for this

If you'd like to bring something else up please answer in this thread so we can add it to the agenda.

You are also welcome to attend the meeting, whether you have something to bring to our attention, would like to contribute to the project or are just interested in ppxlib and ppx in general.

Tarides GitHub Sponsorship Page – Supporting the OCaml Community Together

Thomas Gazagnaire announced

I am happy to share that Tarides now has a GitHub Sponsorship page, live here https://github.com/sponsors/tarides! 🎉 As a part of the vibrant OCaml community, Tarides is dedicated to supporting both the projects and the individuals who make this ecosystem thrive.

Why GitHub Sponsorship?

The OCaml community is filled with many talented individual contributors and collectives who deserve your support, such as Daniel, Antonio, Leandro, Robur and many others. We encourage you to sponsor them directly to support their work.

But now, you can also sponsor Tarides! Creating a GitHub Sponsorship page is an important step for us, aimed at sustaining projects that currently lack direct, stable revenue sources. While we are thankful for long-term sponsors such as Jane Street and Tezos, we want to diversify our open-source funding stream to ensure the long-term stability and sustainability of core infrastructure projects we are working on for the community.

What Can You Expect?

On our sponsorship page, you’ll find detailed information about our ongoing projects, including:

  • OCaml Compiler: Maintaining ease of use, correctness, and performance of the compiler(s).
  • OCaml Platform: Ensuring core tools evolve and are compatible with new OCaml releases.
  • OCaml.org: Maintaining the central knowledge base for the OCaml community.
  • Advanced Projects: Such as MirageOS, Irmin and Eio.

Your support will directly contribute to the sustainability of these projects and allow us to continue our work and maintain these libraries and tools.

How You Can Help

We invite you to visit our GitHub Sponsorship page to learn more about our projects and how you can get involved. We welcome any suggestions or comments on how we can improve and better serve the community.

Commercial Support

While this annoucement is about the ongoing maintenance of our core open-source projects, we are also available to organize training, develop custom extensions, or provide long-term commercial support for these projects. [Get in touch](mailto:contact@tarides.com) for more details.

Thank for your support, Thomas, on behalf of the Tarides Team

Other OCaml News

From the ocaml.org blog


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.