Previous week Up Next week


Here is the latest OCaml Weekly News, for the week of November 24 to December 01, 2015.

  1. Status and schedule of the 4.03.0 release
  2. Tsdl 0.9.0
  3. Do you use a debugger with OCaml? If not, why not?
  4. Other OCaml News

Status and schedule of the 4.03.0 release


Damien Doligez announced:
Here is a summary of what's going on with the next release of OCaml:

We had a developer meeting on Nov 18 to decide which features will
go into the next release. As far as large features are concerned,
the set is now fixed. In addition to what's already in the Changes
file, we'll have:

- named constructor arguments (aka inline records)
- compiler annotations for performance (@tailcall @inline @unbox @noalloc...)
- flambda: major changes in the compiler pipeline
- GC improvements: no more large GC pause times
- Ephemerons: a generalization of weak pointers
- Ocamlbuild: spin off as an independent project

Note that, while they are still in Changes at the moment, we
have decided to remove the user-defined indexing operators
( .() .()<- etc. ) for the moment, because they clash with
another planned feature. They will probably be back in some
form in 4.04.

Our planned schedule is as follows:
- December: merging features
- December 20: end of merge window, creation of 4.03 branch,
  beta version.
- January: debugging
- early February: release

We are also planning to release an alpha version of the multicore
system as an OPAM switch shortly after the 4.03.0 release.

We are working hard on this release, and we need the cooperation of
all OCaml programmers, especially library authors: test your code on
trunk, adapt to the (few) incompatible changes, report bugs as early
as you can.
William then asked andFrançois Bobot replied:
> Thanks for this upcoming update. Do you have some (short) explanations on the
> benefits and how to use those new features ?
> found this for named constructor, looks nice :
> what about compiler annotations ?
> I understand that Ephemerons and flambda are optimisations, though having some
> examples would be nice. Should we change some coding practices to take
> advantage of those improvements ?

Ephemerons are not just optimization. They extend the expressivity in the same
way that if you start with only disjunction, adding conjunction extend the
expressivity of the formula you can write.

More practically, they allow to define really weak hashtable where a data is
kept by the hashtable only if the keys _and_ the hashtable are alive.

You can look at the different interfaces given in the standard library at .

Some slides about them:

The merge-request is at

However the merge-request also add some fixes in the implementation of weak
arrays, you have nothing to do to take advantage of them.

Tsdl 0.9.0


Daniel Bünzli announced:
So here it is. tsdl 0.9.0 was released and uses the result value compatibility

Many thanks to Florian Angeletti for taking up this slightly unglamorous task.

Do you use a debugger with OCaml? If not, why not?


Deep in this thread, Xavier Van de Woestyne announced:
I started implementing a small debugger using PPX. Actually the tool provide
only "logs" but if I have more time, 
I will write more features (like loop/recursion log/breakpoint, watch etc).

The code was writted fast, It'll open to improvement. 

Other OCaml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the OCaml Weekly News the links to the
recent posts from the ocamlcore planet blog at

Shayne Fletcher: C++ : Sums with constructors

OCaml Labs compiler hacking: Eleventh OCaml compiler hacking evening at Pembroke College

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