caml-list - the Caml user's mailing list
 help / Atom feed
From: Alan Schmitt <>
To: "lwn" <>, "cwn"  <>,,
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 28 Jan 2020 11:53:58 +0100
Message-ID: <> (raw)

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


Here is the latest OCaml Weekly News, for the week of January 21 to 28,

Table of Contents

New release of Menhir (20200123)
Ocaml cross compiler?
Two master internship proposals to explore social and technical aspects of the creation of the OCaml and Coq platforms
Proper way to allocate an OCaml string from C code in OCaml 4.10?
OCaml 4.10.0, second beta

New release of Menhir (20200123)


François Pottier announced

  It is my pleasure to announce a new release of Menhir, the LR(1)
  parser generator.

  │ opam update
  │ opam install menhir
  │ opam install coq-menhirlib # if you wish to use menhir --coq

  There are no new features, only a significant change in the manner in
  which Menhir is built:

  • Menhir is now built and installed by dune. This should make life
    easier for Menhir's developers: in particular, `make test' and `make
    speed' can be run straight away and do not requiring installing
    Menhir first. This should also make compilation much faster on
    multi-core machines. (Contributed by Nicolás Ojeda Bär, to whom many
    thanks are due.)

  • There used to be a distinction between two slightly different ways
    of installing Menhir, namely with and without `ocamlfind'. This
    distinction disappears. The command line switch
    `--suggest-ocamlfind' is deprecated and causes Menhir to print

  We hope that these changes do not break any of the code that relies on
  Menhir today. Please report any problems that you might
  encounter. Happy hacking!

Ocaml cross compiler?

  Archive: <>

Deep in this thread, Dmitry Ponyatov asked

  What about embedded targets like Cortex-M (STM32F3/F4)?  How much
  memory should it have to have to run OCaml-compiled programs?

Ivan Gotovchits replied

  You may find this [page] interesting. To summarize, with _a lot of
  work_ you can make a subset of OCaml programs runnable on a
  microcontroller. You will also need to rewrite OCaml's runtime and
  develop a new GC for it.

  In real life, no, you can't run OCaml on a microcontroller. You need
  at least a couple of megabytes of normal RAM with MMU.

[page] <>

Ivan Gotovchits then added

  Hmm, found this [project], that is also quite relevant to you, it is
  quite alive, so maybe you have chances :)

[project] <>

Two master internship proposals to explore social and technical aspects of the creation of the OCaml and Coq platforms


Théo Zimmermann announced

  We are looking for candidates for the following two internships
  intended to prefigure the creation of the OCaml and Coq platforms:
  • a first internship is focused on exploring technical aspects:
  • a second internship is focused on exploring social and policy

  Please feel free to forward this announcement.  Interested students
  should send their resume and cover letter at
  [](<>) and

  Yann Régis-Gianas (Inria, IRIF, OCaml Foundation) and Théo Zimmermann
  (Inria, IRIF, Coq development team)

Proper way to allocate an OCaml string from C code in OCaml 4.10?


Rwmjones asked

  Previously to allocate a string with explicit length (ie.  one which
  may contain \0 characters) in C code we have used:

  │ strv = caml_alloc_string (count);
  │ memcpy (String_val (strv), str, count);

  In OCaml 4.10 this doesn't compile because String_val returns a `const
  char *'.

  I could change String_val to Bytes_val, but that feels wrong.  The
  runtime seems to use `&Byte_u (strv, 0)'.

  It's a shame there's not a caml_copy_string_len function, but what is
  the proper way to do this for OCaml 4.10+, especially a way that won't
  break in future and will be compatible with multicore?

yallop suggested

  You can use [`caml_alloc_initialized_string']:

  │ CAMLextern value caml_alloc_initialized_string (mlsize_t len, const char *);


OCaml 4.10.0, second beta

  Archive: <>

octachron announced

  The release of OCaml 4.10.0 is near. We have released a second beta
  version to help you adapt your softwares and libraries to the new
  features ahead of the release.

  This new beta contains an update to the internal runtime API that
  should make it easier to maintain compatibility across version for
  expert users; and a small fix for the analysis of recursive values.

  The source code is available at these addresses:


  The compiler can also be installed as an OPAM switch with one of the
  following commands.
  │ opam switch create ocaml-variants.4.10.0+beta1 --repositories=default,beta=git+
  │ opam switch create ocaml-variants.4.10.0+beta1+<VARIANT> --repositories=default,beta=git+
  where you replace <VARIANT> with one of these:
  • afl
  • flambda
  • fp
  • fp+flambda

  For a better experience, you can use the opam alpha repository
  provided by:
  │ opam repository add alpha git://
  This repository contains a handful of temporary patched packages, that
  you can use while waiting for the packages to be properly patched.
  This repository should not be used in production and you probably want
  to install it only for the beta switch.

  We want to know about all bugs. Please report them here:



  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: 21596 bytes --]

         reply index

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-03  7:35 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-12-03 15:43 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2020-01-14 14:17 Alan Schmitt
2020-01-21 14:09 Alan Schmitt
2020-01-28 10:54 Alan Schmitt [this message]
2020-02-04  8:47 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-03-10 14:29 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-31  9:55 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-28 12:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-05-12  7:46 Alan Schmitt
2020-05-19  9:53 Alan Schmitt
2020-06-09  8:29 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-07-07 10:05 Alan Schmitt
2020-07-14  9:55 Alan Schmitt
2020-07-21 14:43 Alan Schmitt
2020-07-28 16:58 Alan Schmitt
2020-08-18  7:26 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-10-20  8:16 Alan Schmitt
2020-10-27  8:44 Alan Schmitt
2020-11-03 15:16 Alan Schmitt
2020-12-01  8:55 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-22  8:49 Alan Schmitt
2020-12-29 10:00 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-23  9:52 Alan Schmitt
2021-03-09 10:59 Alan Schmitt
2021-03-16 10:32 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-30 14:56 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-05-04  8:58 Alan Schmitt
2021-05-11 14:48 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-06-22  9:05 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-07-06 12:34 Alan Schmitt
2021-07-20 12:59 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-09-07 13:24 Alan Schmitt
2021-09-21  9:10 Alan Schmitt
2021-09-28  6:37 Alan Schmitt

Reply instructions:

You may reply publically 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

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror

AGPL code for this site: git clone public-inbox