* [Caml-list] OCaml 4.12.0, first alpha release @ 2020-11-16 10:37 Florian Angeletti 2020-12-01 10:34 ` [Caml-list] OCaml 4.12.0, second " Florian Angeletti 0 siblings, 1 reply; 3+ messages in thread From: Florian Angeletti @ 2020-11-16 10:37 UTC (permalink / raw) To: caml-list Dear OCaml users, The set of new features for the future version 4.12.0 of OCaml has been frozen, maybe a little earlier than expected. In this new version of OCaml, the gap between the mainline and multicore runtime has been considerably narrowed. Moreover, this new version comes with a port to the newly launched macOs/ARM architecture. We are thus planning to have a shorter release cycle this time around to get this new version out the door as soon as sensible — which probably translates to the beginning of January. I am thus happy to announce the first alpha release for OCaml 4.12.0 . This alpha version is here to help fellow hackers join us early in our bug hunting and opam ecosystem fixing fun. You can see the progress on this front at: https://github.com/ocaml/opam-repository/issues/17530 Once the major tools are supported, we will switch to beta releases. And since changes are more fun when they come in pair, we are also testing a new layout for the opam compiler packages. The base compiler can now be installed as an opam switch with the following commands opam update opam switch create 4.12.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git If you want to tweak the configuration of the compiler, the new layout offers much finer-grained options. The new command looks like this: opam update opam switch create <switch_name> --packages=ocaml-variants.4.12.0~alpha1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and no-flat-float-array switch: opam switch create 4.12.0~alpha1+flambda+nffa --packages=ocaml-variants.4.12.0~alpha1+options,ocaml-option-flambda,ocaml-option-no-flat-float-array --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git All available options can be listed with "opam search ocaml-option". If you want to test this version, it is advised to install the alpha opam repository 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 fixes in the process of being upstreamed. The source code for the alpha is also available at these addresses: https://github.com/ocaml/ocaml/archive/4.12.0-alpha1.tar.gz https://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~alpha1.tar.gz If you find any bugs, please report them here: https://github.com/ocaml/ocaml/issues If you are interested by the ongoing list of new features and fixed bugs, the updated change log for OCaml 4.12.0 is available at: https://github.com/ocaml/ocaml/blob/4.12/Changes Happy hacking, Florian Angeletti for the OCaml team. ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Caml-list] OCaml 4.12.0, second alpha release 2020-11-16 10:37 [Caml-list] OCaml 4.12.0, first alpha release Florian Angeletti @ 2020-12-01 10:34 ` Florian Angeletti 2020-12-18 8:31 ` [Caml-list] OCaml 4.12.0, third " Florian Angeletti 0 siblings, 1 reply; 3+ messages in thread From: Florian Angeletti @ 2020-12-01 10:34 UTC (permalink / raw) To: caml-list 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 change that restricted the propagation of type information between branches of a "match". The newly introduced warning was more troublesome than expected, the feature has been thus postponed to 4.13 . The base compiler can be installed as an opam switch with the following commands opam update opam switch create 4.12.0~alpha2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git If you want to tweak the configuration of the compiler, you can pick configuration options with opam update opam switch create <switch_name> --packages=ocaml-variants.4.12.0~alpha2+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and afl enabled switch: opam switch create 4.12.0~alpha2+flambda+afl --packages=ocaml-variants.4.12.0~alpha2+options,ocaml-option-flambda,ocaml-option-afl --repositories=default,beta=git+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 repository 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 warning. (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 = struct type 'a t = '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 definition injective, this only makes sense for type abbreviations: type !'a t = '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=b=2. (David Allsopp, review by Gabriel Scherer and Xavier Leroy) - #10050: update {PUSH,}OFFSETCLOSURE* bytecode instructions to match new representation for closures (Nathanaël 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=0 for the mingw-w64 ports to 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 state (Damien Doligez, report by Anders Fugmann, review by Jacques-Henri Jourdan) - #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 constructors. A regression that dates back to 4.08 makes extensible-datatype constructors with inline records very fragile, for example: type 'a t += X of {x : 'a} (Gabriel Scherer, review by Thomas Refis and Leo White, report by Nicolás Ojeda Bär) ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Caml-list] OCaml 4.12.0, third alpha release 2020-12-01 10:34 ` [Caml-list] OCaml 4.12.0, second " Florian Angeletti @ 2020-12-18 8:31 ` Florian Angeletti 0 siblings, 0 replies; 3+ messages in thread From: Florian Angeletti @ 2020-12-18 8:31 UTC (permalink / raw) To: caml-list Dear OCaml users, The release of OCaml 4.12.0 is approaching. We have released a third 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 contains two small API fixes for statmemprof and the Unix module. (Keen-eyed readers might notice a breaking change in the change log below but this concerns a corner case of a corner case of the type system that should not affect anyone.) The base compiler can be installed as an opam switch with the following commands opam update opam switch create 4.12.0~alpha3 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git If you want to tweak the configuration of the compiler, you can pick configuration options with opam update opam switch create <switch_name> --packages=ocaml-variants.4.12.0~alpha3+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and afl enabled switch: opam switch create 4.12.0~alpha3+flambda+afl --packages=ocaml-variants.4.12.0~alpha3+options,ocaml-option-flambda,ocaml-option-afl --repositories=default,beta=git+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-alpha3.tar.gz https://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~alpha3.tar.gz If you want to test this version, it is advised to install the alpha opam repository 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 second alpha: ------------------------------ + #1128, #7503, #9036, #9722, +#10069: EINTR-based signal handling. When a signal arrives, avoid running its OCaml handler in the middle of a blocking section. Instead, allow control to return quickly to a polling point where the signal handler can safely run, ensuring that - #9907: Fix native toplevel on native Windows. (David Allsopp, review by Florian Angeletti) - #10056: Memprof: ensure young_trigger is within the bounds of the minor heap in caml_memprof_renew_minor_sample (regression from #8684) (David Allsopp, review by Guillaume Munch-Maccagnoni and Jacques-Henri Jourdan) - #10062: set ARCH_INT64_PRINTF_FORMAT correctly for both modes of mingw-w64 (David Allsopp, review by Xavier Leroy) - #10025: Track custom blocks (e.g. Bigarray) with Statmemprof (Stephen Dolan, review by Leo White, Gabriel Scherer and Jacques-Henri Jourdan) - #10070: Fix Float.Array.blit when source and destination arrays coincide. (Nicolás Ojeda Bär, review by Alain Frisch and Xavier Leroy) + #9869, +#10073: Add Unix.SO_REUSEPORT (Yishuai Li, review by Xavier Leroy, amended by David Allsopp) - #9877: manual, warn that multi-index indexing operators should be defined in conjunction of single-index ones. (Florian Angeletti, review by Hezekiah M. Carty, Gabriel Scherer, and Marcello Seri) - #10046: Link all DLLs with -static-libgcc on mingw32 to prevent dependency on libgcc_s_sjlj-1.dll with mingw-w64 runtime 8.0.0 (previously this was only needed for dllunix.dll). (David Allsopp, report by Andreas Hauptmann, review by Xavier Leroy) - #9896: Share the strings representing scopes, fixing some regression on .cmo/.cma sizes (Alain Frisch and Xavier Clerc, review by Gabriel Scherer) - #10044: Always report the detected ARCH, MODEL and SYSTEM, even for bytecode- only builds (fixes a "configuration regression" from 4.08 for the Windows builds) (David Allsopp, review by Xavier Leroy) - #10071: Fix bug in tests/misc/weaklifetime.ml that was reported in #10055 (Damien Doligez and Gabriel Scherer, report by David Allsopp) * #8907, #9878: `Typemod.normalize_signature` uses wrong environment Does not treat submodules differently when normalizing conjunctive types in polymorphic variants. This may break code that expose conjunctive types in inferred interface. (Jacques Garrigue, report and review by Leo White) - #9739, #9747: Avoid calling type variables, types that are not variables in recursive occurence error messages (for instance, "Type variable int occurs inside int list") (Florian Angeletti, report by Stephen Dolan, review by Armaël Guéneau) - #10048: Fix bug with generalized local opens. (Leo White, review by Thomas Refis) ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-12-18 8:31 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-16 10:37 [Caml-list] OCaml 4.12.0, first alpha release Florian Angeletti 2020-12-01 10:34 ` [Caml-list] OCaml 4.12.0, second " Florian Angeletti 2020-12-18 8:31 ` [Caml-list] OCaml 4.12.0, third " Florian Angeletti
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox