Ocaml 4.04.1 released

Damien Doligez <[email protected]> Fri, 14 Apr 2017 11:48:10 +0200
Newsgroups gmane.comp.lang.caml.announce,gmane.comp.lang.caml.inria
Message-ID <[email protected]>
Dear OCaml users,

We have the pleasure of announcing the release of OCaml version 4.04.1,
dedicated to the memory of Emmy Noether on the anniversary of her death.

This is a bug-fix release, see the list of changes below.

It is available as a bunch of OPAM switch and as a source
download in the following locations:

https://github.com/ocaml/ocaml/archive/4.04.1.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-4.04/

Happy hacking,

-- Damien Doligez for the OCaml team.


OCaml 4.04.1 (14 Apr 2017):
---------------------------

### Code generation and optimizations:

- PR#7501, GPR#1089: Consider arrays of length zero as constants
  when using Flambda.
  (Pierre Chambart, review by Mark Shinwell and Leo White)

### Standard library:

- PR#7403, GPR#894: fix a bug in Set.map as introduced in 4.04.0
  (Gabriel Scherer, report by Thomas Leonard)

### Tools:

- PR#7411: ocamldoc, avoid nested <pre> tags in module description.
  (Florian Angeletti, report by user 'kosik')

- PR#7488: ocamldoc, wrong Latex output for variant types
  with constructors without arguments.
  (Florian Angeletti, report by Xavier Leroy)

### Build system:

- PR#7373, GPR#1023: New flexlink target in Makefile.nt to bootstrap the
  flexlink binary only, rather than the flexlink binary and the FlexDLL =
C
  objects.
  (David Allsopp)

### Bug fixes

- PR#7369: Str.regexp raises "Invalid_argument: index out of bounds"
  (Damien Doligez, report by John Whitington)

- PR#7373, GPR#1023: Fix ocamlmklib with bootstrapped FlexDLL. =
Bootstrapped
  FlexDLL objects are now installed to a subdirectory flexdll of the =
Standard
  Library which allows the compilers to pick them up explicitly and also
  ocamlmklib to include them without unnecessarily adding the entire =
Standard
  Library.
  (David Allsopp)

- PR#7385, GPR#1057: fix incorrect timestamps returned by Unix.stat on =
Windows
  when either TZ is set or system date is in DST.
  (David Allsopp, report and initial fix by Nicol=C3=A1s Ojeda B=C3=A4r, =
review and
   superior implementation suggestion by Xavier Leroy)

- PR#7405, GPR#903: s390x: Fix address of caml_raise_exn in native =
dynlink modules
  (Richard Jones, review by Xavier Leroy)

- PR#7417, GPR#930: ensure 16 byte stack alignment inside caml_allocN on =
x86-64
  for ocaml build with WITH_FRAME_POINTERS defined
  (Christoph Cullmann)

- PR#7456, GPR#1092: fix slow compilation on source files containing a =
lot
  of similar debugging information location entries
  (Mark Shinwell)

- PR#7457: a case of double free in the systhreads library (POSIX =
implementation)
  (Xavier Leroy, report by Chet Murthy)

- PR#7460, GPR#1011: catch uncaught exception when unknown files are =
passed
  as argument (regression in 4.04.0)
  (Bernhard Schommer, review by Florian Angeletti and Gabriel Scherer,
   report by Stephen Dolan)

- PR#7505: Memory cannot be released after calling
    Bigarray.Genarray.change_layout.
  (Damien Doligez and Xavier Leroy, report by Liang Wang)

- GPR#912: Fix segfault in Unix.create_process on Windows caused by =
wrong header
  configuration.
  (David Allsopp)

- GPR#980: add dynlink options to ocamlbytecomp.cmxa to allow =
ocamlopt.opt
  to load plugins. See http://github.com/OCamlPro/ocamlc-plugins for =
examples.
  (Fabrice Le Fessant, review by David Allsopp)

- GPR#992: caml-types.el: Fix missing format argument, so that it can =
show kind
  of call at point correctly.
  (Chunhui He)

- GPR#1043: Allow Windows CRLF line-endings in ocamlyacc on Unix and =
Cygwin.
  (David Allsopp, review by Damien Doligez and Xavier Leroy)

- GPR#1072: Fix segfault in Sys.runtime_parameters when exception =
backtraces
  are enabled.
  (Olivier Andrieu)