From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id 462655D4 for ; Thu, 19 Sep 2019 08:49:26 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.64,522,1559512800"; d="scan'208";a="402448895" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 19 Sep 2019 10:49:23 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 8C8C07F14D; Thu, 19 Sep 2019 10:49:23 +0200 (CEST) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id D550E7EF3A for ; Thu, 19 Sep 2019 10:49:19 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.64,522,1559512800"; d="scan'208";a="319925317" Received: from bursa.paris.inria.fr (HELO [128.93.64.108]) ([128.93.64.108]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/AES128-SHA; 19 Sep 2019 10:49:19 +0200 From: Florian Angeletti To: caml-list@inria.fr Message-ID: <24c7441e-b1f8-9957-51b7-eecc0999d246@inria.fr> Date: Thu, 19 Sep 2019 10:49:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: [Caml-list] OCaml release 4.09.0 Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 17810 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Dear OCaml users, We have the pleasure of celebrating the birth of James Waddell Alexander II by announcing the release of OCaml version 4.09.0 . Some of the highlights of this new 4.09 release are: - New optimisations, in particular for affine functions in matches, for instance     type t = A | B | C     let affine = function       | A -> 4       | B -> 3       | C -> 2 - The `graphics` library was moved out of the compiler distribution. - The `vmthread` library was removed. - Support for compiler plugins was removed. - Many bug fixes. The full list of change can be found in the changelog below. It is  available as a set of OPAM switches, and as a source download here:   https://caml.inria.fr/pub/distrib/ocaml-4.09/ Happy hacking, — Florian "octachron" Angeletti, for the OCaml team. OCaml 4.09.0 (18 Sep 2019) -------------------------------------- (Changes that can break existing programs are marked with a "*") ### Runtime system: * #1725, #2279: Deprecate Obj.set_tag and Obj.truncate   (Stephen Dolan, review by Gabriel Scherer, Damien Doligez and Xavier Leroy) * #2240: Constify "identifier" in struct custom_operations   (Cedric Cellier, review by Xavier Leroy) * #2293: Constify "caml_named_value"   (Stephen Dolan, review by Xavier Leroy) - #8787, #8788: avoid integer overflow in caml_output_value_to_bytes   (Jeremy Yallop, report by Marcello Seri) - #2075, #7729: rename _T macro used to support Unicode in the (Windows) runtime   in order to avoid compiler warning   (Nicolás Ojeda Bär, review by Gabriel Scherer and David Allsopp) - #2250: Remove extra integer sign-extension in compare functions   (Stefan Muenzel, review by Xavier Leroy) - #8607: Remove obsolete macros for pre-2002 MSVC support   (Stephen Dolan, review by Nicolás Ojeda Bär and David Allsopp) - #8656: Fix a bug in [caml_modify_generational_global_root]   (Jacques-Henri Jourdan, review by Gabriel Scherer) ### Standard library: - #2262: take precision (.) and flags ('+' and ' ') into account   in printf %F   (Pierre Roux, review by Gabriel Scherer) - #6148, #8596: optimize some buffer operations   (Damien Doligez, reports by John Whitington and Alain Frisch,    review by Jeremy Yallop and Gabriel Scherer) ### Other libraries: * #2318: Delete the graphics library. This library is now available   as a separate "graphics" package in opam. Its new home is:   https://github.com/ocaml/graphics   (Jérémie Dimino, review by Nicolas Ojeda Bar, Xavier Leroy and    Sébastien Hinderer) * #2289: Delete the vmthreads library. This library was deprecated in 4.08.0.   (Jérémie Dimino) - #2112: Fix Thread.yield unfairness with busy threads yielding to each   other.   (Andrew Hunter, review by Jacques-Henri Jourdan, Spiros Eliopoulos, Stephen   Weeks, & Mark Shinwell) - #7903, #2306: Make Thread.delay interruptible by signals again   (Xavier Leroy, review by Jacques-Henri Jourdan and Edwin Török) - #2248: Unix alloc_sockaddr: Fix read of uninitialized memory for an   unbound Unix socket. Add support for receiving abstract (Linux) socket paths.   (Tim Cuthbertson, review by Sébastien Hinderer and Jérémie Dimino) ### Compiler user-interface and warnings: * #2276: Remove support for compiler plugins and hooks (also adds   [Dynlink.unsafe_get_global_value])   (Mark Shinwell, Xavier Clerc, review by Nicolás Ojeda Bär,   Florian Angeletti, David Allsopp and Xavier Leroy) - #2301: Hint on type error on int literal   (Jules Aguillon, review by Nicolás Ojeda Bär , Florian Angeletti,   Gabriel Scherer and Armaël Guéneau) * #2314: Remove support for gprof profiling.   (Mark Shinwell, review by Xavier Clerc and Stephen Dolan) - #2190: fix pretty printing (using Pprintast) of "lazy ..." patterns and   "fun (type t) -> ..." expressions.   (Nicolás Ojeda Bär, review by Gabriel Scherer) - #2277: Use newtype names as type variable names   The inferred type of (fun (type t) (x : t) -> x)   is now printed as ('t -> 't) rather than ('a -> 'a).   (Matthew Ryan) - #2309: New options -with-runtime and -without-runtime in ocamlopt/ocamlc   that control the inclusion of the runtime system in the generated program.   (Lucas Pluvinage, review by Daniel Bünzli, Damien Doligez, David Allsopp    and Florian Angeletti) - #3819, #8546 more explanations and tests for illegal permutation   (Florian Angeletti, review by Gabriel Scherer) - #8537: fix the -runtime-variant option for bytecode   (Damien Doligez, review by David Allsopp) - #8541: Correctly print multi-lines locations   (Louis Roché, review by Gabriel Scherer) - #8579: Better error message for private constructors   of an extensible variant type   (Guillaume Bury, review by many fine eyes) ### Code generation and optimizations: - #2278: Remove native code generation support for 32-bit Intel macOS,   iOS and other Darwin targets.   (Mark Shinwell, review by Nicolas Ojeda Bar and Xavier Leroy) - #8547: Optimize matches that are an affine function of the input.   (Stefan Muenzel, review by Alain Frisch, Gabriel Scherer) - #1904, #7931: Add FreeBSD/aarch64 support   (Greg V, review by Sébastien Hinderer, Stephen Dolan, Damien Doligez    and Xavier Leroy) - #8507: Shorten symbol names of anonymous functions in Flambda mode   (the directory portions are now hidden)   (Mark Shinwell, review by Nicolás Ojeda Bär) - #8681, #8699, #8712: Fix code generation with nested let rec of functions.   (Stephen Dolan, Leo White, Gabriel Scherer and Pierre Chambart,    review by Gabriel Scherer, reports by Alexey Solovyev and Jonathan French) ### Manual and documentation: - #7584, #8538: Document .cmt* files in the "overview" of ocaml{c,opt}   (Oxana Kostikova, rewiew by Florian Angeletti) - #8757: Rename Pervasives to Stdlib in core library documentation.   (Ian Zimmerman, review by David Allsopp) - #8515: manual, precise constraints on reexported types   (Florian Angeletti, review by Gabriel Scherer) ### Tools: - #2221: ocamldep will now correctly allow a .ml file in an include directory   that appears first in the search order to shadow a .mli appearing in a later   include directory.   (Nicolás Ojeda Bär, review by Florian Angeletti) ### Internal/compiler-libs changes: - #1579: Add a separate types for clambda primitives   (Pierre Chambart, review by Vincent Laviron and Mark Shinwell) - #1965: remove loop constructors in Cmm and Mach   (Vincent Laviron) - #1973: fix compilation of catches with multiple handlers   (Vincent Laviron) - #2228, #8545: refactoring the handling of .cmi files   by moving the logic from Env to a new module Persistent_env   (Gabriel Scherer, review by Jérémie Dimino and Thomas Refis) - #2229: Env: remove prefix_idents cache   (Thomas Refis, review by Frédéric Bour and Gabriel Scherer) - #2237, #8582: Reorder linearisation of Trywith to avoid a call instruction   (Vincent Laviron and Greta Yorsh, additional review by Mark Shinwell;   fix in #8582 by Mark Shinwell, Xavier Leroy and Anil Madhavapeddy) - #2265: Add bytecomp/opcodes.mli   (Mark Shinwell, review by Nicolas Ojeda Bar) - #2268: Improve packing mechanism used for building compilerlibs modules   into the Dynlink libraries   (Mark Shinwell, Stephen Dolan, review by David Allsopp) - #2280: Don't make more Clambda constants after starting Cmmgen   (Mark Shinwell, review by Vincent Laviron) - #2281: Move some middle-end files around   (Mark Shinwell, review by Pierre Chambart and Vincent Laviron) - #2283: Add [is_prefix] and [find_and_chop_longest_common_prefix] to   [Misc.Stdlib.List]   (Mark Shinwell, review by Alain Frisch and Stephen Dolan) - #2284: Add various utility functions to [Misc] and remove functions   from [Misc.Stdlib.Option] that are now in [Stdlib.Option]   (Mark Shinwell, review by Thomas Refis) - #2286: Functorise [Consistbl]   (Mark Shinwell, review by Gabriel Radanne) - #2291: Add [Compute_ranges] pass   (Mark Shinwell, review by Vincent Laviron) - #2292: Add [Proc.frame_required] and [Proc.prologue_required].   Move tail recursion label creation to [Linearize].  Correctly position   [Lprologue] relative to [Iname_for_debugger] operations.   (Mark Shinwell, review by Vincent Laviron) - #2308: More debugging information on [Cmm] terms   (Mark Shinwell, review by Stephen Dolan) - #7878, #8542: Replaced TypedtreeIter with tast_iterator   (Isaac "Izzy" Avram, review by Gabriel Scherer and Nicolás Ojeda Bär) - #8598: Replace "not is_nonexpansive" by "maybe_expansive".   (Thomas Refis, review by David Allsopp, Florian Angeletti, Gabriel Radanne,    Gabriel Scherer and Xavier Leroy) ### Compiler distribution build system: - #2267: merge generation of header programs, also fixing parallel build on   Cygwin.   (David Allsopp, review by Sébastien Hinderer) - #8514: Use boot/ocamlc.opt for building, if available.   (Stephen Dolan, review by Gabriel Scherer) ### Bug fixes: - #8864, #8865: Fix native compilation of left shift by (word_size - 1)   (Vincent Laviron, report by Murilo Giacometti Rocha, review by Xavier Leroy) - #2296: Fix parsing of hexadecimal floats with underscores in the exponent.   (Hugo Heuzard and Xavier Leroy, review by Gabriel Scherer) - #8800: Fix soundness bug in extension constructor inclusion   (Leo White, review by Jacques Garrigue) - #8848: Fix x86 stack probe CFI information in caml_c_call and   caml_call_gc   (Tom Kelly, review by Xavier Leroy) - #7156, #8594: make top level use custom printers if they are available   (Andrew Litteken, report by Martin Jambon, review by Nicolás Ojeda Bär,    Thomas Refis, Armaël Guéneau, Gabriel Scherer, David Allsopp) - #3249: ocamlmklib should reject .cmxa files   (Xavier Leroy) - #7937, #2287: fix uncaught Unify exception when looking for type   declaration   (Florian Angeletti, review by Jacques Garrigue) - #8610, #8613: toplevel printing, consistent deduplicated name for types   (Florian Angeletti, review by Thomas Refis and Gabriel Scherer,    reported by Xavier Clerc) - #8635, #8636: Fix a bad side-effect of the -allow-approx option of   ocamldep. It used to turn some errors into successes   (Jérémie Dimino) - #8701, #8725: Variance of constrained parameters causes principality issues   (Jacques Garrigue, report by Leo White, review by Gabriel Scherer) - #8777(partial): fix position information in some polymorphic variant   error messages about missing tags   (Florian Angeletti, review by Thomas Refis) - #8779, more cautious variance computation to avoid missing cmis   (Florian Angeletti, report by Antonio Nuno Monteiro, review by Leo White) - #8810: Env.lookup_module: don't allow creating loops   (Thomas Refis, report by Leo White, review by Jacques Garrigue) - #8862, #8871: subst: preserve scopes   (Thomas Refis, report by Leo White, review by Jacques Garrigue) - #8921, #8924: Fix stack overflow with Flambda   (Vincent Laviron, review by Pierre Chambart and Leo White,    report by Aleksandr Kuzmenko) - #8944: Fix "open struct .. end" on clambda backend   (Thomas Refis, review by Leo White, report by Damon Wang and Mark Shinwell)