OCaml Weekly News
Hello
Here is the latest OCaml Weekly News, for the week of May 23 to 30, 2023.
Table of Contents
ML’23: ACM SIGPLAN ML Family Workshop — Call for presentations
Archive: https://discuss.ocaml.org/t/ml23-acm-sigplan-ml-family-workshop-call-for-presentations/12224/1
Guillaume Munch-Maccagnoni announced
We are happy to invite submissions to the ML Family Workshop 2023:
Higher-order, Typed, Inferred, Strict: ACM SIGPLAN ML Family Workshop
Co-located with ICFP
Date: September 8, 2023 (Friday)
Location: Seattle, WA, USA (day after main ICFP)
ML (originally, "Meta Language") is a family of programming languages that includes dialects known as Standard ML, OCaml, and F#, among others. The development of these languages has inspired a large amount of computer science research, both practical and theoretical.
The ML Family Workshop is an established informal workshop aiming to recognize the entire extended ML family and to provide the forum to present and discuss common issues: all aspects of the design, semantics, theory, application, implementation, and teaching of the members of the ML family. We also encourage presentations from related languages (such as Haskell, Scala, Rust, Nemerle, Links, Koka, F*, Eff, ATS, etc), to promote the exchange of ideas and experience. The ML family workshop will be held in close coordination with the OCaml Users and Developers Workshop.
We plan the workshop to be an in-person event with remote participation (streamed live). Speakers are generally expected to present in person (we will work to make remote presentations possible).
We solicit proposals for contributed talks, in PDF format, with a short summary at the beginning and the indication of the submission category: Research Presentations, Experience Reports, Demos, and Informed Positions. The point of the submission should be clear from its first two pages (PC members are not obligated to read any further.) We particularly encourage talks about works in progress, presentations of negative results (things that were expected to but did not quite work out) and informed positions.
See the full call for presentations for submission instructions.
- Deadline for talk proposals: Thursday, June 1, 2023
- Notification of acceptance: Thursday, July 6, 2023
- Workshop: Friday, September 8, 2023
Program Committee
- Lars Bergstrom, Google, USA
- Martin Elsman, University of Copenhagen, Denmark
- Matthew Fluet, Rochester Institute of Technology, USA
- Jacques Garrigue, Nagoya University, Japan
- Oleg Kiselyov, Tohoku University, Japan (Chair)
- Julia Lawall, Inria Paris, France
- Andrey Mokhov, Jane Street, UK
- Benoît Montagu, Inria Rennes, France
- Guillaume Munch-Maccagnoni, Inria Rennes, France
- Matija Pretnar, University of Ljubljana, Slovenia
- Andreas Rossberg, Germany
- Gabriel Scherer, Inria Saclay, France
OCaml Workshop 2023 – presentation deadline on June 1st, online attendance option
gasche announced
The OCaml Workshop is happening every year, co-located with the ICFP conference (the main academic conference on functional programming). This year the meeting will happen in Seattle on Saturday September 9th. It should be hybrid: it will be possible to attend and even give talks remotely.
To get a sense of the OCaml Workshop style, topics and content, ocaml.org has a page about previous editions, with the list of talks and links to the descriptions and talk recordings when available: OCaml Workshops.
The deadline for submitting a talk proposal is June 1st, coming soon. Please consider submitting a proposal to present your OCaml work at the workshop!
- Call for presentations (description of the expected format, etc.)
- Submission website for talk proposals – please read the “Call for presentations” first.
A major change compared to previous editions of the workshop is that online attendance should be free. (The cost is decided by the ICFP organizers, and it is still possible that this would change before the workshop.) Everyone is of course welcome to attend remotely, anywhere on earth. We are very excited that this could be the most accessible OCaml workshop, reaching the broadest possible audience.
A Roadmap for the OCaml Platform - Seeking Your Feedback
Thibaut Mattio announced, spawning a big thread
Three years ago, @avsm and the OCaml Platform team presented a roadmap for the OCaml Platform. The vision we had of the Platform in 2020 was one of a seamless editor integration, where users could open their editors and instantly be productive with OCaml.
While there’s still a long road ahead to achieve this vision, we’ve made a lot of progress. The tooling landscape and developer experience with OCaml have changed quite a lot in the past 3 years and we’ve made significant progress on all the tools of the Platform:
- Dune is now the primary build system used by OCaml developers, with 65% of packages on the opam repository using Dune as their build system.
- Ppxlib has become the best way to write PPX and most PPX have been migrated to Ppxlib. To get a sense of the effort that went into this, you can read the updates from 2019, 2020, 2021.
- We’ve built a Language Server Protocol (LSP) server for OCaml, that powers the OCaml VSCode extension which has now been downloaded 100K times.
- We’ve built an RPC protocol in Dune that was released in Dune 3.0 and another one for OCamlFormat. These protocols are integrated with OCaml LSP to support some of its features.
- Odoc 2.0.0 was released with a complete re-write of the language model to make the generated documentation more accurate, and also comes with a new rendering layer to allowing output in different formats including HTML, LaTex and manpage. Odoc is also now used to generate the documentation of every OCaml package on ocaml.org.
- Opam 2.1.0 was released with significant improvements like the integrated depext system and the generation of lock files.
- We re-implemented the way we locate OCaml terms in Merlin which greatly improved the accuracy of the `locate` query and paved the way for the work on project-wide references. To achieve this, we added a new representation of the module structure in the OCaml compiler called “Shapes”. Shapes are now used in Merlin, but also enable features in other Platform tools, like linking to source code in Odoc.
In the meantime, things have also changed for the broader OCaml ecosystem. OCaml 5 was released with support for shared memory parallelism and effect handlers; and we saw a new version of OCaml.org going live with a centralised package documentation, a job board, an interactive playground, and more.
Following the three priorities we adopted in 2022, we now want to intensify our efforts on prototyping new workflows for OCaml development. It is time to reflect back on everything we’ve done and lay down a roadmap for the next three years.
In the past few months, we’ve been working on establishing a vision for the future of the OCaml Platform. We reviewed as much community feedback as possible, organised discussions with the maintainers of the Platform tools, met with industrial users of OCaml to understand their needs and pain points, and we collectively thought of what the ideal developer experience with OCaml ought to be.
We want the OCaml Platform to be driven by the community. So today, I’m excited to share the first parts of the roadmap to start collecting feedback and iterating on them.
You can see the work-in-progress roadmap on GitHub. The repository currently contains two documents:
- Design Principles: The principles that will guide the desired OCaml developer experience.
- Users: The different user personas within the OCaml ecosystem serve as a guide for the roadmap, ensuring that it addresses the unique requirements of each archetype.
Feel free to read through them and share your thoughts, in particular:
- Do you agree with the Principles of the Platform?
- Do you see yourself represented in the Users?
Once we’ve iterated on the feedback and are ready to adopt these high-level guidelines, we’ll refine the developer workflows we aim to build in the coming years. Similarly to the first sections, we’ll post them on Discuss to discuss them with the community and ultimately adopt a first version of the Platform roadmap.
I’m looking forward to everyone’s feedback and building this roadmap together!
new release: tiny_httpd 0.13
Simon Cruanes announced
I’m happy to announce that tiny_httpd got a new [release]( https://github.com/c-cube/tiny_httpd/releases/tag/v0.13 ).
Tiny_httpd is a small and reasonably simple HTTP 1.1 server that relies on threads (or a thread pool) rather than async/cooperative multitasking. It’s perhaps a bit reactionary[^1] but it can be quite useful to add an embedded web UI/web server to existing code (think adding a httpd to ocamlopt or Coq or BAP or…). However, tiny_httpd does come with a basic type-safe router, HTML combinators, SSE endpoints, a packing tool for assets, streaming interface (with chunking) to read/write long bodies in constant memory, and an optional deflate middleware based on camlzip.
[^1]: 👴📢💪️☁️
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.