caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, "cwn"  <cwn@lists.idyll.org>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 21 Jun 2022 10:06:34 +0200	[thread overview]
Message-ID: <87v8suwid1.fsf@m4x.org> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of June 14 to 21,
2022.

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

OBazl Toolsuite - tools for building OCaml with Bazel
Job offer: 3 years compiler engineer at the French tax authority
OCaml 5.0, zeroth alpha release
Tezt, a framework for all your tests
OCaml Stdlib, Containers, Batteries, Base and F# core functions comparisons
Dune 3.3.0
Old CWN


OBazl Toolsuite - tools for building OCaml with Bazel
═════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/obazl-toolsuite-tools-for-building-ocaml-with-bazel/10021/1>


Gregg Reynolds announced
────────────────────────

  Version 2 of OBazl, a Bazel ruleset for building OCaml code, will soon
  be available.  I'm letting you know early because I'll be giving a
  presentation about the OBazl Toolsuite for the [Bazel Exchange]
  conference next Wed, 22 June, at 3:00 pm UDT (10:00 am CDT). It's a
  virtual conference so you can tune in from anywhere.  The talk will
  focus on some of the quirks of the OCaml build discipline and how I
  addressed them for the OBazl ruleset.

  The tools are usable now, they're just not yet properly documented and
  packaged, and in a few places there's a little more work to be done on
  the code. Nonetheless there is quite a bit of documentation (CAVEAT:
  some of it is outdated), with more on the way soon, and there are lots
  of demos available.  So if you're interested in using Bazel to build
  your OCaml code I welcome you to take a look:

  [The OBazl Book]

  Twitter handle is @obazldev Discord: [https://discord.gg/PHSAW5DUva]


[Bazel Exchange]
<https://skillsmatter.com/conferences/13682-bazel-exchange>

[The OBazl Book] <https://obazl.github.io/docs_obazl/>

[https://discord.gg/PHSAW5DUva] <https://discord.gg/PHSAW5DUva>


Gregg Reynolds lated added
──────────────────────────

  PS.  The conference organizers have provided this discount token:
  BAZEL-GR-20

  It should be good for 20% off, registration is at
  [https://events.skillsmatter.com/bazelx2022]


[https://events.skillsmatter.com/bazelx2022]
<https://events.skillsmatter.com/bazelx2022>


Job offer: 3 years compiler engineer at the French tax authority
════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/job-offer-3-years-compiler-engineer-at-the-french-tax-authority/10023/1>


Denis Merigoux announced
────────────────────────

  [En français parce que c'est une offre d'emploi dans l'administration]

  Bonjour à toutes et à tous,

  Vous aimez la programmation fonctionnelle et les compilateurs ? Vous
  en avez marre des offres d'emploi dans la blockchain ? Ça tombe bien,
  j'ai ce qu'il vous faut !

  Il y a deux ans, j'ai lancé un grand projet de modernisation du calcul
  informatique de calcul de l'impôt sur le revenu à la Direction
  Générale des Finances Publiques (DGFiP), en partenariat avec Inria:
  <https://www.inria.fr/fr/mlang-modernisation-calcul-impot-revenu>.

  Le logiciel au cœur de ce projet de modernisation est Mlang, un
  compilateur écrit en OCaml pour un couple de langages dédiés utilisés
  par la DGFiP pour encoder le calcul de l'impôt sur le revenu. Depuis
  deux ans, la DGFiP travaille à intégrer Mlang à l'infrastructure
  officielle de calcul de l'impôt sur le revenu pour remplacer des
  systèmes vieillissants. C'est donc un projet à très fort impact (80M€
  par d'impôts par an), et proche de la R&D (OCaml, libre, innovation) !
  Depuis un an, la DGFiP emploie la société OCamlPro sur le projet mais
  souhaite maintenant ré-internaliser ses compétences pour garder la
  souveraineté numérique sur son infrastructure de calcul.

  C'est là que cette offre d'emploi entre en jeu ! En effet la DGFiP
  vient d'ouvrir un poste en CDD de 3 ans pour un.e expert.e en
  compilation ! Les détails :

  • Bureaux à Noisy-le-Grand (+ jusqu'à 3 jours télétravail/semaine)
  • Salaire: À négocier selon expérience mais similaire à "Inspecteur
    des finances publiques". Selon le site du ministère de l'économie ça
    débuterait à 3k€ net/mois.
  • Tâches: Maintenance, évolution de Mlang et travaux annexes

  Et pour l'heureux.se recruté.e, la cerise sur le gâteau sera de
  pouvoir collaborer avec moi et l'équipe Prosecco d'Inria (ainsi que
  Raphaël Monat, ) :) Attention cependant : il faudra s'attendre à
  devoir également aider l'équipe de la DGFiP sur d'autres chantiers en
  fonction des priorités. De même, l'objectif est de partager la
  compétence en compilation au sein de la DGFiP, donc les profils
  évangélisateurs de la programmation fonctionnelle sont les bienvenus !

  Pour référence, voici l'offre officielle complète:
  <https://merigoux.ovh/assets/OffreDGFiP.pdf>. S'il vous plaît, pas
  d'autocensure à cause de ce qui est marqué dans ce PDF! Si vous avez
  un doute contactez-moi par retour de mail.

  Deadline pour les candidatures: 9 juillet. Prise de poste inconnue,
  sûrement aux alentours du 1er septembre mais j'imagine que c'est
  négociable.


Denis Merigoux later added
──────────────────────────

  Si vous êtes intéressé.e, envoyez votre CV et lettre de motivation à
  bureau.si-part-rh@dgfip.finances.gouv.fr et
  bureau.rh-mobilite-carriere-a-recrutementchoix@dgfip.finances.gouv.fr.


OCaml 5.0, zeroth alpha release
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-5-0-zeroth-alpha-release/10026/1>


octachron announced
───────────────────

  Five months after the initial merge of the multicore branch into the
  mainline OCaml and three months after the release of OCaml 4.14.0,
  OCaml 5.0.0 is starting to take shape.

  I am thus happy to announce an exceptional zeroth alpha release of
  OCaml 5.0.0 (see below for the installation instructions).

  This alpha release is expected to be rougher than an usual alpha
  release, due to the full rewrite of the OCaml runtime. In particular,
  the bytecode debugger will only be available in the next alpha
  release. Similarly, there will be some changes to the internal C
  runtime API and to the files installed by the compiler package in the
  next alpha release.

  Moreover, this zeroth alpha release is the occasion to remind everyone
  that OCaml 5.0 itself is expected to be a more experimental release
  than usual. Notably, the native compiler will only be available on the
  ARM64 and x86-64 architectures in this 5.0 release.

  Nevertheless, this zeroth alpha version is already stable enough for
  fellow hackers eager to join us in our early bug hunting and opam
  ecosystem fixing fun, or to venture in the new era of parallelism and
  (experimental) effects.

  You can follow the progresses in stabilising the opam ecosystem on

  <https://github.com/ocaml/opam-repository/issues/21526>

  A brief summary is that at least dune, merlin, ppxlib, utop,
  ocamlfind, and ocamlbuild work (potentially by using patches from the
  alpha opam repository).

  If you find any bugs, please report them here:

  <https://github.com/ocaml/ocaml/issues>

  In particular, any sequential OCaml 4 library or program should be
  valid in OCaml 5 (except for deprecated modules and functions). Please
  don't hesitate to report any compatibility bugs!

  If you are interested by the ongoing list of bug fixes, the updated
  change log for OCaml 5.0.0 is available at:

  <https://github.com/ocaml/ocaml/blob/5.0/Changes>


Installation instructions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
  The base compiler can be installed as an opam switch with the
  following commands on opam 2.1:
  ┌────
  │ opam update
  │ opam switch create 5.0.0~alpha0
  └────
  For previous version of opam, the switch creation command line is
  slightly more verbose:
  ┌────
  │ opam update
  │ opam switch create 5.0.0~alpha0 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
  └────
  If you want to tweak the configuration of the compiler, you can switch
  to the option variant with:
  ┌────
  │ opam update
  │ opam switch create <switch_name> ocaml-variants.5.0.0~alpha0+options <option_list>
  └────
  where `<option_list>' is a comma separated list of `ocaml-option-*'
  packages. For instance, for a flambda and no-flat-float-array switch:
  ┌────
  │ opam switch create 5.0.0~alpha0+flambda+nffa ocaml-variants.5.0.0~alpha0+options ocaml-option-flambda
  │ ocaml-option-no-flat-float-array
  └────
  The command line above is slightly more complicated for an opam
  version anterior to opam 2.1:
  ┌────
  │ opam update
  │ opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha0+options,<option_list>
  │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
  └────
  In both cases, all available options can be listed with `opam search
  ocaml-option'.

  If you want to test this version, it is strongly advised to install
  the alpha opam repository

  <https://github.com/kit-ty-kate/opam-alpha-repository>

  with
  ┌────
  │ opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git
  └────
  This alpha repository contains various fixes in the process of being
  upstreamed.

  The source code for the alpha is also available at these addresses:

  • <https://github.com/ocaml/ocaml/archive/5.0.0-alpha0.tar.gz>
  • <https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha0.tar.gz>


Daniel Bünzli asked and octachron replied
─────────────────────────────────────────

        Does this mean we get [global warming] again ?

  Indeed! I should have mentioned that point! The normal development
  process can restart on the compiler development branch.

  I will also try to slowly go through the backlog of frozen PRs once
  the alpha releases settle down.


[global warming]
<https://discuss.ocaml.org/t/the-road-to-ocaml-5-0/8584#the-sequential-glaciation-3>


Tezt, a framework for all your tests
════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-tezt-a-framework-for-all-your-tests/10038/1>


rbardou announced
─────────────────

  Tezt (pronounced [/tɛzti/]) is a test framework for OCaml that has
  been developed and used at Nomadic Labs to test [Octez], an OCaml
  implementation of the Tezos blockchain. It has become quite mature and
  we feel it would benefit the OCaml community at large, so we are
  releasing it publicly as a standalone product.

  Tezt is well-suited for unit tests, integration tests, and regression
  tests in particular. It was designed with a focus on user experience,
  with colourful logs, various ways to select the tests to run from the
  command-line, and more. It integrates well into CI pipelines. And it
  cleans up after itself, deleting temporary files and killing external
  processes. Unless you tell it not to, of course.

  For a more in-depth tour of Tezt, see [our latest blog post entry].

  Tezt is available on opam:
  ┌────
  │ opam install tezt
  └────
  Have a look at the [API documentation] and the [source code].


[/tɛzti/] <http://ipa-reader.xyz/?text=t%C9%9Bzti>

[Octez]
<https://research-development.nomadic-labs.com/announcing-octez.html>

[our latest blog post entry]
<https://research-development.nomadic-labs.com/announcing-tezt.html>

[API documentation]
<https://tezos.gitlab.io/api/odoc/_html/tezt/Tezt/index.html>

[source code] <https://gitlab.com/tezos/tezos/-/tree/master/tezt/lib>


OCaml Stdlib, Containers, Batteries, Base and F# core functions comparisons
═══════════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-stdlib-containers-batteries-base-and-f-core-functions-comparisons/10041/1>


Jp R announced
──────────────

  <https://github.com/Fourchaux/OCaml-Stdlib_Containers_Batteries_Base-and-FSharp--core-functions-comparisons>

  Comparisons (names/signatures) of the core functions used in:

  • OCaml Stdlib (v4.41.0)
  • Containers (v3.8)
  • Batteries (v3.5.1)
  • Base (v0.15.0)
  • F# (v6.0) as a bonus

  Note: F# provides an Array.Parallel module with some functions
   (choose, collect, init, iter, iteri, map, mapi, partition) which
   could be good candidates for OCaml 5.0.0…


Dune 3.3.0
══════════

  Archive: <https://discuss.ocaml.org/t/ann-dune-3-3-0/10048/1>


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

  On behalf of the dune team, I’m pleased to announce the release of
  version 3.3.0. This is the first version that supports the upcoming
  OCaml 5.0. It also improves safety by sandboxing more rules and
  enabling more warnings, and there's a bunch of new features on the coq
  side too. Full changelog follows.

  Note that as usual, dune works hard not to break existing packages. So
  even if it mentions that rules require precise dependencies, for
  example, this new safety net is only enabled for project that use
  `(lang dune 3.3)'.

  Happy hacking.


3.3.0 (17-06-2022)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • Sandbox preprocessing, lint, and dialect rules by default. All these
    rules now require precise dependency specifications (#5807,
    @rgrinberg)

  • Allow list expansion in the `pps' specification for preprocessing
    (#5820, @Firobe)

  • Add warnings 67-69 to dune's default set of warnings. These are
    warnings of the form "unused X.." (#5844, @rgrinberg)

  • Introduce project "composition" for coq theories. Coq theories in
    separate projects can now refer to each other when in the same
    workspace (#5784, @Alizter, @rgrinberg)

  • Fix hint message for `data_only_dirs' that wrongly mentions the
    unknown constructor `data_only' (#5803, @lambdaxdotx)

  • Fix creating sandbox directory trees by getting rid of buggy
    memoization (#5794, @rgrinberg, @snowleopard)

  • Handle directory dependencies in sandboxed rules. Previously, the
    parents of these directory dependencies weren't created. (#5754,
    @rgrinberg)

  • Set the exit code to 130 when dune is terminated with a signal
    (#5769, fixes #5757)

  • Support new locations of unix, str, dynlink in OCaml >= 5.0 (#5582,
    @dra27)

  • The `coq.theory' stanza now produces rules for running
    `coqdoc'. Given a theory named `mytheory', the directory targets
    `mytheory.html/' and `mytheory.tex/' or additionally the aliases
    `@doc' and `@doc-latex' will build the HTML and LaTeX documentation
    repsectively. (#5695, fixes #3760, @Alizter)

  • Coq theories marked as `(boot)' cannot depend on other theories
    (#5867, @ejgallego)

  • Ignore `bigarray' in `(libraries)' with OCaml >= 5.0. (#5526, fixes
    #5494, @moyodiallo)

  • Start with :standard when building the ctypes generated foreign
    stubs so that we include important compiler flags, such as -fPIC
    (#5816, fixes #5809).


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@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/>


[-- Attachment #2: Type: text/html, Size: 28465 bytes --]

             reply	other threads:[~2022-06-21  8:07 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-21  8:06 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
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-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=87v8suwid1.fsf@m4x.org \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=cwn@lists.idyll.org \
    --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;
as well as URLs for NNTP newsgroup(s).