|
|
Log in / Subscribe / Register

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)



to post comments


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds