[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Jun 27 01:38:12 PDT 2023


Hello

Here is the latest OCaml Weekly News, for the week of June 20 to 27,
2023.

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

dune 3.8.0
moonpool 0.2
aeroon, wrapper to Aeron
Representing OCaml on Lemmy
awa-ssh release 0.3
Ppxlib dev meetings
User-friendly continuations over OCaml 5 effects?
Raising the minimum tested version of OCaml to 4.05 or 4.11 (from 4.02)
guroobi, wrapper to Gurobi
euler, an arithmetic library for native integers
CFP - JFLA 2024 - Journées Francophones des Langages Applicatifs
OCaml.org Newsletter: May 2023
Other OCaml News
Old CWN


dune 3.8.0
══════════

  Archive: <https://discuss.ocaml.org/t/ann-dune-3-8-0/12291/2>


Etienne Millon announced
────────────────────────

  3.8.2 is now available, please find the changelog below (with that of
  3.8.1).


3.8.2 (2023-06-16)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • Switch back to threaded console for all systems; fix unresponsive
    console on Windows (#7906, @nojb)

  • Respect `-p' / `--only-packages' for `melange.emit' artifacts
    (#7849, @anmonteiro)

  • Fix scanning of Coq installed files (@ejgallego, reported by
    @palmskog, #7895 , fixes #7893)

  • Fix RPC buffer corruption issues due to multi threading. This issue
    was only reproducible with large RPC payloads (#7418)

  • Fix printing errors from excerpts whenever character offsets span
    multiple lines (#7950, fixes #7905, @rgrinberg)


3.8.1 (2023-06-05)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • Fix a crash when using a version of Coq < 8.13 due to the native
    compiler config variable being missing. We now explicitly default to
    `(mode vo)' for these older versions of Coq. (#7847, fixes #7846,
    @Alizter)

  • Duplicate installed Coq theories are now allowed with the first
    appearing in COQPATH being preferred. This is inline with Coq’s
    loadpath semantics. This fixes an issue with install layouts based
    on COQPATH such as those found in nixpkgs. (#7790, @Alizter)

  • Revert #7415 and #7450 (Resolve `ppx_runtime_libraries' in the
    target context when cross compiling) (#7887, fixes #7875, @emillon)


moonpool 0.2
════════════

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


Simon Cruanes announced
───────────────────────

  Moonpool 0.2 just hit the shelves, fleshing out the feature list for
  futures and pools. Alongside a handful of bugfixes and performance
  improvements.[^1] The changelog can be found [here].

  [^1]: notable, using multiple queues with some basic version of
  work-stealing to reduce contention under load. The queues are still
  using `Mutex.t' for now, but with `try_lock' there should be no actual
  syscall, just atomic operations.

  Sneak peek at the next version: plans include support for `Fut.await'
  using effects (only on OCaml 5), and interoperability with other
  libraries using `domain-local-await'.


[here] <https://github.com/c-cube/moonpool/releases/tag/v0.2>


aeroon, wrapper to Aeron
════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-aeroon-wrapper-to-aeron/12448/1>


Mika Illouz announced
─────────────────────

  I’d like to announce the availability of [aeroon], an OCaml wrapper to
  the [Aeron] C library. Typically used in financial systems with
  low-latency requirements, Aeron is a multi-transport communication
  toolset, with support for C, C++, Java, and now OCaml.

  Feedback welcome!


[aeroon] <https://github.com/onechronos/aeroon>

[Aeron] <https://github.com/real-logic/aeron>


Representing OCaml on Lemmy
═══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/representing-ocaml-on-lemmy/12451/1>


Andreas Poisel announced
────────────────────────

  Some days ago I created a “community” for OCaml on [Tchncs] (a Lemmy
  instance): [c/ocaml].

  I’m looking forward to seeing your links or comments.


[Tchncs] <https://discuss.tchncs.de/>

[c/ocaml] <https://discuss.tchncs.de/c/ocaml>


awa-ssh release 0.3
═══════════════════

  Archive: <https://discuss.ocaml.org/t/ann-awa-ssh-release-0-3/12454/1>


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

  I’m pleased to announce the release 0.3.0 of [awa-ssh]. This is a pure
  implementation of the SSH protocol in OCaml. It started out as a
  server implementation by @haesbaert, and was then further developed by
  @hannes (client), Pierre Alain (sshfs), @reynir, @dinosaure

  These days, it is both a server and a client implementation, and is
  used in [ocaml-git] to fetch git repositories from ssh remotes.

  The initial release is a few years back (see
  <https://discuss.ocaml.org/t/ann-first-release-of-awa-ssh/7057>), the
  code is even older ;)

  The highlights since the initial release include:
  • support RSA-SHA2 signature algorithms (October 2021)
  • support ED25519 (October 2021)
  • SSH server subsystem in MirageOS (January 2022)
  • ECDSA support of NIST curves (March 2023)
  • client: password authentication (previously, only key authentication
    was supported) (March 2023)
  • add Pty/Set_env/Start_shell events (March 2023)
  • server: handle unknown public keys (June 2023)
  • server: fix rekey (leading to out of memory) (June 2023)
  • server: window change events (June 2023)
  • server: implement ext-info and server-sig-algs extensions (June
    2023)

  One example application is a chat system with trust on first use
  [banawa-chat], as described in [this article] – join us for discussion
  at `ssh [-i path/to/key_ed25519] myusername at chat.reyn.ir'.

  The password authentication allows awa to be used for network
  infrastructure monitoring and management (which usually do not support
  key-based authentication).

  There’s also a work-in-progress IRC client as MirageOS unikernel
  [catty], which uses [lwd] for user interaction.

  There’s also a [sshfs unikernel].


[awa-ssh] <https://github.com/mirage/awa-ssh>

[ocaml-git] <https://github.com/mirage/ocaml-git>

[banawa-chat] <https://github.com/reynir/banawa-chat/>

[this article] <https://reyn.ir/posts/2023-05-17-banawa-chat.html>

[catty] <https://github.com/roburio/catty>

[lwd] <https://github.com/let-def/lwd>

[sshfs unikernel] <https://github.com/palainp/mirage-sshfs/>


Ppxlib dev meetings
═══════════════════

  Archive: <https://discuss.ocaml.org/t/ppxlib-dev-meetings/12441/3>


Continuing this thread, Sonja Heinze announced
──────────────────────────────────────────────

  As a follow-up: It has been @panglesd, @Burnley and me in the meeting
  today. So nobody “from outside” has joined. Still, we think it’s good
  that the decision not to participate is taken by each community
  member, not by us. So we’ll keep the meetings open. You can [add the
  monthly event to your Google calendar], and we will try to send a
  notification here on discuss each month.

  And here are today’s meeting notes:
  <https://github.com/ocaml-ppx/ppxlib/wiki/Dev-meeting-22-06-2023>


[add the monthly event to your Google calendar]
<https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=Y2gyYmZpcWt0cWI2dGgzNGFqczhxZWhyZHBfMjAyMzA2MjBUMTYwMDAwWiBjXzlhMWJiOWVlYmQzNjM5YTJkYjgyNjhjMzZhMjZkZjViMmQ4N2VmY2JhZjM5YTJjMGEyZDE0YzlhY2JkMTJlNmZAZw&tmsrc=c_9a1bb9eebd3639a2db8268c36a26df5b2d87efcbaf39a2c0a2d14c9acbd12e6f%40group.calendar.google.com&scp=ALL>


User-friendly continuations over OCaml 5 effects?
═════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/user-friendly-continuations-over-ocaml-5-effects/12407/12>


KC Sivaramakrishnan announced
─────────────────────────────

  The package is now on opam

  <https://opam.ocaml.org/packages/delimcc_of_fxhandler/>


Raising the minimum tested version of OCaml to 4.05 or 4.11 (from 4.02)
═══════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/raising-the-minimum-tested-version-of-ocaml-to-4-05-or-4-11-from-4-02/12464/1>


Anil Madhavapeddy asked
───────────────────────

  In the opam repository, we have been testing submitted packages on all
  versions of OCaml from 4.02.3 onwards, all the way up to 5.2-trunk. We
  need to come up a way to reduce this testing matrix, and in particular
  determine if there are a non-zero number of users who need these
  historical releases tested. There are thousands of potentially
  unnecessary builds running at the moment if these results are not
  needed.

  The latest release of OCaml 4.02 was in 2014, and I am now proposing
  to increase the “floor” tested release of OCaml to 4.05, which is the
  version distributed in Debian 10 “buster”. This is a conservative
  choice, since Debian 10 “buster” is already at its [end of life], with
  the long-term support coming to an end in mid-2024.

  If we move onto Debian 11 “bookworm”, this packages up OCaml 4.11,
  which can become the next “floor” target for supported OCaml versions
  in 2024.

  So my question to the community is: *are any of you still using OCaml
  releases earlier than 4.11?* If so, which version, and what
  configurations/platforms are of most interest to you?


[end of life] <https://wiki.debian.org/DebianReleases>


After many replies, Anil Madhavapeddy said
──────────────────────────────────────────

  Thanks everyone; sounds like 4.11 is too much of a leap, but 4.08 is a
  reasonable choice.

  *If anyone is using an OCaml version between 4.05 and 4.08, please do
  chirp up in the next few weeks.* Otherwise, we’re converging on OCaml
  4.08 being the new minimum version tested.

  For those curious about the versions of OCaml shipped in distros other
  than Ubuntu and Debian, there’s a [mapping in OCaml-Dockerfile].


[mapping in OCaml-Dockerfile]
<https://github.com/avsm/ocaml-dockerfile/blob/master/src-opam/distro.ml#L771-L851>


guroobi, wrapper to Gurobi
══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-guroobi-wrapper-to-gurobi/12481/1>


Mika Illouz announced
─────────────────────

  I’d like to announce the availability of [guroobi], an OCaml wrapper
  to the (commercial) [Gurobi] optimization library.

  Feedback welcome!


[guroobi] <https://github.com/onechronos/guroobi>

[Gurobi] <https://www.gurobi.com>


euler, an arithmetic library for native integers
════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-euler-an-arithmetic-library-for-native-integers/12482/1>


glen announced
──────────────

  In case anyone is interested, I let you know of `euler', a small
  arithmetic library of mine. Unfortunately it is not published on opam
  (but there is an opam file), and I won’t be working on it anymore, so
  anyone is welcome to take over the project or just steal code from it.
  If you see fun in it, I left plenty of TODOs! :-)

  The library is documented, with a focus on algorithmic complexities,
  and implementation code has a lot of comments too.

  • [repo]: <https://gitlab.crans.org/mevel/euler-lib>
  • [doc]: <https://perso.crans.org/mevel/odoc/euler/Euler/>


What’s in it?
╌╌╌╌╌╌╌╌╌╌╌╌╌

  `euler' is a library for doing integer arithmetic with OCaml’s
  standard integers (31 or 63 bits). It provides:

  • Drop-in, *overflow-detecting* base arithmetic: if you are paranoid
    about vicious bugs sneaking in silently, this library detects
    overflows and signal them by throwing an exception; the module can
    be used as a drop-in replacement for the standard library (beware
    that `Euler.Arith.min_int' differs from `Stdlib.min_int', the latter
    being a forbidden value). There are also a few additional functions
    such as integer logarithms and square roots.
  • More *advanced arithmetic*: for the weird folks (like myself) who
    are interested in advanced arithmetic but do not care about integers
    larger than 2<sup>62</sup>, and thus do not want the burden of using
    an arbitrary-precision library (zarith of GMP), there you are. The
    library provides some classic functions such as
    ⁃ the GCD,
    ⁃ the Jacobi symbol,
    ⁃ primality testing (fast *and* deterministic for all 63-bit
      integers!),
    ⁃ integer factorization (implementing Lenstra’s elliptic curve
      factorization, which was apparently one of the best known
      algorithms back when I wrote that code, but obviously it is still
      very slow! — and I must say I understand very little about it…),
    ⁃ a prime sieve (heavily optimized) and a factorization sieve,
    ⁃ Euler’s totient function (slow too, of course),
    ⁃ and so on.
  • Solvers for some forms of *integer equations* (so-called
    “Diophantine equations”):
    ⁃ linear congruence systems (the Chinese remainder theorem),
    ⁃ Pell-Fermat’s equations (the Chakravala method) — preliminary code
      that just needs some packaging effort).
  • *Modular arithmetic*: including finding modular inverses (and
    pseudo-inverses). A nice functorial interface provides convenient
    notations and uses a private type to enforce that values are always
    normalized in the range 0..*m*−1 where *m* is the modulus. Example
    use:
    ┌────
    │     module M = Euler.Modular.Make (struct let modulo = 42 end)
    │     let () = assert (M.( !:1 /: (!:33 +: !:4) = !:5 **:(-4) ))
    │     (* said otherwise, modulo 42, the inverse of (33 + 4) is equal to 5^(−4) *)
    └────


But why?
╌╌╌╌╌╌╌╌

  Writing this library was fun and educative for me, and allowed me to
  solidify my math training in code. In fact, as the name suggests, the
  initial incentive was playing with Project Euler (hence the focus on
  integers that fit in a machine word) while sparing me the boredom of
  implementing a prime sieve for the hundredth time.

  Nevertheless, I believe `euler' might prove actually useful outside of
  the playground. Overflow detection is an actual need in some software,
  and implementing it is not trivial, even less so after some amount of
  micro-optimization (see code). Modular arithmetic is not trivial
  either (e.g. multiplication is not as simple as `(a * b) mod m'
  because this computation might overflow). And well, even integer
  logarithms and square roots are handy at times, and again they not
  trivial to implement (as using their floating-point counterpart gives
  incorrect results for large integers).

  project-euler: <https://projecteuler.net/>


CFP - JFLA 2024 - Journées Francophones des Langages Applicatifs
════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/cfp-jfla-2024-journees-francophones-des-langages-applicatifs/12483/1>


adrgt announced
───────────────

  /This message is intentionally written in French. It is a call for
  papers for the “Francophone Days on Functional Languages” to be held
  at the end of January 2024 in Brittany. Papers can be written in
  English, but the presentations themselves are expected to be given in
  French./

  /Merci de faire circuler : premier appel à communications/


JFLA 2024 : Journées Francophones des Langages Applicatifs
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  <http://jfla.inria.fr/jfla2024.html>

  30 janvier au 2 février 2024

  Abbaye de Saint-Jacut, Saint-Jacut-de-la-Mer

  Les 35es Journées Francophones des Langages Applicatifs (JFLA) se
  tiendront en Bretagne, à Saint-Jacut-de-la-Mer (Côtes-d’Armor), du
  mardi 30 janvier 2024 au vendredi 2 février 2024.

  Les JFLA réunissent concepteurs, utilisateurs et théoriciens ; elles
  ont pour ambition de couvrir les domaines des langages applicatifs, de
  la preuve formelle, de la vérification de programmes, et des objets
  mathématiques qui sous-tendent ces outils. Ces domaines doivent être
  pris au sens large : nous souhaitons promouvoir les ponts entre les
  différentes thématiques.

  • Langages fonctionnels et applicatifs : sémantique, compilation,
    optimisation, typage, mesures, extensions à d’autres paradigmes.
  • Assistants de preuve : implémentation, nouvelles tactiques,
    développements présentant un intérêt théorique, technique ou
    méthodologique.
  • Logique, correspondance de Curry-Howard, réalisabilité, extraction
    de programmes, modèles.
  • Spécification, prototypage, développements formels d’algorithmes.
  • Vérification de programmes ou de modèles, vérification déductive,
    interprétation abstraite, raffinement.
  • Utilisation industrielle des langages fonctionnels et applicatifs,
    ou des méthodes issues de la communauté scientifique. Outils et
    plateformes pour le web.
  • Problématiques d’enseignement, de formation, ou de diffusion des
    langages fonctionnels et applicatifs. Environnements et
    méthodologies de développement, retours d’expérience.

  Les articles soumis aux JFLA sont relus par au moins deux personnes
  s’ils sont acceptés, et au moins trois personnes s’ils sont rejetés.
  Les critiques des relecteurs sont toujours bienveillantes et la
  plupart du temps encourageantes et constructives, même en cas de
  rejet.

  Il n’y a donc pas de raison de ne pas soumettre aux JFLA !


Dates importantes
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Attention : les dates limites sont fermes et définitives. Il n’y aura
   pas d’extension.*

  • /Soumission des résumés et articles/ : 19 octobre 2023, AoE
  • /Notification aux auteurs/ : 1er décembre 2023, AoE
  • /Version finale des articles/ : 18 décembre 2023, AoE


Soumissions
╌╌╌╌╌╌╌╌╌╌╌

  Nous acceptons quatre types de soumissions :

  • Article de recherche (18 pages max.) portant sur des travaux
    originaux. Nous acceptons des travaux en cours, pour lesquels
    l’aspect recherche n’est pas entièrement finalisé. Nous encourageons
    aussi la soumission d’articles présentant avec élégance un résultat
    connu sous un angle nouveau.
  • Article court (9 pages max.) décrivant un problème particulier, les
    pistes en cours d’investigation, et visant à rechercher de l’aide de
    la part de la communauté. Les articles courts peuvent également
    présenter de manière synthétique et cohérente un ou plusieurs
    résultats déjà publié(s).
  • Tutoriel (3 pages max.) exposant clairement les objectifs et
    l’intérêt de la présentation, ainsi que l’environnement informatique
    nécessaire à sa réalisation.
  • Démonstration de logiciel (3 pages max.) décrivant l’intérêt du
    logiciel, qu’il soit prototypique ou abouti, ainsi que ses
    spécificités.


Consignes aux auteurs
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Les articles peuvent être rédigés en français ou en anglais.

  La forme de l’article doit être soignée, et le contenu rédigé de
  manière structurée et claire.

  Le style LaTeX jflart doit impérativement être utilisé sans
  modification de la mise en page. Le style LaTeX et sa documentation
  sont disponibles depuis le site web de la conférence.

  Les limites de pages sont strictes. Les références bibliographiques ne
  sont pas comptabilisées dans la limite de pages. Les annexes aux
  articles ne sont pas autorisées.

  Les auteurs peuvent soumettre du matériel supplémentaire, séparé de
  l’article soumis, sous forme de texte (version longue, sans limite de
  pages) et/ou de développement logiciel. L’évaluation de ce matériel
  supplémentaire est à la discrétion des relecteurs. Les articles soumis
  doivent donc être auto-contenus et évaluables sans ce matériel
  supplémentaire.

  Les soumissions parallèles dans d’autres conférences, journaux ou
  workshops avec actes ne sont pas autorisées.

  Les membres du comité de programme sont autorisés à soumettre un
  article. Les présidents du comité ne le sont pas.

  Les articles doivent être soumis via [HotCRP].

  L’évaluation des articles suit un processus en simple-aveugle : les
  relecteurs des articles sont anonymes, mais pas les auteurs.

  Les articles acceptés seront publiés dans les actes de la conférence,
  sur HAL (portail institutionnel Inria), et les auteurs en donneront
  une présentation lors des journées. Les présentations seront, de
  préférence, données en français.

  Delphine Demange et Adrien Guatto, JFLA 2024


[HotCRP] <https://jfla2024.hotcrp.com>


OCaml.org Newsletter: May 2023
══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-org-newsletter-may-2023/12485/1>


Thibaut Mattio announced
────────────────────────

  Welcome to the May 2023 edition of the OCaml.org newsletter! As with
  the [previous update], this has been compiled by @sabine and @tmattio.

  The OCaml.org newsletter provides an overview of changes on the
  OCaml.org website and gives you a glimpse into what has been going on
  behind the scenes. You can find a [list of previous issues here].

  Our goal is to make OCaml.org the best resource for anyone who wants
  to get started and be productive in OCaml. We couldn’t do it without
  all the amazing OCaml community members who help us review, revise,
  and create better OCaml documentation. Your feedback enables us to
  better prioritise our work and make progress towards our goal. Thank
  you!

  We present the work we’ve been doing this month in three sections:
  • *Learn area:* We’re working towards making OCaml.org a great
     resource to learn OCaml and discover its ecosystem. This month, we
     worked on the first wireframes of the new Learn section, and we
     published a couple of new documentation pages.
  • *Package documentation search:* In-package search is now available
     for every package on OCaml.org! We released the first, minimal
     version of the feature and will continue to improve it in the
     coming months.
  • *General Improvements:* We also worked on general maintenance and
     improvements. We’ll highlight some of them in this newsletter.


[previous update] <https://ocaml.org/news/ocamlorg-2023-04>

[list of previous issues here]
<https://discuss.ocaml.org/tag/ocamlorg-newsletter>

Learn Area
╌╌╌╌╌╌╌╌╌╌

◊ 1. Redesign of the Learn Area

  As part of our effort to make OCaml.org a great resource to learn
  OCaml, we published a survey to conduct user research in April. We
  received tons of insightful feedback. This month, we analysed all the
  results we got (57 answers!) and we conducted user interviews with
  those who volunteered to be interviewed.

  As a follow-up to the user survey conducted last month, we posted a
  [summary for the Learn area survey].

  After we analysed the interview data, created user insight cards, and
  went through all the resources recommended by the survey responses, we
  prioritised tasks and began creating wireframes for the Learn section.
  The work-in-progress wireframes are accessible on [Figma].

  In June, we’ll start gathering user feedback on the wireframes and
  eventually start creating designs for the new Learn pages.


  [summary for the Learn area survey]
  <https://discuss.ocaml.org/t/you-started-to-learn-ocaml-less-than-12-months-ago-please-help-us-with-our-user-survey-on-the-ocaml-org-learning-area/11945/2>

  [Figma]
  <https://www.figma.com/file/Aqk5y03fsaCuhTSywmmY06/OCaml.org-Public-Designs?type=design&node-id=114-175&mode=design>


◊ 2. OCaml Documentation

  We completed the [Sequences] and [Error Handling] tutorials. The
  [Install page] went live, and improvements were made to the [First Day
  tutorial].

  Asking the community to help review the initial versions of the new
  documentation page has been successful, so we’re planning on opening
  more Discuss posts for pages that are ready to review in the coming
  months.

  We’re deeply grateful to all the contributors who helped review the
  documentation, either by sharing insights on Discuss or participating
  in the PR review on GitHub. This is exactly how we envisioned the
  effort on creating the new OCaml.org Documentation, so we’re
  appreciative of everyone who engaged to make this a community
  initiative!

  *Relevant PRs and Activities:*
  • Reached out for community feedback on the new *Error Handling*
    documentation page
    <https://discuss.ocaml.org/t/updating-the-error-handling-tutorial/12022>
  • *First Hour* improvement [ocaml/ocaml.org#1153]
  • Line editing for *Functors* [ocaml/ocaml.org#1127]
  • Rewrite *Functional Programming* doc introduction
    [ocaml/ocaml.org#971]
  • Import rewritten Set tutorial from V2 PR [ocaml/ocaml.org#948]
  • Documentation: *Sequences* [ocaml/ocaml.org#791]
  • Add a dedicated ’install’ page [ocaml/ocaml.org#1038]
  • Editing/testing *If Statements* [ocaml/ocaml.org#974]
  • Update *Labels* [ocaml/ocaml.org#1040]
  • Remove `ppa/avsm' package from install instruction
    [ocaml/ocaml.org#1186]
  • By External Contributors:
    • Typo in *Up-and-Running* [ocaml/ocaml.org#1162]
    • Fix a couple grammar bugs [ocaml/ocaml.org#1188]
    • Updated text to remove references to highlighted code that was not
      highlighted. [ocaml/ocaml.org#1213]
    • Fix `Sys.getenv_opt' type signature in tutorial
      [ocaml/ocaml.org#1228]
    • Update *Metaprogramming* [ocaml/ocaml.org#1232]


  [Sequences] <https://ocaml.org/docs/sequences>

  [Error Handling] <https://ocaml.org/docs/error-handling>

  [Install page] <https://ocaml.org/install>

  [First Day tutorial] <https://ocaml.org/docs/first-hour>

  [ocaml/ocaml.org#1153] <https://github.com/ocaml/ocaml.org/pull/1153>

  [ocaml/ocaml.org#1127] <https://github.com/ocaml/ocaml.org/pull/1127>

  [ocaml/ocaml.org#971] <https://github.com/ocaml/ocaml.org/pull/971>

  [ocaml/ocaml.org#948] <https://github.com/ocaml/ocaml.org/pull/948>

  [ocaml/ocaml.org#791] <https://github.com/ocaml/ocaml.org/pull/791>

  [ocaml/ocaml.org#1038] <https://github.com/ocaml/ocaml.org/pull/1038>

  [ocaml/ocaml.org#974] <https://github.com/ocaml/ocaml.org/pull/974>

  [ocaml/ocaml.org#1040] <https://github.com/ocaml/ocaml.org/pull/1040>

  [ocaml/ocaml.org#1186] <https://github.com/ocaml/ocaml.org/pull/1186>

  [ocaml/ocaml.org#1162] <https://github.com/ocaml/ocaml.org/pull/1162>

  [ocaml/ocaml.org#1188] <https://github.com/ocaml/ocaml.org/pull/1188>

  [ocaml/ocaml.org#1213] <https://github.com/ocaml/ocaml.org/pull/1213>

  [ocaml/ocaml.org#1228] <https://github.com/ocaml/ocaml.org/pull/1228>

  [ocaml/ocaml.org#1232] <https://github.com/ocaml/ocaml.org/pull/1232>


In-Package Documentation Search
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  In April, we started working on building an in-package search feature
  for OCaml packages on OCaml.org. We continued this effort through May,
  and we released the feature at the end of the month. In-package search
  is now accessible for every package on OCaml.org! :tada:

  Note that this is the first, minimal version of the feature. We’re
  planning many improvements in the coming months, especially as the
  `odoc' team is currently working on adding search capabilities to
  `odoc'.

  *Relevant PRs and Activities:*
  • Fix incomplete search index [ocaml-doc/voodoo#59]
  • Integrate experimental in-browser search [ocaml/ocaml.org#1165]
  • Get community feedback for the minimal prototype of in-package
    search [on Discuss]


[ocaml-doc/voodoo#59]
<https://github.com/ocaml-doc/voodoo/pull/59#pullrequestreview-1408753903>

[ocaml/ocaml.org#1165] <https://github.com/ocaml/ocaml.org/pull/1165>

[on Discuss]
<https://discuss.ocaml.org/t/a-minimal-prototype-of-in-package-search-is-on-staging-ocaml-org/12163/1>


General Improvements
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  We approved and merged numerous changes, including serving OCaml.org’s
  static assets under cache-busting URLs, refactorings for better code
  health, and scraping OCaml Planet feeds individually. A big thank you
  to the contributors!

  We initiated work on a design system for OCaml.org, emphasising
  buttons, dropdowns, and typography. As part of this work, we invested
  time researching potential improvements to our CSS, including a
  potential migration from Tailwind to UnoCSS for better custom rules
  support. We opened an issue with UnoCSS to explore options for a
  standalone CLI and have begun to create Dream components for UI
  elements that occur repeatedly.

  We began working on adding tags to facilitate blog search and added
  several RSS feeds from the old OCaml Planet to the OCaml blog. As a
  consequence, we had to address issues relating to these new RSS
  sources.

  *Relevant PRs and Activities:*
  • Bugfixes:
    • Close `form' tag in changelog.eml [ocaml/ocaml.org#1155]
    • Install page: only distinguish between Windows and everything
      else; fix wrong default selection [ocaml/ocaml.org#1191]
  • Data:
    • Bump Ahrefs job, as it’s still relevant [ocaml/ocaml.org#1168]
  • By External Contributors:
    • Use `OCamlorg_static.Media.url' for media [ocaml/ocaml.org#1163]
    • Add O(1) labs in Industrial User page [ocaml/ocaml.org#1180]
  • OCaml Planet:
    • Add Signal and Threads as an RSS source [ocaml/ocaml.org#1197]
    • Fix RSS sources filename [ocaml/ocaml.org#1198]
    • Create RSS feed `planet' folder, if missing [ocaml/ocaml.org#1200]
    • Add Archives of OCaml Weekly News to `/blog'
      [ocaml/ocaml.org#1201]
    • Fix scraping path management [ocaml/ocaml.org#1204]
    • Add Caml Weekly News RSS feed [ocaml/ocaml.org#1207]
    • Add Signal and Threads RSS feed [ocaml/ocaml.org#1209]
    • Add emelle.tv RSS feed [ocaml/ocaml.org#1217]
    • Add ocaml.org hand-picked RSS feed [ocaml/ocaml.org#1218]
  • Other:
    • Serve dashboard assets from file system [ocaml/ocaml.org#1167]


[ocaml/ocaml.org#1155] <https://github.com/ocaml/ocaml.org/pull/1155>

[ocaml/ocaml.org#1191] <https://github.com/ocaml/ocaml.org/pull/1191>

[ocaml/ocaml.org#1168] <https://github.com/ocaml/ocaml.org/pull/1168>

[ocaml/ocaml.org#1163]
<https://github.com/ocaml/ocaml.org/pull/1163#pullrequestreview-1427954152>

[ocaml/ocaml.org#1180]
<https://github.com/ocaml/ocaml.org/pull/1180#pullrequestreview-1427841365>

[ocaml/ocaml.org#1197] <https://github.com/ocaml/ocaml.org/pull/1197>

[ocaml/ocaml.org#1198] <https://github.com/ocaml/ocaml.org/pull/1198>

[ocaml/ocaml.org#1200] <https://github.com/ocaml/ocaml.org/pull/1200>

[ocaml/ocaml.org#1201] <https://github.com/ocaml/ocaml.org/pull/1201>

[ocaml/ocaml.org#1204] <https://github.com/ocaml/ocaml.org/pull/1204>

[ocaml/ocaml.org#1207] <https://github.com/ocaml/ocaml.org/pull/1207>

[ocaml/ocaml.org#1209] <https://github.com/ocaml/ocaml.org/pull/1209>

[ocaml/ocaml.org#1217] <https://github.com/ocaml/ocaml.org/pull/1217>

[ocaml/ocaml.org#1218] <https://github.com/ocaml/ocaml.org/pull/1218>

[ocaml/ocaml.org#1167] <https://github.com/ocaml/ocaml.org/pull/1167>


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

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

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

  • [Oxidizing OCaml: Rust-Style Ownership]
  • [Florian’s OCaml compiler weekly, 20 June 2023]
  • [OCaml Receives the ACM SIGPLAN Programming Languages Software
    Award]


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

[Oxidizing OCaml: Rust-Style Ownership]
<https://blog.janestreet.com/oxidizing-ocaml-ownership/>

[Florian’s OCaml compiler weekly, 20 June 2023]
<http://cambium.inria.fr/blog/florian-compiler-weekly-2023-06-20>

[OCaml Receives the ACM SIGPLAN Programming Languages Software Award]
<https://tarides.com/blog/2023-06-20-ocaml-receives-the-acm-programming-languages-software-award>


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].

  [Alan Schmitt]


[send me a message] <mailto:alan.schmitt at polytechnique.org>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>

[Alan Schmitt] <https://alan.petitepomme.net/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20230627/18258551/attachment-0001.html>


More information about the caml-news-weekly mailing list