Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 30 Sep 2025 15:12:09 +0200	[thread overview]
Message-ID: <m2a52caxue.fsf@mac-03220211.irisa.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 31175 bytes --]

Hello

Here is the latest OCaml Weekly News, for the week of September 23 to
30, 2025.

Table of Contents
─────────────────

OCaml security team
ocaml-xmlerr 0.08.2 available
Contract OCaml Engineer – Terrateam (Remote, 3 months)
Mk-man module
gil scm .cmd
mini-svg version 0.03.13b, of 0.03.13
An efficient priority queue with low integer priorities
Cmdliner 2.0.0
Detrow, a command-line calendar
rpmfile 0.8.0+ library
OCaml compiler office hours? (preparation thread)
Other OCaml News
Old CWN


OCaml security team
═══════════════════

  Archive: <https://discuss.ocaml.org/t/ann-ocaml-security-team/16902/1>


Hannes Mehnert announced
────────────────────────

  Dear everyone,

  We are starting an effort to push security into OCaml. This is based
  on discussions in the OCaml Software Foundation with industry
  partners. The main goal is to have best practises similar to those of
  other programming language ecosystems.


Reporting security issues
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  This entails a point of contact for the security team - which deals
  with communication between the person who found a security-relevant
  problem in OCaml software (named "reporter"), who can then contact us
  - the security team - instead of using a public bug tracker, and the
  upstream OCaml developer(s).

  We, the security team, will establish the three-way communication, and
  since we have a documented security disclosure process (which will be
  published soon), we will guide everyone through the process and ensure
  that timelines are met, CVE numbers are assigned, …


Team composition
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The OCaml security team currently consists of individual security
  experts and individuals representing company sponsors of the OCaml
  Software Foundation. Individual members participating on a personal
  capacity may be compensated for their time from the OCaml Software
  Foundation.

  The team currently consists of 7 members
  • Hannes Mehnert <https://github.com/hannesm> - individual, chair
  • Mindy <https://github.com/yomimono> - individual
  • Joe <https://github.com/cfcs> - individual
  • Edwin Török <https://github.com/edwintorok> - individual
  • Nicolás Ojeda Bär <https://github.com/nojb> - LexiFi
  • Louis Roché <https://github.com/khady> - ahrefs
  • Maxim Grankin <https://github.com/maxim092001> - Bloomberg

  We're in the process to formalise the responsibilities of the team,
  our proposed disclosure process, and how to join & leave the team.


Funding for security actions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  In complement to the security disclosure process, we will accept
  funding requests for projects that make OCaml more secure (including
  guidelines how to develop OCaml in a secure way/what are common
  pitfalls; static analysis; dissemination tools; …). The OCaml Software
  Foundation will provide funding for these security actions. After this
  summer we will discuss this in more depth with the community.


Next steps
╌╌╌╌╌╌╌╌╌╌

  We will setup a website (similar to
  <https://www.haskell.org/security/> has) soon, and provide an email
  address for contacting us - security At ocamlDoT org is forwarding to
  our team. We plan to setup a mailing list for security announcements.

  But more on that at a later point, this brief post is mainly about the
  fact that this team starts to exist now, and is working on improving
  the security story of OCaml.

  If you have any questions for now, please feel free to discuss them in
  this announcement. Please be aware that it is vacation time soon, so
  we may not be very responsive.


Hannes Mehnert later added
──────────────────────────

  Dear everyone,

  we’ve accomplished several tasks:

  • <https://ocaml.org/security> is now live
  • The public mailing list for security advisories is
    sympa.inria.fr/sympa/info/ocsf-ocaml-security-announcements – please
    subscribe if you’d like to receive security announcements
  • There’ll be a brief introduction at [Fun OCaml] and a talk at [OCaml
    workshop (ICFP)] )16:00 - 16:30
  • We will have a public meeting for discussions on Oct 22nd 14:00 -
    16:00 CEST (online, yet to be announced where)
  • There’s already the OCaml security advisory database
    <https://github.com/ocaml/security-advisories> (still empty, we’ll
    fill it over the next weeks)


[Fun OCaml] <https://fun-ocaml.org>

[OCaml workshop (ICFP)]
<https://conf.researchr.org/details/icfp-splash-2025/ocaml-2025-papers/9/Toward-a-More-Secure-OCaml-Ecosystem>


Hannes Mehnert then said
────────────────────────

        We will have a public meeting for discussions on Oct 22nd
        14:00 - 16:00 CEST (online, yet to be announced where) –
        save the date if you’re interested

  We settled on a platform, and will have the meeting at
  <https://meet.bornhack.dk/OCamlSecurityPublicMeeting>

  An agenda will be posted before the meeting.


ocaml-xmlerr 0.08.2 available
═════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ocaml-xmlerr-0-08-2-available/17313/1>


Florent Monnier announced
─────────────────────────

  This is an annouce for ocaml-xmlerr.

  *ocaml-xmlerr* version *0.08.2* is *available*.

  This main module of this package is a small module to read xml with
  errors.

  The main purpose was not to really read xml with errors, but to read
  html from the web.

  At the beginning I wrote in the read-me file that I wrote it in one
  afternoon, but this is without considering that in fact it was the
  third time I was trying to make something like this.

  One of the first attempt even probably took me almost a day. So we can
  not say that I succeed easily.

  In the .zip archive of ocaml-xmlerr version 0.08.2, you will find the
  different modules re-organized with dirs.

  And there are also two additional commands build on top of the first
  module.

  *htmlxtr* is a simple extractor for HTML from a simple template.
  Please read the man page for more description about how to use it:
  ┌────
  │ $ man ./htmlxtr.1
  └────
  There is also *htmluxtr* - a simple extractor for .html using a simple
  un-template / re-template method.  Please read the man page for more
  informations :
  ┌────
  │ $ man ./htmluxtr.1
  └────
  There is a new example of use provided in the 'using' directory.

  There is a script to help you writing your pattern matching of xml
  fragments.  The base module providing a list for tags and contents,
  the pattern matching is not done based on a tree-structure.

  And there is now an additional module to convert this flat-list
  structure into a tree structure, inside the addon directory. The
  report module has not been widely tested yet.

  This is not professional quality.

  If I'm not mistaken "amateur" is both pejorative, in both french and
  in english languages, exept if it's associated with "astronomer".

  [http://decapode314.free.fr/ocaml/xmlerr/]

  PS: if you edit my posts, I would prefer you edit the links with
  normal links (like above), please.

  PS-2 : I haven't been able to pattern-match all the opam packages with
  uxtr, the total doesn't match, I only find 38_000.


[http://decapode314.free.fr/ocaml/xmlerr/]
<http://decapode314.free.fr/ocaml/xmlerr/index4.html>


Contract OCaml Engineer – Terrateam (Remote, 3 months)
══════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/contract-ocaml-engineer-terrateam-remote-3-months/17314/1>


Josh Pollara announced
──────────────────────

  Terrateam (<https://terrateam.io>) is looking for an experienced OCaml
  engineer to join us on a 3-month contract.

  *About us* Terrateam is an open-source tool for GitOps-based Terraform
  automation. We are a small, bootstrapped team building infrastructure
  automation software used by enterprises.

  *The role* We are extending our OCaml codebase to support new
  functionality around Terraform state and plan execution. The work is
  primarily in OCaml, with a focus on systems programming, concurrency,
  and backend development. You’ll work directly with the founding team
  on scoped engineering projects and help push forward the internals of
  how Terraform can be used at scale.

  *Details*

  • Contract length: 3 months (with potential extension)
  • Compensation: competitive, commensurate with experience
  • Location: remote (EU timezone preferred)
  • Start date: as soon as possible

  *Requirements*

  • Strong background in OCaml development
  • Experience with systems programming or infrastructure tooling
    (Terraform or related) is a plus
  • Ability to work independently in a fast-moving environment

  If you are interested, please contact me directly at
  [josh@terrateam.io].


[josh@terrateam.io] <mailto:josh@terrateam.io>


Mk-man module
═════════════

  Archive: <https://discuss.ocaml.org/t/ann-mk-man-module/17319/1>


Florent Monnier announced
─────────────────────────

  Mk-man tries to provide a simple way to write a man page,
  [http://decapode314.free.fr/ocaml2/mk_man/] and also with a similare
  module to produce the web page.


[http://decapode314.free.fr/ocaml2/mk_man/]
<http://decapode314.free.fr/ocaml2/mk_man/>


gil scm .cmd
════════════

  Archive: <https://discuss.ocaml.org/t/ann-gil-scm-cmd/17320/1>


Florent Monnier announced
─────────────────────────

  Gil-scm is not really an scm, (source management control),
  [http://decapode314.free.fr/ocaml2/gil/] it takes its inspiration from
  an scm, but it should more be considerated as a
  "snapshot-management-script".  It can output an .html interface of the
  following versions: [example]


[http://decapode314.free.fr/ocaml2/gil/]
<http://decapode314.free.fr/ocaml2/gil/index2.html>

[example] <http://decapode314.free.fr/ocaml2/gil/02/versions.html>


mini-svg version 0.03.13b, of 0.03.13
═════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-mini-svg-version-0-03-13b-of-0-03-13/17322/1>


Florent Monnier announced
─────────────────────────

  The release "0.03.13" has been deleted, because chat-gpt informed me
  that the repository replicating some mondrian art hosted at github has
  been deleted. The rel-0.03.13 was also containing some pop-art
  replications, with random additions.

  So these elements have been deleted, and are not there in "0.03.13b"
  anymore.

  Sorry for the inconveniance.

  PS: [mini-svg]

  PS2: mini-svg is not professional quality.

  PS3: To the extent permitted by law, you can use mini-svg with any
  spdx license.


[mini-svg] <http://decapode314.free.fr/ocaml/mini-svg3/>


An efficient priority queue with low integer priorities
═══════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-an-efficient-priority-queue-with-low-integer-priorities/17323/1>


François Pottier announced
──────────────────────────

  Hello,

  I am happy to announce the release of `intPQueue', a package that
  offers (two variants of) an efficient priority queue, which is
  restricted to scenarios where the priorities are low integers. See the
  [documentation].

  ┌────
  │ opam update && opam install intPQueue
  └────

  Happy queueing, François.


[documentation]
<https://cambium.inria.fr/~fpottier/intPQueue/doc/intPQueue/>


Cmdliner 2.0.0
══════════════

  Archive: <https://discuss.ocaml.org/t/ann-cmdliner-2-0-0/17324/1>


Daniel Bünzli announced
───────────────────────

  Hello,

  It is my pleasure to announce the release of cmdliner 2.0.0.

        Cmdliner is a library that allows the declarative
        definition of command line interfaces with outstanding
        support for command line interface user conventions and
        standards.

  The main points of this release are:

  • ANSI styled error and deprecation messages ([details])
  • Support for manpage installation ([details])
  • Support for shell auto-completion ([details])

  The latter was made possible by good initial [ground work] of
  @andreypopp who can now claim to have unblocked my mind and the [very
  first] and 11 years old Cmdliner issue. Many thanks to him!

  This addition has the following consequences:

  1. The problematic feature that allowed you to specify command names,
     option names and enumerant values by a prefix if the prefix was
     unambiguous has now been removed. See [this issue] for the
     rationale. Set `CMDLINER_LEGACY_PREFIXES=true' in your environment
     if you find yourself in need of a quick backward compatibility fix
     because one of your scripts is failing due to a prefix being used
     (but do eventually correct the script!).

  2. It finally triggered making the type `Arg.conv' abstract as
     [announced] it would become in 2017. See [this issue] for details.

  If you are a user of cmdliner based tools. You may want to have at a
  look how to [configure your shell] in order to benefit from their
  completion scripts, especially if said tools are installed via
  `opam'. After installing `cmdliner' you should be able to check that
  your configuration works correctly on the new `cmdliner' tool that now
  gets installed with cmdliner itself.

  For other changes that may affect you or your users please head to the
  [release notes] which have many other details.

  Other than that a full pass was made over the documentation to try to
  improve and bring it up-to-date with the latest style and
  additions. Notably the [tutorial] and [examples] were updated to make
  use of the binding operators; however obscure [let punning] may feel,
  these are less error prone as your number of cli arguments grow.

  I also added a [cookbook] which tries to distill in shorter snippets
  some of cmdliner's features and the experience I gathered over the
  past 14 years of using cmdliner to define dozens of command line
  interfaces. It includes [source code structure tips] and a few
  bootstrapping [blueprints] to cut and paste for when you start your
  next command line tool.

  For this release I'm very thankful to a private one-time donation[^1],
  a grant from the [OCaml software foundation] and, as always, my few
  but faithfull [donors]. All of which are essential for these releases
  to eventually get out. They do take quite a bit longer to devise that
  one would expect :–)

  Home page: <https://erratique.ch/software/cmdliner>

  API docs & manuals: <https://erratique.ch/software/cmdliner/doc/> or
  `odig doc cmdliner'

  Install: `opam install cmdliner' (once [the PR] is merged, may take a
  few days)

  Best,

  Daniel

  [^1]: Which are as nice as recurring donations ;–)


[details]
<https://erratique.ch/software/cmdliner/doc/cli.html#error_message_styling>

[details]
<https://erratique.ch/software/cmdliner/doc/cli.html#install_tool_manpages>

[details]
<https://erratique.ch/software/cmdliner/doc/cli.html#cli_completion>

[ground work] <https://github.com/dbuenzli/cmdliner/pull/187>

[very first] <https://github.com/dbuenzli/cmdliner/issues/1>

[this issue] <https://github.com/dbuenzli/cmdliner/issues/200>

[announced]
<https://github.com/dbuenzli/cmdliner/blob/master/CHANGES.md#v100-2017-03-02-la-forclaz-vs>

[this issue] <https://github.com/dbuenzli/cmdliner/issues/206 >

[configure your shell]
<https://erratique.ch/software/cmdliner/doc/cli.html#user_configuration>

[release notes]
<https://github.com/dbuenzli/cmdliner/blob/master/CHANGES.md#v200-2025-09-26-zagreb>

[tutorial] <https://erratique.ch/software/cmdliner/doc/tutorial.html>

[examples] <https://erratique.ch/software/cmdliner/doc/examples.html>

[let punning]
<https://ocaml.org/manual/5.2/bindingops.html#ss%3Aletops-punning>

[cookbook] <https://erratique.ch/software/cmdliner/doc/cookbook.html>

[source code structure tips]
<https://erratique.ch/software/cmdliner/doc/cookbook.html#tip_src_structure>

[blueprints]
<https://erratique.ch/software/cmdliner/doc/cookbook.html#blueprints>

[OCaml software foundation] <https://ocaml-sf.org/>

[donors] <https://github.com/sponsors/dbuenzli>

[the PR] <https://github.com/ocaml/opam-repository/pull/28599>


Daniel Bünzli later added
─────────────────────────

  To follow up on the completion feature. It should be stressed that I
  don't consider it to be fully "done" as it stands. I'm pretty sure the
  completion API, protocol, features and the generic completion scripts
  can be improved. The main problem is that it seems shell programmers
  are more interested in cajoling the look of their prompts than
  defining sane cross-shell standard protocols for tool/shell
  interaction. The current completion mecanisms are [broken] beyond
  imagination.

  Issues about completion are tagged accordingly in the issue
  tracker. Do not hesitate to chime in if you have ideas or more
  knowledge than I do for improvements. I'm also happy to add support
  for more shells but it's better if you help for that because working
  with shells makes me want to throw my computer out of the window.

  Meanwhile I'd like to show two completion feature that I'm quite happy
  to have support for in this release.


[broken] <https://github.com/dbuenzli/cmdliner/issues/220>

Context sensitive completion
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The idea here, suggested by @andreypopp, is that completion can depend
  on a context that is specified via a cmdliner term itself. This is
  typically useful for configuration dependent completions: you have a
  cmdliner term that represents your configuration and you access it
  when doing a completion.

  For example in the next release of `odig' you can autocomplete package
  names on `odig doc [PKG]'. The available packages depend on looking up
  a libdir which can be specified with a command line argument
  itself. So for example this completes according to the automatic
  libdir lookup

  ┌────
  │ # Auto discovered libdir
  │ > odig doc c␉
  │ camlp-streams   checkseum  cmarkit  camlpdf  cairo2  
  │ containers      cmdliner   cpuid    cppo     cpdf    
  │ cstruct-lwt     cstruct    ctypes   crunch   csexp   
  │ ctypes-foreign      
  └────

  But the following looks for packages in another switch:

  ┌────
  │ # Explicit libdir
  │ > odig doc c␉ --lib-dir $(opam var lib --switch=myswitch) 
  │ capitalization  cerberus-lib  calendar  charon        
  │ core_kernel     core_unix     cmdliner  cppo    core  
  │ cstruct         csexp  
  └────

  [The commit] that implements this in `odig' is rather straightforward,
  it simply reuses the existing `conf' term for the completion
  context. Also the cookbook has a [simple self-contained example] to
  start from.


[The commit]
<https://github.com/b0-system/odig/commit/e713f0c62c31f7009cb9d0d580094980fe93b1e6>

[simple self-contained example]
<https://erratique.ch/software/cmdliner/doc/cookbook.html#args_completion>


Compositional completion (restart and raw)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The second completion feature is to retain completion on the tools
  that another tool invokes – commands like `sudo'.

  For example in the `b0' tool, the build system I'm using for all my
  developments. The `b0 vcs [OPTION]… -- VCS [ARG]…' command allows to
  bulk operate the VCSs of the projects you included in a `B0.ml' build
  description file.

  Using appopriate cmdliner completion directives the completion of this
  command first completes the `VCS' enum (which can be `git' or `hg')
  and then gracefully drops back to the completion of your VCS:

  ┌────
  │ > b0 vcs -- ␉
  │ git  hg  --
  │ > b0 vcs -- git sh␉
  │ shell       -- restricted login shell for GIT-only SSH access
  │ shortlog    -- summarize git log output
  │ show        -- show various types of objects
  │ show-branch -- show branches and their commits
  │ show-index  -- show packed archive index
  │ show-ref    -- list references in a local repository
  └────

  This is a [restart] completion type. It restarts the completion
  context as if the cli started after the `--' token.

  It is the kind of behaviour you want from e.g. `opam exec', though
  arguably in the case of `opam exec' it will be sligthly misleading
  since completions will occur using the outer environment rather than
  the one setup by `opam exec -- TOOL [ARG]…'.  Still, sometimes
  inaccurate completion is better than no completion.

  Note that this would be quite easy to solve with a good cross-shell
  completion standard: just invoke `TOOL' in the environment setup by
  `opam exec' according to the completion standard (e.g. the [cmdliner
  completion protocol]) and propagate the result back in the completion
  for `opam exec', but we do not live in that world. Still the API is
  ready for such a technique to be used, by using a [raw] completion
  type (I [use this] in `b0' to complete custom, library and
  user-defined, actions like `b0 -- .opam' or `b0 -- .ocaml').


[restart]
<https://erratique.ch/software/cmdliner/doc/Cmdliner/Arg/Completion/index.html#val-restart>

[cmdliner completion protocol]
<https://erratique.ch/software/cmdliner/doc/cli.html#completion_protocol>

[raw]
<https://erratique.ch/software/cmdliner/doc/Cmdliner/Arg/Completion/index.html#val-raw>

[use this]
<https://github.com/b0-system/b0/blob/9c9810ad158a83ccfbbf37a7e65b11a3a3e8a922/src/tool/b0_cmd_build.ml#L355-L384>


Detrow, a command-line calendar
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-detrow-a-command-line-calendar/17328/1>


Florent Monnier announced
─────────────────────────

  [Detrow] is a command-line calendar which displays the months of a
  calendar in colomns.

  (So each days of months are aligned in rows)

  (With [Detris], months are displayed in a similar way than the cal
  unix command.)

  You can download it with the following command:
  ┌────
  │ wget http://decapode314.free.fr/ocaml2/detrow/dl/0.01b/detrow.ml
  └────
  Then you can call it like this:
  ┌────
  │ $ \ocaml detrow.ml
  └────
  It will display the first half of the month, Januray until June.

  If you want the second half of the year, Jully until December, you can
  call it again with:
  ┌────
  │ $ \ocaml detrow.ml b
  └────
  The first half, can also be called with the "a" parameter:
  ┌────
  │ $ \ocaml detrow.ml a
  └────
  If you call it like this:
  ┌────
  │ $ \ocaml detrow.ml ann-file 2025 b
  └────
  With the file called "ann-file" containing:
  ┌────
  │ $ cat ann-file
  │ 2025-09-27: detrow-ann
  └────
  You will see the string `"detrow-ann"` displayed in the calendar in
  front of the day `"2025-09-27"`.  (The number of chars that can be
  displayed is lower than 8 (`< 8').)


[Detrow] <http://decapode314.free.fr/ocaml2/detrow/>

[Detris] <http://decapode314.free.fr/ocaml/detris.html>


rpmfile 0.8.0+ library
══════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-rpmfile-0-8-0-library/17330/1>


Mikhail announced
─────────────────

  Hello,

  I am pleased to announce the next /major/ version of [my library for
  reading RPM packages], powered by [Angstrom].

  ┌────
  │ # #require "rpmfile";;
  │ 
  │ # let pkg = 
  │     In_channel.with_open_bin 
  │       "hello-2.12.2-2.fc43.x86_64.rpm" 
  │       Rpmfile.Reader.of_channel
  │     |> Result.get_ok;;
  │ 
  │ # Rpmfile.View.name pkg;;
  │ - : string = "hello"
  │ 
  │ # Rpmfile.View.vendor pkg;;
  │ - : string = "Fedora Project"
  │ 
  │ # Rpmfile.View.version pkg;;
  │ - : string = "2.12.2"
  └────

  This release has *broken the previous API* and made it simpler and
  more compact.

  Added capture of the payload of the RPM package body. But it is not
  effective enough.

  ┌────
  │ # pkg.payload;;
  │ - : string option = None
  └────

  You can implement this functionality manually using [Lwt] and
  angstrom-lwt-unix or something else.

  ┌────
  │ (* examples/extract_payload_by_lwt.ml *)
  │ 
  │ let default_tags_selector =
  │   Rpmfile.Reader.
  │     {
  │       predicate_signature_tag = Fun.const true;
  │       predicate_header_tag = Fun.const true;
  │     }
  │ 
  │ let pkg_parser =
  │   Rpmfile.Reader.make_package_parser ~capture_payload:false
  │     ~tags_selector:default_tags_selector
  │ 
  │ let () =
  │   let open Lwt.Syntax in
  │   Lwt_main.run
  │   @@
  │   let* ic = Lwt_io.open_file ~mode:Input "hello.rpm" in
  │   let* _pkg =
  │     let* b, r = Angstrom_lwt_unix.parse pkg_parser ic in
  │     let+ _ = Lwt_io.set_position ic (Int64.of_int b.off) in
  │     Result.get_ok r
  │   in
  │   let* payload = Lwt_io.read ic in
  │ 
  │   (* ... *)
  └────

  … :pie:


[my library for reading RPM packages]
<https://github.com/dx3mod/rpmfile>

[Angstrom] <https://github.com/inhabitedtype/angstrom>

[Lwt] <https://ocaml.org/p/lwt/latest>


OCaml compiler office hours? (preparation thread)
═════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-compiler-office-hours-preparation-thread/17230/8>


Continuing this thread, gasche announced
────────────────────────────────────────

  Given the current votes, I propose to pick

  *Friday October 10th* UTC 11:00 – UTC 12:30*

  as the time slot for this test run of OCaml compiler office
  hours. Save the date!

  I propose to try [This online meeting room] (this is a BigBlueButton
  instance hosted by the French government for public workers), and take
  notes on [this collaborative pad].

  I am planning to join audio-only to save bandwidth, but people are
  free to do as they prefer.

  A reminder on the format, topic:

        Format: a synchronous remote meeting (voice with optional
        video), backed by a collaborative pad to record questions,
        take notes, share links etc. People can join and leave at
        any time during the office hours.

        Topic: anything related to the development of the OCaml
        compiler, that is, the github/ocaml/ocaml project. (All
        topics and questions are welcome, at all levels of
        knowledge and familiarity with the compiler.)


[This online meeting room]
<https://webinaire.numerique.gouv.fr/meeting/signin/invite/64288/creator/23503/hash/4ad3529af76e35eae42dfa410afc68ff4f24d9af>

[this collaborative pad]
<https://codimd.math.cnrs.fr/nuew1gMsROCAy_klt_TkJg#>


Other OCaml News
════════════════

>From the ocaml.org blog
───────────────────────

  Here are links from many OCaml blogs aggregated at [the ocaml.org
  blog].

  • [A second foray into agentic coding]
  • [Model Validation & Time Utilities Sprint: From Basic Models to
    Proper Validation Layer]
  • [Parsimoni Joins Techstars' Autumn 2025 Programme!]
  • [Retrofitting a build system into a compiler]
  • [Caching opam solutions - part 2]
  • [Upcoming OCaml Events]


[the ocaml.org blog] <https://ocaml.org/blog/>

[A second foray into agentic coding]
<https://www.dra27.uk/blog/platform/2025/09/28/effectful-bug-hunting.html>

[Model Validation & Time Utilities Sprint: From Basic Models to Proper
Validation Layer]
<https://fearful-odds.rocks/blog/model-mapping-and-validation-in-ocaml>

[Parsimoni Joins Techstars' Autumn 2025 Programme!]
<https://tarides.com/blog/2025-09-25-parsimoni-joins-techstars-autumn-2025-programme>

[Retrofitting a build system into a compiler]
<https://www.dra27.uk/blog/platform/2025/09/25/building-with-effects.html>

[Caching opam solutions - part 2]
<https://jon.recoil.org/blog/2025/09/caching-opam-solutions2.html>

[Upcoming OCaml Events] <https://ocaml.org/events>


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 #2: Type: text/html, Size: 46929 bytes --]

             reply	other threads:[~2025-09-30 13:12 UTC|newest]

Thread overview: 261+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-30 13:12 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-10-07 12:22 Alan Schmitt
2025-09-23 13:23 Alan Schmitt
2025-09-16 11:52 Alan Schmitt
2025-09-09 12:30 Alan Schmitt
2025-09-02 12:23 Alan Schmitt
2025-08-26 12:34 Alan Schmitt
2025-08-19 12:20 Alan Schmitt
2025-08-12 15:32 Alan Schmitt
2025-08-05  8:17 Alan Schmitt
2025-07-29  9:36 Alan Schmitt
2025-07-22 12:07 Alan Schmitt
2025-07-15 17:14 Alan Schmitt
2025-07-08 12:45 Alan Schmitt
2025-07-01 11:16 Alan Schmitt
2025-06-24 14:02 Alan Schmitt
2025-06-17  6:44 Alan Schmitt
2025-06-10 13:36 Alan Schmitt
2025-06-03  9:19 Alan Schmitt
2025-05-27  9:22 Alan Schmitt
2025-05-20 11:52 Alan Schmitt
2025-05-13  9:40 Alan Schmitt
2025-05-06  7:24 Alan Schmitt
2025-04-29  8:39 Alan Schmitt
2025-04-22 11:50 Alan Schmitt
2025-04-15  9:51 Alan Schmitt
2025-04-08 13:14 Alan Schmitt
2025-04-01  9:12 Alan Schmitt
2025-03-25  8:06 Alan Schmitt
2025-03-18 10:18 Alan Schmitt
2025-03-11 15:00 Alan Schmitt
2025-03-04 14:01 Alan Schmitt
2025-02-25 10:36 Alan Schmitt
2025-02-18 14:33 Alan Schmitt
2025-02-11  7:17 Alan Schmitt
2025-02-04 12:05 Alan Schmitt
2025-01-28 13:24 Alan Schmitt
2025-01-21 15:47 Alan Schmitt
2025-01-14  8:20 Alan Schmitt
2025-01-07 17:26 Alan Schmitt
2024-12-31  8:03 Alan Schmitt
2024-12-24  8:55 Alan Schmitt
2024-12-17 13:05 Alan Schmitt
2024-12-10 13:48 Alan Schmitt
2024-12-03 14:44 Alan Schmitt
2024-11-26  8:30 Alan Schmitt
2024-11-19  6:52 Alan Schmitt
2024-11-12 15:00 Alan Schmitt
2024-11-05 13:22 Alan Schmitt
2024-10-29 13:30 Alan Schmitt
2024-10-22 12:42 Alan Schmitt
2024-10-15 13:31 Alan Schmitt
2024-10-08 10:56 Alan Schmitt
2024-10-01 13:37 Alan Schmitt
2024-09-24 13:18 Alan Schmitt
2024-09-17 14:02 Alan Schmitt
2024-09-10 13:55 Alan Schmitt
2024-09-03  8:24 Alan Schmitt
2024-08-27  9:02 Alan Schmitt
2024-08-20  9:29 Alan Schmitt
2024-08-13 13:21 Alan Schmitt
2024-08-06  9:00 Alan Schmitt
2024-07-30 13:26 Alan Schmitt
2024-07-23 13:30 Alan Schmitt
2024-07-16  6:24 Alan Schmitt
2024-07-09  9:19 Alan Schmitt
2024-07-02  7:30 Alan Schmitt
2024-06-25 13:58 Alan Schmitt
2024-06-18 13:05 Alan Schmitt
2024-06-11 15:04 Alan Schmitt
2024-06-04 13:26 Alan Schmitt
2024-05-28  9:07 Alan Schmitt
2024-05-21 13:07 Alan Schmitt
2024-05-14 13:25 Alan Schmitt
2024-05-07  7:30 Alan Schmitt
2024-04-30  7:22 Alan Schmitt
2024-04-23 12:17 Alan Schmitt
2024-04-16 12:00 Alan Schmitt
2024-04-09  9:15 Alan Schmitt
2024-04-02 14:31 Alan Schmitt
2024-03-26  6:32 Alan Schmitt
2024-03-19 15:09 Alan Schmitt
2024-03-12 10:31 Alan Schmitt
2024-03-05 14:50 Alan Schmitt
2024-02-27 13:53 Alan Schmitt
2024-02-20  9:12 Alan Schmitt
2024-02-13  8:42 Alan Schmitt
2024-02-06 15:14 Alan Schmitt
2024-01-30 14:16 Alan Schmitt
2024-01-23  9:45 Alan Schmitt
2024-01-16 10:01 Alan Schmitt
2024-01-09 13:40 Alan Schmitt
2024-01-02  8:59 Alan Schmitt
2023-12-26 10:12 Alan Schmitt
2023-12-19 10:10 Alan Schmitt
2023-12-12 10:20 Alan Schmitt
2023-12-05 10:13 Alan Schmitt
2023-11-28  9:09 Alan Schmitt
2023-11-21  7:47 Alan Schmitt
2023-11-14 13:42 Alan Schmitt
2023-11-07 10:31 Alan Schmitt
2023-10-31 10:43 Alan Schmitt
2023-10-24  9:17 Alan Schmitt
2023-10-17  7:46 Alan Schmitt
2023-10-10  7:48 Alan Schmitt
2023-10-03 13:00 Alan Schmitt
2023-09-19  8:54 Alan Schmitt
2023-09-12 13:21 Alan Schmitt
2023-09-05  9:00 Alan Schmitt
2023-08-29 13:04 Alan Schmitt
2023-08-22  9:20 Alan Schmitt
2023-08-15 16:33 Alan Schmitt
2023-08-08  8:53 Alan Schmitt
2023-08-01  7:13 Alan Schmitt
2023-07-25  8:45 Alan Schmitt
2023-07-11  8:45 Alan Schmitt
2023-07-04  9:18 Alan Schmitt
2023-06-27  8:38 Alan Schmitt
2023-06-20  9:52 Alan Schmitt
2023-06-13  7:09 Alan Schmitt
2023-06-06 14:22 Alan Schmitt
2023-05-30 15:43 Alan Schmitt
2023-05-23  9:41 Alan Schmitt
2023-05-16 13:05 Alan Schmitt
2023-05-09 11:49 Alan Schmitt
2023-05-02  8:01 Alan Schmitt
2023-04-25  9:25 Alan Schmitt
2023-04-18  8:50 Alan Schmitt
2023-04-11 12:41 Alan Schmitt
2023-04-04  8:45 Alan Schmitt
2023-03-28  7:21 Alan Schmitt
2023-03-21 10:07 Alan Schmitt
2023-03-14  9:52 Alan Schmitt
2023-03-07  9:02 Alan Schmitt
2023-02-28 14:38 Alan Schmitt
2023-02-21 10:19 Alan Schmitt
2023-02-14  8:12 Alan Schmitt
2023-02-07  8:16 Alan Schmitt
2023-01-31  6:44 Alan Schmitt
2023-01-24  8:57 Alan Schmitt
2023-01-17  8:37 Alan Schmitt
2022-11-29 14:53 Alan Schmitt
2022-09-27  7:17 Alan Schmitt
2022-09-20 14:01 Alan Schmitt
2022-09-13  8:40 Alan Schmitt
2022-08-23  8:06 Alan Schmitt
2022-08-16  8:51 Alan Schmitt
2022-08-09  8:02 Alan Schmitt
2022-08-02  9:51 Alan Schmitt
2022-07-26 17:54 Alan Schmitt
2022-07-19  8:58 Alan Schmitt
2022-07-12  7:59 Alan Schmitt
2022-07-05  7:42 Alan Schmitt
2022-06-28  7:37 Alan Schmitt
2022-06-21  8:06 Alan Schmitt
2022-06-14  9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24  8:04 Alan Schmitt
2022-05-17  7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03  9:11 Alan Schmitt
2022-04-26  6:44 Alan Schmitt
2022-04-19  5:34 Alan Schmitt
2022-04-12  8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29  7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15  9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-25 12:44 Alan Schmitt
2022-01-11  8:20 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2021-12-28  8:59 Alan Schmitt
2021-12-21  9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-09-21  9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22  9:04 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04  8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23  9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29  9:59 Alan Schmitt
2020-12-22  8:48 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-01  8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27  8:43 Alan Schmitt
2020-10-20  8:15 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-08-18  7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14  9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-09  8:28 Alan Schmitt
2020-05-19  9:52 Alan Schmitt
2020-05-12  7:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-03-31  9:54 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-09-03  7:35 Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2a52caxue.fsf@mac-03220211.irisa.fr \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox