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
prev parent 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).