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

Alan Schmitt alan.schmitt at polytechnique.org
Tue Jan 28 02:53:58 PST 2020


Hello

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

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
Old CWN


New release of Menhir (20200123)
════════════════════════════════

  Archive:
  <https://sympa.inria.fr/sympa/arc/caml-list/2020-01/msg00040.html>


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
    `false'.

  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: <https://discuss.ocaml.org/t/ocaml-cross-compiler/1494/7>


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] <http://www.algo-prog.info/ocapic/web/index.php?id=ocapic>


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] <https://github.com/stevenvar/OMicroB>


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

  Archive:
  <https://discuss.ocaml.org/t/two-master-internship-proposals-to-explore-social-and-technical-aspects-of-the-creation-of-the-ocaml-and-coq-platforms/5073/1>


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:
    <https://www.irif.fr/_media/users/theo/internship_proposal_platform_tech.pdf>
  • a second internship is focused on exploring social and policy
    aspects:
    <https://www.irif.fr/_media/users/theo/internship_proposal_platform_social.pdf>

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

  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?
═════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/proper-way-to-allocate-an-ocaml-string-from-c-code-in-ocaml-4-10/5075/1>


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 *);
  └────


[`caml_alloc_initialized_string']
<https://github.com/ocaml/ocaml/blob/d408e58ea15ec890a2c6d98441d261db51a6735d/runtime/caml/alloc.h#L38~>


OCaml 4.10.0, second beta
═════════════════════════

  Archive: <https://discuss.ocaml.org/t/ocaml-4-10-0-second-beta/5083/1>


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:

  <https://github.com/ocaml/ocaml/archive/4.10.0+beta2.tar.gz>
  <https://caml.inria.fr/pub/distrib/ocaml-4.10/ocaml-4.10.0+beta2.tar.gz>

  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+https://github.com/ocaml/ocaml-beta-repository.git
  └────
  or
  ┌────
  │ opam switch create ocaml-variants.4.10.0+beta1+<VARIANT> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.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://github.com/kit-ty-kate/opam-alpha-repository.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:

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


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] <http://alan.petitepomme.net/cwn/>

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

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

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

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


More information about the caml-news-weekly mailing list