caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gabriel Scherer <gabriel.scherer@gmail.com>
To: caml users <caml-list@inria.fr>
Subject: Re: [Caml-list] OCaml 4.05.0 released
Date: Wed, 19 Jul 2017 09:21:25 -0400	[thread overview]
Message-ID: <CAPFanBEOeNH4JausxTtkajU4onVvFtdTvg7rxefO3LhsZtSkhg@mail.gmail.com> (raw)
In-Reply-To: <9E0463E2-0891-43C0-A88D-71CD06455EA8@inria.fr>

I have an annotated version of the 4.05 changelog with, in particular,
some of the compatibility-breaking changes explained in more details
at

  https://github.com/gasche/ocaml-releases-change-explanation/wiki/4.05.0-changes-explanation

This is a wiki, please feel free to improve the document.

On Thu, Jul 13, 2017 at 5:53 AM, Damien Doligez <damien.doligez@inria.fr> wrote:
> Dear OCaml users,
>
> We have the pleasure of celebrating the birthdays of Simone Veil and Ernö Rubik
> by announcing the release of OCaml version 4.05.0.
>
> It is available as an OPAM switch, or as a source
> download here: < https://caml.inria.fr/pub/distrib/ocaml-4.05/ >
>
> Happy hacking,
>
> -- Damien Doligez for the OCaml team.
>
>
> OCaml 4.05.0 (13 Jul 2017):
> ---------------------------
>
> (Changes that can break existing programs are marked with a "*")
>
> ### Language features:
>
> ### Code generation and optimizations:
>
> - MPR#7201, GPR#954: Correct wrong optimisation of "0 / <expr>"
>   and "0 mod <expr>" in the case when <expr> was a non-constant
>   evaluating to zero
>   (Mark Shinwell, review by Gabriel Scherer, Leo White and Xavier Leroy)
>
> - MPR#7357, GPR#832: Improve compilation time for toplevel
>   include(struct ... end : sig ... end)
>   (Alain Frisch, report by Hongbo Zhang, review by Jacques Garrigue)
>
> - MPR#7533, GPR#1173: Correctly perform side effects for certain
>   cases of "/" and "mod"
>   (Mark Shinwell, report by Jan Mitgaard)
>
> - GPR#504: Instrumentation support for fuzzing with afl-fuzz.
>   (Stephen Dolan, review by Alain Frisch, Pierre Chambart, Mark
>   Shinwell, Gabriel Scherer and Damien Doligez)
>
> - GPR#863, GPR#1068, GPR#1069: Optimise matches with constant
>   results to lookup tables.
>   (Stephen Dolan, review by Gabriel Scherer, Pierre Chambart,
>   Mark Shinwell, and bug report by Gabriel Scherer)
>
> - GPR#1150: Fix typo in arm64 assembler directives
>   (KC Sivaramakrishnan)
>
> ### Runtime system:
>
> - MPR#385, GPR#953: Add caml_startup_exn
>   (Mark Shinwell)
>
> - MPR#7423, GPR#946: expose new exception-raising functions
>   `void caml_{failwith,invalid_argument}_value(value msg)`
>   in addition to
>   `void caml_{failwith,invalid_argument}(char const *msg)`.
>   The previous functions would not free their message argument, so
>   were inconvient for dynamically-allocated messages; the messages
>   passed to the new functions are handled by the garbage collector.
>   (Gabriel Scherer, review by Mark Shinwell, request by Immanuel Litzroth)
>
> - MPR#7557, GPR#1213: More security for getenv
>   (Damien Doligez, reports by Seth Arnold and Eric Milliken, review by
>   Xavier Leroy, David Allsopp, Stephen Dolan, Hannes Mehnert)
>
> - GPR#795: remove 256-character limitation on Sys.executable_name
>   (Xavier Leroy)
>
> - GPR#891: Use -fno-builtin-memcmp when building runtime with gcc.
>   (Leo White)
>
> ### Type system:
>
> - MPR#6608, GPR#901: unify record types when overriding all fields
>   (Tadeu Zagallo and Gabriel Scherer, report by Jeremy Yallop,
>   review by David Allsopp, Jacques Garrigue)
>
> * MPR#7414, GPR#929: Soundness bug with non-generalized type variables and
>   functors.
>   (Jacques Garrigue, report by Leo White)
>
> ### Compiler user-interface and warnings:
>
> - MPR#7050, GPR#748 GPR#843 GPR#864: new `-args/-args0 <file>` parameters to
>   provide extra command-line arguments in a file -- see documentation.
>   User programs may implement similar options using the new `Expand`
>   constructor of the `Arg` module.
>   (Bernhard Schommer, review by Jérémie Dimino, Gabriel Scherer
>    and Damien Doligez, discussion with Alain Frisch and Xavier Leroy,
>    feature request from the Coq team)
>
> - MPR#7137, GPR#960: "-open" command line flag now accepts
>   a module path (not a module name)
>   (Arseniy Alekseyev and Leo White)
>
> - MPR#7172, GPR#970: add extra (ocamlc -config) options
>   int_size, word_size, ext_exe
>   (Gabriel Scherer, request by Daniel Bünzli)
>
> - MPR#7315, GPR#736: refine some error locations
>   (Gabriel Scherer and Alain Frisch, report by Matej Košík)
>
> - MPR#7473, GPR#1025: perform proper globbing for command-line arguments on
>   Windows
>   (Jonathan Protzenko)
>
> - MPR#7479: make sure "ocamlc -pack" is only given .cmo and .cmi files,
>   and that "ocamlopt -pack" is only given .cmx and .cmi files.
>   (Xavier Leroy)
>
> - GPR#796: allow compiler plugins to declare their own arguments.
>   (Fabrice Le Fessant)
>
> - GPR#829: better error when opening a module aliased to a functor
>   (Alain Frisch)
>
> - GPR#911: ocamlc/ocamlopt do not pass warnings-related options to C
>   compiler when called to compile third-party C source files
>   (Sébastien Hinderer, review by Adrien Nader and David Allsopp)
>
> - GPR#915: fix -dsource (pprintast.ml) bugs
>   (Runhang Li, review by Alain Frisch)
>
> * GPR#933: ocamlopt -p now reports an error on platforms that do not
>   support profiling with gprof; dummy profiling libraries are no longer
>   installed on such platforms.
>   This can be tested with ocamlopt -config
>   (Sébastien Hinderer)
>
> - GPR#1009: "ocamlc -c -linkall" and "ocamlopt -c -linkall" can now be used
>   to set the "always link" flag on individual compilation units.  This
>   controls linking with finer granularity than "-a -linkall", which sets
>   the "always link" flag on all units of the given library.
>   (Xavier Leroy)
>
> - GPR#1015: add option "-plugin PLUGIN" to ocamldep too. Use compilerlibs
>   to build ocamldep.
>   (Fabrice Le Fessant)
>
> - GPR#1027: various improvements to -dtimings, mostly including time
>   spent in subprocesses like preprocessors
>   (Valentin Gatien-Baron, review by Gabriel Scherer)
>
> - GPR#1098: the compiler now takes the boolean "OCAML_COLOR" environment
>   variable into account if "-color" is not provided.  This allows users
>   to override the default behaviour without modifying invocations of ocaml
>   manually.
>   (Hannes Mehnert, Guillaume Bury,
>    review by Daniel Bünzli, Gabriel Scherer, Damien Doligez)
>
> ### Standard library:
>
> - MPR#6975, GPR#902: Truncate function added to stdlib Buffer module
>   (Dhruv Makwana, review by Alain Frisch and Gabriel Scherer)
>
> - MPR#7279, GPR#710: `Weak.get_copy` `Ephemeron.*_copy` doesn't copy
>   custom blocks anymore
>   (François Bobot, Alain Frisch, bug reported by Martin R. Neuhäußer,
>   review by Thomas Braibant and Damien Doligez)
>
> * MPR#7500, GPR#1081: Remove Uchar.dump
>   (Daniel Bünzli)
>
> - GPR#760: Add a functions List.compare_lengths and
>   List.compare_length_with to avoid full list length computations
>   (Fabrice Le Fessant, review by Leo White, Josh Berdine and Gabriel Scherer)
>
> - GPR#778: Arg: added option Expand that allows to expand a string
>   argument to a string array of new arguments
>   (Bernhard Schommer, review by Gabriel Scherer and Jérémie Dimino)
>
> - GPR#849: Expose a Spacetime.enabled value
>   (Leo White)
>
> - GPR#885: Option-returning variants of stdlib functions
>   (Alain Frisch, review by David Allsopp and Bart Jacobs)
>
> - GPR#869: Add find_first, find_first_opt, find_last, find_last_opt to
>   maps and sets.  Find the first or last binding or element
>   satisfying a monotonic predicate.
>   (Gabriel de Perthuis, with contributions from Alain Frisch, review by
>   Hezekiah M. Carty and Simon Cruanes, initial report by Gerd Stolpmann)
>
> - GPR#875: Add missing functions to ArrayLabels, BytesLabels,
>   ListLabels, MoreLabels, StringLabels so they are compatible with
>   non-labeled counterparts. Also add missing @@ocaml.deprecated attributes
>   in StringLabels and BytesLabels.
>   (Roma Sokolov, review by Gabriel Scherer, Jacques Garrigue,
>    Gabriel Radanne, Alain Frisch)
>
> - GPR#999: Arg, do not repeat the usage message thrice when reporting an error
>   (this was a regression in 4.03)
>   (Florian Angeletti, review by Gabriel Scherer)
>
> - GPR#1042: Fix escaping of command-line arguments in
>   Unix.create_process{,_env} under Windows.  Arguments with tabs should now
>   be received verbatim by the child process.
>   (Nicolas Ojeda Bar, Andreas Hauptmann review by Xavier Leroy)
>
> ### Debugging and profiling:
>
> - MPR#7258: ocamldebug's "install_printer" command had problems with
>   module aliases
>   (Xavier Leroy)
>
> - GPR#378: Add [Printexc.raise_with_backtrace] to raise an exception using
>   an explicit backtrace
>   (François Bobot, review by Gabriel Scherer, Xavier Leroy, Damien Doligez,
>    Frédéric Bour)
>
> ### Manual and documentation:
>
> - MPR#6597, GPR#1030: add forward references to language extensions
>   that extend non-terminal symbols in the language reference section.
>   (Florian Angeletti, review by Gabriel Scherer)
>
> - MPR#7497, GPR#1095: manual, enable numbering for table of contents
>   (Florian Angeletti, request by Daniel Bünzli)
>
> - MPR#7539, GPR#1181: manual, update dead links in ocamldoc chapter
>   (Florian Angeletti)
>
> - GPR#633: manpage and manual documentation for the `-opaque` option
>   (Konstantin Romanov, Gabriel Scherer, review by Mark Shinwell)
>
> - GPR#751, GPR#925: add a HACKING.adoc file to contain various
>   tips and tricks for people hacking on the repository. See also
>   CONTRIBUTING.md for advice on sending contributions upstream.
>   (Gabriel Scherer and Gabriel Radanne, review by David Allsopp,
>   inspired by John Whitington)
>
> - GPR#916: new tool lintapidiff, use it to update the manual with
>   @since annotations for API changes introduced between 4.00-4.05.
>   (Edwin Török, review by Gabriel Scherer, discussion with Alain Frisch,
>    David Allsopp, Sébastien Hinderer, Damien Doligez and Xavier Leroy)
>
> - GPR#939: activate the caml_example environment in the language
>   extensions section of the manual. Convert some existing code
>   examples to this format.
>   (Florian Angeletti)
>
> - GPR#1082: clarify that the use of quoted string for preprocessed
>   foreign quotations still requires the use of an extension node
>   [%foo ...] to mark non-standard interpretation.
>   (Gabriel Scherer, request by Matthew Wahab in GPR#1066,
>    review by Florian Angeletti)
>
> ### Other libraries:
>
> - MPR#7158: Event.sync, Mutex.create, Condition.create cause too many GCs.
>   The fix is to no longer consider mutexes and condition variables
>   as rare kernel resources.
>   (Xavier Leroy)
>
> - MPR#7264: document the different behaviors of Unix.lockf under POSIX
>   and under Win32.
>   (Xavier Leroy, report by David Allsopp)
>
> - MPR#7339, GPR#787: Support the '0 dimension' case for bigarrays
>   (see Bigarray documentation)
>   (Laurent Mazare,
>    review by Gabriel Scherer, Alain Frisch and Hezekiah M. Carty)
>
> * MPR#7342, GPR#797: fix Unix.read on pipes with no data left on Windows
>   it previously raised an EPIPE error, it now returns 0 like other OSes
>   (Jonathan Protzenko, review by Andreas Hauptmann and Damien Doligez)
>
> - GPR#650: in the Unix library, add `?cloexec:bool` optional arguments to
>   functions that create file descriptors (`dup`, `dup2`, `pipe`, `socket`,
>   `socketpair`, `accept`).  Implement these optional arguments in the
>   most atomic manner provided by the operating system to set (or clear)
>   the close-on-exec flag at the same time the file descriptor is created,
>   reducing the risk of race conditions with `exec` or `create_process`
>   calls running in other threads, and improving security.  Also: add a
>   `O_KEEPEXEC` flag for `openfile` by symmetry with `O_CLOEXEC`.
>   (Xavier Leroy, review by Mark Shinwell, David Allsopp and Alain Frisch,
>    request by Romain Beauxis)
>
> - GPR#996: correctly update caml_top_of_stack in systhreads
>   (Fabrice Le Fessant)
>
> ### Toplevel:
>
> - MPR#7060, GPR#1035: Print exceptions in installed custom printers
>   (Tadeu Zagallo, review by David Allsopp)
>
> ### Tools:
>
> - MPR#5163: ocamlobjinfo, dump globals defined by bytecode executables
>   (Stéphane Glondu)
>
> - MPR#7333: ocamldoc, use the first sentence of text file as
>   a short description in overviews.
>   (Florian Angeletti)
>
> - GPR#848: ocamldoc, escape link targets in HTML output
>   (Etienne Millon, review by Gabriel Scherer, Florian Angeletti and
>   Daniel Bünzli)
>
> - GPR#986: ocamldoc, use relative paths in error message
>   to solve ocamlbuild+doc usability issue (ocaml/ocamlbuild#79)
>   (Gabriel Scherer, review by Florian Angeletti, discussion with Daniel Bünzli)
>
> - GPR#1017: ocamldoc, add an option to detect code fragments that could be
>   transformed into a cross-reference to a known element.
>   (Florian Angeletti, review and suggestion by David Allsopp)
>
> - clarify ocamldoc text parsing error messages
>   (Gabriel Scherer)
>
> ### Compiler distribution build system:
>
> - MPR#7377: remove -std=gnu99 for newer gcc versions
>   (Damien Doligez, report by ygrek)
>
> - MPR#7452, GPR#1228: tweak GCC options to try to avoid the
>   Skylake/Kaby lake bug
>   (Damien Doligez, review by David Allsopp, Xavier Leroy and Mark Shinwell)
>
> - GPR#693: fail on unexpected errors or warnings within caml_example
>   environment.
>   (Florian Angeletti)
>
> - GPR#803: new ocamllex-based tool to extract bytecode compiler
>   opcode information from C headers.
>   (Nicolas Ojeda Bar)
>
> - GPR#827: install missing mli and cmti files, new make target
>   install-compiler-sources for installation of compiler-libs ml files
>   (Hendrik Tews)
>
> - GPR#887: allow -with-frame-pointers if clang is used as compiler on Linux
>   (Bernhard Schommer)
>
> - GPR#898: fix locale-dependence of primitive list order,
>   detected through reproducible-builds.org.
>   (Hannes Mehnert, review by Gabriel Scherer and Ximin Luo)
>
> - GPR#907: Remove unused variable from the build system
>   (Sébastien Hinderer, review by whitequark, Gabriel Scherer, Adrien Nader)
>
> - GPR#911: Clarify the use of C compiler related variables in the build system.
>   (Sébastien Hinderer, review by Adrien Nader, Alain Frisch, David Allsopp)
>
> - GPR#919: use clang as preprocessor assembler if clang is used as compiler
>   (Bernhard Schommer)
>
> - GPR#927: improve the detection of hashbang support in the configure script
>   (Armaël Guéneau)
>
> - GPR#932: install ocaml{c,lex}->ocaml{c,lex}.byte symlink correctly
>   when the opt target is built but opt.opt target is not.
>   (whitequark, review by Gabriel Scherer)
>
> - GPR#935: allow build in Android's termux
>   (ygrek, review by Gabriel Scherer)
>
> - GPR#984: Fix compilation of compiler distribution when Spacetime
>   enabled
>   (Mark Shinwell)
>
> - GPR#991: On Windows, fix installation when native compiler is not
>   built
>   (Sébastien Hinderer, review by David Allsopp)
>
> - GPR#1033: merge Unix and Windows build systems in the root directory
>   (Sébastien Hinderer, review by Damien Doligez and Adrien Nader)
>
> - GPR#1047: Make .depend files generated for C sources more portable
>   (Sébastien Hinderer, review by Xavier Leroy and David Allsopp)
>
> - GPR#1076: Simplify ocamlyacc's build system
>   (Sébastien Hinderer, review by David Allsopp)
>
> ### Compiler distribution build system: Makefile factorization
>
> The compiler distribution build system (the set of Makefiles used to
> build the compiler distribution) traditionally had separate Makefiles
> for Unix and Windows, which lead to some amount of duplication and
> subtle differences and technical debt in general -- for people working
> on the compiler distribution, but also cross-compilation or porting to
> new systems. During the 4.05 development period, Sébastien Hinderer
> worked on harmonizing the build rules and merging the two build
> systems.
>
> * Some changes were made to the config/Makefile file which
>   is exported as $(ocamlc -where)/Makefile.config, and on
>   which some advanced users might rely. The changes are
>   as follows:
>   - a BYTERUN variable was added that points to the installed ocamlrun
>   - the PARTIALLD variable was removed (PACKLD is more complete)
>   - the always-empty DLLCCCOMPOPTS was removed
>   - the SHARED variable was removed; its value is "shared" or "noshared",
>     which duplicates the existing and more convenient
>     SUPPORTS_SHARED_LIBRARIES variable whose value is "true" or "false".
>
>   Note that Makefile.config may change further in the future and relying
>   on it is a bit fragile. We plan to make `ocamlc -config` easier to use
>   for scripting purposes, and have a stable interface there. If you rely
>   on Makefile.config, you may want to get in touch with Sébastien Hinderer
>   or participate to MPR#7116 (Allow easy retrieval of Makefile.config's values)
>   or MPR#7172 (More information in ocamlc -config).
>
> The complete list of changes is listed below.
>
> - GPR#705: update Makefile.nt so that ocamlnat compiles
>   for non-Cygwin Windows ports.
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#729: Make sure ocamlnat is built with a $(EXE) extension, merge
>   rules between Unix and Windows Makefiles
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#762: Merge build systems in the yacc/ directory.
>   (Sébastien Hinderer, review by David Allsopp, Alain Frisch)
>
> - GPR#764: Merge build systems in the debugger/ directory.
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#785: Merge build systems in otherlibs/systhreads/
>   (Sébastien Hinderer, review by Alain Frisch, David Allsopp,
>    testing and regression fix by Jérémie Dimino)
>
> - GPR#788: Merge build systems in subdirectories of otherlibs/.
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#808, GPR#906: Merge Unix and Windows build systems
>   in the ocamldoc/ directory
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#812: Merge build systems in the tools/ subdirectory
>   (Sébastien Hinderer, review by Alain Frisch)
>
> - GPR#866: Merge build systems in the stdlib/ directory
>   (Sébastien Hinderer, review by David Allsopp and Adrien Nader)
>
> - GPR#941: Merge Unix and Windows build systems in the asmrun/ directory
>   (Sébastien Hinderer, review by Mark Shinwell, Adrien Nader,
>    Xavier Leroy, David Allsopp, Damien Doligez)
>
> - GPR#981: Merge build systems in the byterun/ directory
>   (Sébastien Hinderer, review by Adrien Nader)
>
> - GPR#1033, GPR#1048: Merge build systems in the root directory
>   (Sébastien Hinderer, review by Adrien Nader and Damien Doligez,
>    testing and regression fix by Andreas Hauptmann)
>
> ### Internal/compiler-libs changes:
>
> - GPR#673: distinguish initialization of block fields from mutation in lambda.
>   (Frédéric Bour, review by Xavier Leroy, Stephen Dolan and Mark Shinwell)
>
> - GPR#744, GPR#781: fix duplicate self-reference in imported cmi_crcs
>   list in .cmti files + avoid rebuilding cmi_info record when creating
>   .cmti files
>   (Alain Frisch, report by Daniel Bünzli, review by Jérémie Dimino)
>
> - GPR#881: change `Outcometree.out_variant` to be more general.
>   `Ovar_name of out_ident * out_type list` becomes `Ovar_type of out_type`.
>   (Valentin Gatien-Baron, review by Leo White)
>
> - GPR#908: refactor PIC-handling in the s390x backend
>   (Gabriel Scherer, review by Xavier Leroy and Mark Shinwell)
>
> ### Bug fixes
>
> - MPR#5115: protect all byterun/fail.c functions against
>   uninitialized caml_global_data (only changes the bytecode behavior)
>   (Gabriel Scherer, review by Xavier Leroy)
>
> - MPR#6136, GPR#967: Fix Closure so that overapplication evaluation order
>   matches the bytecode compiler and Flambda.
>   (Mark Shinwell, report by Jeremy Yallop, review by Frédéric Bour)
>
> - MPR#6550, GPR#1094: Allow creation of empty .cmxa files on macOS
>   (Mark Shinwell)
>
> - MPR#6594, GPR#955: Remove "Istore_symbol" specific operation on x86-64.
>   This is more robust and in particular avoids assembly failures on Win64.
>   (Mark Shinwell, review by Xavier Leroy, testing by David Allsopp and
>    Olivier Andrieu)
>
> - MPR#6903: Unix.execvpe doesn't change environment on Cygwin
>   (Xavier Leroy, report by Adrien Nader)
>
> - MPR#6987: Strange error message probably caused by
>   universal variable escape (with polymorphic variants)
>   (Jacques Garrigue, report by Mikhail Mandrykin and Leo White)
>
> - MPR#7216, GPR#949: don't require double parens in Functor((val x))
>   (Jacques Garrigue, review by Valentin Gatien-Baron)
>
> - MPR#7331: ocamldoc, avoid infinite loop in presence of self alias,
>   i.e. module rec M:sig end = M
>   (Florian Angeletti, review Gabriel Scherer)
>
> - MPR#7346, GPR#966: Fix evaluation order problem whereby expressions could
>   be incorrectly re-ordered when compiling with Flambda.  This also fixes one
>   example of evaluation order in the native code compiler not matching the
>   bytecode compiler (even when not using Flambda)
>   (Mark Shinwell, Leo White, code review by Pierre Chambart)
>
> - MPR#7348: Private row variables can escape their scope
>   (Jacques Garrigue, report by Leo White)
>
> - MPR#7407: Two not-quite-standard C idioms rejected by SUNWSPro compilers
>   (Xavier Leroy)
>
> - MPR#7421: Soundness bug with GADTs and lazy
>   (Jacques Garrigue, report by Leo White)
>
> - MPR#7424: Typechecker diverges on unboxed type declaration
>   (Jacques Garrigue, report by Stephen Dolan)
>
> - MPR#7426, GPR#965: Fix fatal error during object compilation (also
>   introduces new [Pfield_computed] and [Psetfield_computed] primitives)
>   (Mark Shinwell, report by Ulrich Singer)
>
> - MPR#7427, GPR#959: Don't delete let bodies in Cmmgen
>   (Mark Shinwell, report by Valentin Gatien-Baron)
>
> - MPR#7432: Linking modules compiled with -labels and -nolabels is not safe
>   (Jacques Garrigue, report by Jeremy Yallop)
>
> - MPR#7437: typing assert failure with nonrec priv
>   (Jacques Garrigue, report by Anil Madhavapeddy)
>
> - MPR#7438: warning +34 exposes #row with private types
>   (Alain Frisch, report by Anil Madhavapeddy)
>
> - MPR#7443, GPR#990: spurious unused open warning with local open in patterns
>   (Florian Angeletti, report by Gabriel Scherer)
>
> - MPR#7504: fix warning 8 with unconstrained records
>   (Florian Angeletti, report by John Whitington)
>
> - MPR#7456, GPR#1092: fix slow compilation on source files containing a lot
>   of similar debugging information location entries
>   (Mark Shinwell)
>
> - GPR#795: remove 256-character limitation on Sys.executable_name
>   (Xavier Leroy)
>
> - GPR#805, GPR#815, GPR#833: check for integer overflow in String.concat
>   (Jeremy Yallop,
>    review by Damien Doligez, Alain Frisch, Daniel Bünzli, Fabrice Le Fessant)
>
> - GPR#881: short-paths did not apply to some polymorphic variants
>   (Valentin Gatien-Baron, review by Leo White)
>
> - GPR#886: Fix Ctype.moregeneral's handling of row_name
>   (Leo White, review by Jacques Garrigue)
>
> - GPR#934: check for integer overflow in Bytes.extend
>   (Jeremy Yallop, review by Gabriel Scherer)
>
> - GPR#956: Keep possibly-effectful expressions when optimizing multiplication
>   by zero.
>   (Jeremy Yallop, review by Nicolás Ojeda Bär, Xavier Leroy and Mark Shinwell)
>
> - GPR#977: Catch Out_of_range in ocamldebug's "list" command
>   (Yunxing Dai)
>
> - GPR#983: Avoid removing effectful expressions in Closure, and
>   eliminate more non-effectful ones
>   (Alain Frisch, review by Mark Shinwell and Gabriel Scherer)
>
> - GPR#987: alloc_sockaddr: don't assume a null terminator. It is not inserted
>   on macOS by system calls that fill in a struct sockaddr (e.g. getsockname).
>   (Anton Bachin)
>
> - GPR#998: Do not delete unused closures in un_anf.ml.
>   (Leo White, review by Mark Shinwell and Pierre Chambart)
>
> - GPR#1019: Fix fatal error in Flambda mode "[functions] does not map set of
>   closures ID"
>   (Pierre Chambart, code review by Mark Shinwell and Leo White)
>
> - GPR#1075: Ensure that zero-sized float arrays have zero tags.
>   (Mark Shinwell, Leo White, review by Xavier Leroy)
>
> * GPR#1088: Gc.minor_words now returns accurate numbers.
>   (Stephen Dolan, review by Pierre Chambart and Xavier Leroy)
>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs

      reply	other threads:[~2017-07-19 13:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-13  9:53 Damien Doligez
2017-07-19 13:21 ` Gabriel Scherer [this message]

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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

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

  git send-email \
    --in-reply-to=CAPFanBEOeNH4JausxTtkajU4onVvFtdTvg7rxefO3LhsZtSkhg@mail.gmail.com \
    --to=gabriel.scherer@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

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