OCaml Weekly News October 21
| From: | Alan Schmitt <alan.schmitt-AT-polytechnique.org> | |
| To: | "lwn" <lwn-AT-lwn.net>, caml-list-AT-inria.fr | |
| Subject: | Attn: Development Editor, Latest OCaml Weekly News | |
| Date: | Tue, 21 Oct 2025 11:17:47 +0200 | |
| Message-ID: | <m2zf9kipfo.fsf@mac-03220211.irisa.fr> |
Hello Here is the latest OCaml Weekly News, for the week of October 14 to 21, 2025. Table of Contents ───────────────── Backstage OCaml: ocaml.nvim - A Neovim Plugin for OCaml Ocaml notebooks in web browser Cure2 - combinator frontend for re2 Other OCaml News Old CWN Backstage OCaml: ocaml.nvim - A Neovim Plugin for OCaml ═══════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-backstage-ocaml-ocaml-nvi...> Charlène_Gros announced ─────────────────────── We’re excited to announce **ocaml.nvim**, a new Neovim plugin actively being developed by Tarides that brings advanced OCaml development features to Neovim users. Think of it as the Neovim sibling of [ocaml-eglot], which we released earlier this year for Emacs users. [ocaml-eglot] <https://github.com/tarides/ocaml-eglot> What is ocaml.nvim? ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Modern code editors communicate with programming languages through the Language Server Protocol (LSP), which provides essential features like syntax checking, code navigation, and auto-completion. However, OCaml’s language server exposes powerful custom commands beyond what generic LSP clients can access. ocaml.nvim works alongside generic Neovim LSP plugins like `nvim-lspconfig', providing direct access to advanced ocamllsp features without requiring complex editor-side logic. The plugin gives you access to all the advanced Merlin commands not supported by generic LSP clients. Key Features ╌╌╌╌╌╌╌╌╌╌╌╌ *Typed Holes Navigation* - Navigate between typed holes (`_') and interactively substitute them with the Construct command. *Semantic Navigation* - Move through your code semantically: jump between expressions, parent `let' bindings, modules, functions, and `match' expressions. *Phrase Navigation* - Move between OCaml phrases (top-level definitions) in your buffer. Many more features are in development, including alternating between `.ml' and `.mli' files, type enclosing, and pattern matching generation. Getting Started ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Installation is straightforward with lazy.nvim: ┌──── │ require("lazy").setup({ │ { "tarides/ocaml.nvim", │ config = function() │ require("ocaml").setup() │ end │ } │ }) └──── The plugin complements your existing LSP setup—you’ll continue to use Neovim’s built-in LSP for standard features while ocaml.nvim adds OCaml-specific capabilities. Project Status ╌╌╌╌╌╌╌╌╌╌╌╌╌╌ The ocaml.nvim repository is now public on [GitHub], with comprehensive documentation, a feature table, and screencast demonstrations. We’re working towards a stable 1.0 release and welcome feedback from the community. Try out `ocaml.nvim' and let us know what you think! For questions or feedback, you can post an issue on the ocaml.nvim GitHub repository. [GitHub] <https://github.com/tarides/ocaml.nvim> Ocaml notebooks in web browser ══════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-notebooks-in-web-browse...> Davy announced ────────────── Hello everyone ! I’m currently learning Ocaml, and found no better way to learn than working on a project : I’m happy to announce *xeus-ocaml*, a new kernel to run Ocaml from *Jupyterlite* notebooks :partying_face: I’m far from a professional developer, and very new to Ocaml, so do not hesitate to [try it] with your workflow, report any [new issues], ask for other external libraries (currently only stdlib and ocamlgraph), or contribute to its development to make the code more robust and idiomatic. Any feedback would be appreciated! [try it] <https://davy39.github.io/xeus-ocaml/lab/index.html?path=d...> [new issues] <https://github.com/davy39/xeus-ocaml/issues/new> Cure2 - combinator frontend for re2 ═══════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-cure2-combinator-frontend...> Emile Trotignon announced ───────────────────────── [Cure2] is a little library I just made, that provide a combinator frontend to Re2. With it, instead of `"https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&//=]*)"', you can write: ┌──── │ let second_level_char = charset Charset.[Ascii.alnum; chars "-@:%._\\+~#="] in │ let top_level_chars = charset Charset.[Ascii.alnum; chars "()"] in │ let path_chars = charset Charset.[Ascii.alnum; chars "()@:%_\\+.~#?&/="] in │ str "http" + !?(char 's') + str "://" │ + !?(str "www.") + rep ~min:1 ~max:256 second_level_char │ + char '.' + rep ~min:1 ~max:6 top_level_chars │ + bow + rep path_chars └──── [Cure2] <https://github.com/ahrefs/cure2> Other OCaml News ════════════════ From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Setting up Open Telemetry (OTel, Prometheus, Grafana and Jaeger) with OCaml] • [CI support for OCaml 5.4] [the ocaml.org blog] <https://ocaml.org/blog/> [Setting up Open Telemetry (OTel, Prometheus, Grafana and Jaeger) with OCaml] <https://fearful-odds.rocks/blog/setting-up-otel-with-ocaml> [CI support for OCaml 5.4] <https://www.tunbury.org/2025/10/18/ci-support-for-ocaml-54/> 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: None (type=text/html)(HTML attachment elided)
