caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alan Schmitt <>
To: "lwn" <>, "cwn"  <>,
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 21 Sep 2021 11:09:48 +0200	[thread overview]
Message-ID: <> (raw)

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


Here is the latest OCaml Weekly News, for the week of September 14 to
21, 2021.

Table of Contents

opam-grep: search through the sources of all the packages in opam-repository
Hardcaml MIPS CPU Learning Project and Blog
Puzzling through some GADT errors
Parany for multicore OCaml
OCaml 4.13.0, second release candidate
Unicode 14.0.0 update for Uucd, Uucp, Uunf and Uuseg
Set up OCaml 2.0.0-beta4
Become an Outreachy Mentor: support the growth and diversity of the OCaml community
The OCaml 4.13 preview for Merlin is now available

opam-grep: search through the sources of all the packages in opam-repository


Kate announced

  I've just released opam-grep.0.2.0 with quite a bit of change compared
  to the previous version. Here is the highlight:
  • Complete rewrite from shell script to OCaml, making it more portable
  • Use the faster `ripgrep' and `ugrep' over `grep' when available
    (suggestion by @Engil)
  • Use the `progress' library to show progress instead of a
    non-portable/DIY spinner

  See the [changelog] for the full list of relevant changes.

  *Big thanks to @CraigFe for the `progress' library (such a treat!) and
  to @dbuenzli for `bos' and `cmdliner' in particular, making it easy to
  do such rewrite* :relaxed:


Hardcaml MIPS CPU Learning Project and Blog


Alexander (Sasha) Skvortsov announced

  Hi everyone! We are excited to announce that we have completed this
  project and blog. Progress has been slow these past few months due to
  work, internships, and college, but we’ve now released [v1.0.0 on
  GitHub]. We also published posts on:

  • [Design patterns, conventions, and testing]
  • [How the Always DSL can be used to write safe “pseudo-imperative”
    code in Hardcaml]
  • [Hardcaml’s testing and interactive simulation tools]
  • [A recap of some interesting hardware/CPU features in our design]

  Finally, we published a [conclusion blog post], which wraps up some
  strengths/weaknesses of Hardcaml, as well as some takeaways on OCaml
  and blogging more generally.

  Thank you to @andyman and @fyquah95 for building Hardcaml, and for
  helping us out on GitHub issues! We really appreciate your time and

  Overall, we’ve come to the conclusion that Hardcaml is a much better
  tool for hardware design than Verilog. This has been a great
  experience, and we walk away with a better understanding of hardware,
  functional programming, and technical writing.

[v1.0.0 on GitHub]

[Design patterns, conventions, and testing]

[How the Always DSL can be used to write safe “pseudo-imperative” code
in Hardcaml]

[Hardcaml’s testing and interactive simulation tools]

[A recap of some interesting hardware/CPU features in our design]

[conclusion blog post]

Puzzling through some GADT errors


Deep in this thread, gasche said

  Not exactly what you are asking for, but @Octachron wrote an excellent
  [chapter on GADTs] in the OCaml manual, which could be recommended to
  people starting GADT programming. It explains why recursive functions
  on GADT need "explicit polymorphic annotations" in less
  "implementation driven" terms.

  (The chapter also demonstrates the new naming scheme for existential
  type variables introduced by GADT constructors, which can help a lot
  working through type errors, but are still a bit heavy and deserve a
  gentle introduction.)

[chapter on GADTs] <>

octachron then added

  I have only written the nomenclature part and a bit of the explanation
  for recursive functions in this chapter, @garrigue is the author of
  most of this chapter.

Parany for multicore OCaml


UnixJunkie announced

  There is now an implementation using multicore-OCaml in the 'domains'


  People are very welcome to give it a try and share the speedup they
  observe, especially compared to fork-based parallelism.

  Thanks to @nilsbecker for having motivated me.

UnixJunkie later added

  If you don't use the domains branch, then parany is using fork-based
  parallelism.  If you want to use the domains branch, you need to
  install multicore-ocaml first:
  │ opam switch create 4.12.0+domains
  │ eval `opam config env`

OCaml 4.13.0, second release candidate


octachron announced

  The release of OCaml 4.13.0 is expected for next week.

  Since we had a native code generation bug fix and two minor
  configuration tweaks since the first release candidate, we are
  publishing a second release candidate.  If you find any bugs, please
  report them here:


  Happy hacking, Florian Angeletti for the OCaml team.

Installation instructions

  The base compiler can be installed as an opam switch with the
  following commands
  │ opam update
  │ opam switch create 4.13.0~rc2 --repositories=default,beta=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> --packages=ocaml-variants.4.13.0~rc2+options,<option_list>
  │ --repositories=default,beta=git+

  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 4.13.0~rc2+flambda+nffa
  │ --packages=ocaml-variants.4.13.0~rc2+options,ocaml-option-flambda,ocaml-option-no-flat-float-array
  │ --repositories=default,beta=git+
  All available options can be listed with "opam search ocaml-option".

  The source code for the release candidate is also available at these

  • <>
  • <>

Changes since the first release candidate

  • [#10626], [#10628]: Wrong reloading of the x86-64 instruction for
    integer multiplication by a constant, causing the assembler to
    reject the ocamlopt-generated code. (Xavier Leroy, report by Dave
    Aitken, review by Vincent Laviron)

  • [#10176], [#10632(new in rc2)]: By default, call the assembler
    through the C compiler driver (Sébastien Hinderer, review by Gabriel
    Scherer, David Allsopp and Xavier Leroy)

  • [#10451], [#10635(new in rc2)]: Replace the use of iconv with a C
    utility to convert $(LIBDIR) to a C string constant on Windows when
    building the runtime. Hardens the generation of the constant on Unix
    for paths with backslashes, double-quotes and newlines. (David
    Allsopp, review by Florian Angeletti and Sébastien Hinderer)

[#10626] <>

[#10628] <>

[#10176] <>

[#10632(new in rc2)] <>

[#10451] <>

[#10635(new in rc2)] <>

Unicode 14.0.0 update for Uucd, Uucp, Uunf and Uuseg


Daniel Bünzli announced

  Unicode 14.0.0 was released on the 14th of september.

  It adds 838 new characters to the standard including, for our friends
  from Central Asia, support for [Old Uyghur].  For information about
  all the other additions, see [the announcement page].

  Accordingly the libraries mentioned at the end of this message had to
  be updated, consult the individual release notes for details. Both
  Uucd and Uucp are incompatible releases sinces new script and block
  enumerants had to be added.



  P.S. Though I'm not very fond of the concept, I recently enabled
  sponsors on my github account as an experiment. So I'd like to thanks
  my [github sponsors], @davesnx became the first one monday.

[Old Uyghur]

[the announcement page]

[github sponsors] <>

Set up OCaml 2.0.0-beta4


Sora Morimoto announced


  • Set `OPAMSOLVERTIMEOUT' to `1000' to avoid a timeout even if the
    opam solver is slow.
  • Increase cache hit ratio by loosening restore keys of opam cache.


Become an Outreachy Mentor: support the growth and diversity of the OCaml community


Sonja Heinze announced

  Hey all, I've just submitted an Outreachy project for the winter
  round. The project is to write the basic ppx_deriving plugins in
  ppxlib; that is, the ones that don't already have a version based on
  ppxlib. I think both, having them available to use, and having their
  code available as simple examples of how to use Ppxlib.Deriving would
  be very nice! And improving ppxlib's documentation and finding simple
  issues on already existing PPXs to prepare for Outreachy, will be
  beneficial as well.

  Of course, it's not clear if someone with the right interest comes
  along for this project, but if we don't find an intern for it this
  round, I can just re-submit the same project next round.

Sonja Heinze

  Btw, the deadline to submit projects was extended and is now Sept
  23rd. So the timeline in our post above is slightly outdated.

The OCaml 4.13 preview for Merlin is now available


Continuing this thread, Kate announced

  The OCaml 4.13 preview for ocaml-lsp-server is now available as well.

  To install it along with the OCaml 4.13 rc, please refer to the first

  If you encounter any problems while using ocaml-lsp-server, please
  feel free to report it directly in


  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

  If you also wish to receive it every week by mail, you may subscribe

  [Alan Schmitt]

[send me a message] <>

[the archive] <>

[RSS feed of the archives] <>

[online] <>

[Alan Schmitt] <>

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

             reply	other threads:[~2021-09-21  9:10 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-21  9:09 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-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-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:

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

  git send-email \ \ \ \ \ \

* 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).