[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