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 D6FD05D5 for ; Tue, 1 Dec 2020 10:34:45 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.78,384,1599516000"; d="scan'208";a="480417998" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 01 Dec 2020 11:34:36 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 67B6AE015F; Tue, 1 Dec 2020 11:34:34 +0100 (CET) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 62202E00A6 for ; Tue, 1 Dec 2020 11:34:30 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.78,384,1599516000"; d="scan'208";a="480417930" X-MGA-submission: =?us-ascii?q?MDECffcfB/qB9dP/4Z+0Lxj9+u21AEqPtpH1y6?= =?us-ascii?q?UlVW2R4X2v4OZViVyJkzV5SKXpFQQhZDOmCW5+vWzdsVODSZRf03b+ZG?= =?us-ascii?q?73zFjrDCsR7bGL+jO8Bi7rnorV8S9M4Q3PhyevGJO5QxzAS1hfBenh9r?= =?us-ascii?q?msPNHHUqpL+AFqbaSMzay/mQ=3D=3D?= Received: from zcs-store1.inria.fr ([128.93.142.28]) by mail2-relais-roc.national.inria.fr with ESMTP; 01 Dec 2020 11:34:05 +0100 Date: Tue, 1 Dec 2020 11:34:05 +0100 (CET) From: Florian Angeletti To: caml-list Message-ID: <1918117305.106893276.1606818845424.JavaMail.zimbra@inria.fr> In-Reply-To: <21bbad4a-a932-0213-3bb4-6ab7e92b054a@inria.fr> References: <21bbad4a-a932-0213-3bb4-6ab7e92b054a@inria.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [92.128.93.158] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - FF83 (Linux)/8.8.15_GA_3968) Thread-Topic: OCaml 4.12.0, second alpha release Thread-Index: V9S5Gj3X2dFFYFebpy0G3MuP7uhoiw== Subject: [Caml-list] OCaml 4.12.0, second alpha release Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 18296 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Dear OCaml users, The release of OCaml 4.12.0 is approaching. We have released a second alpha version to help fellow hackers join us early in our bug hunting and opam ecosystem fixing fun. Beyond the usual bug fixes this new alpha version removes the type system c= hange that restricted the propagation of type information between branches of a "match= ". The newly introduced warning was more troublesome than expected, the featur= e has been thus postponed to 4.13 . The base compiler can be installed as an opam switch with the following com= mands opam update opam switch create 4.12.0~alpha2 --repositories=3Ddefault,beta=3Dgit+https:= //github.com/ocaml/ocaml-beta-repository.git If you want to tweak the configuration of the compiler, you can pick config= uration options with opam update opam switch create --packages=3Docaml-variants.4.12.0~alpha2+= options, --repositories=3Ddefault,beta=3Dgit+https://github.co= m/ocaml/ocaml-beta-repository.git where is a comma separated list of ocaml-option-* packages. F= or instance, for a flambda and afl enabled switch: opam switch create 4.12.0~alpha2+flambda+afl --packages=3Docaml-variants.4.= 12.0~alpha2+options,ocaml-option-flambda,ocaml-option-afl --repositories=3D= default,beta=3Dgit+https://github.com/ocaml/ocaml-beta-repository.git All available options can be listed with "opam search ocaml-option". The source code for the alpha is also available at these addresses: https://github.com/ocaml/ocaml/archive/4.12.0-alpha2.tar.gz https://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~alpha2.tar.gz If you want to test this version, it is advised to install the alpha opam r= epository https://github.com/kit-ty-kate/opam-alpha-repository with opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git This alpha repository contains various packages patched with fixes in the process of being upstreamed. Once the repository installed, these patched packages will take precedence over the non-patched version. If you find any bugs, please report them here: https://github.com/ocaml/ocaml/issues Happy hacking, -- Florian Angeletti for the OCaml team. Changes from the first alpha: ---------------------------- ## Removed feature -* #9811: remove propagation from previous branches Type information inferred from previous branches was propagated in non-principal mode. Revert this for better compatibility with -principal mode. For the time being, infringing code should result in a principality warni= ng. (Jacques Garrigue, review by Thomas Refis and Gabriel Scherer) ## New bug fixes Entries marked with "+" contains were already present in the previous alpha but contain more bug fixes + #9500, #9727, #9866, #9870, +#9873: Injectivity annotations One can now mark type parameters as injective, which is useful for abstract types: module Vec : sig type !'a t end =3D struct type 'a t =3D 'a array end On non-abstract types, this can be used to check the injectivity of parameters. Since all parameters of record and sum types are by definitio= n injective, this only makes sense for type abbreviations: type !'a t =3D 'a list Note that this change required making the regularity check stricter. (Jacques Garrigue, review by Jeremy Yallop and Leo White) - #2195: Improve error message in bytecode stack trace printing and load debug information during bytecode startup if OCAMLRUNPARAM=3Db=3D2. (David Allsopp, review by Gabriel Scherer and Xavier Leroy) - #10050: update {PUSH,}OFFSETCLOSURE* bytecode instructions to match new representation for closures (Nathana=EBl Courant, review by Xavier Leroy) - #10035: Make sure that flambda respects atomicity in the Atomic module. (Guillaume Munch-Maccagnoni, review by Gabriel Scherer) - #8796: On Windows, make Unix.utimes use FILE_FLAG_BACKUP_SEMANTICS flag to allow it to work with directories. (Daniil Baturin, review by Damien Doligez) - #10008: Improve error message for aliases to the current compilation unit= . (Leo White, review by Gabriel Scherer) - #9938, #9939: Define __USE_MINGW_ANSI_STDIO=3D0 for the mingw-w64 ports t= o prevent their C99-compliant snprintf conflicting with ours. (David Allsopp, report by Michael Soegtrop, review by Xavier Leroy) - #7813, #9955: make sure the major GC cycle doesn't get stuck in Idle stat= e (Damien Doligez, report by Anders Fugmann, review by Jacques-Henri Jourda= n) - #9991: Fix reproducibility for `-no-alias-deps` (Leo White, review by Gabriel Scherer and Florian Angeletti) - #9998: Use Sys.opaque_identity in CamlinternalLazy.force This removes extra warning 59 messages when compiling afl-instrumented code with flambda -O3. (Vincent Laviron, report by Louis Gesbert, review by Gabriel Scherer and Pierre Chambart) - #9999: fix -dsource printing of the pattern (`A as x | (`B as x)). (Gabriel Scherer, report by Anton Bachin, review by Florian Angeletti) - #9970, #10010: fix the declaration scope of extensible-datatype construct= ors. A regression that dates back to 4.08 makes extensible-datatype constructo= rs with inline records very fragile, for example: type 'a t +=3D X of {x : 'a} (Gabriel Scherer, review by Thomas Refis and Leo White, report by Nicol=E1s Ojeda B=E4r)