diff options
author | Florian Angeletti <florian.angeletti@inria.fr> | 2022-03-28 11:04:59 +0200 |
---|---|---|
committer | Florian Angeletti <florian.angeletti@inria.fr> | 2022-03-28 11:35:22 +0200 |
commit | 80b20ed92ca2b8bb02d9e45925ab7c85917832bc (patch) | |
tree | b795004e9a88a048d9173820361ef97068166ff5 | |
parent | fea7946d27acfc25e6e4ea4a937421de983c0f4f (diff) | |
download | ocaml-80b20ed92ca2b8bb02d9e45925ab7c85917832bc.tar.gz |
Changes: split highlights
-rw-r--r-- | Changes | 111 |
1 files changed, 62 insertions, 49 deletions
@@ -1,35 +1,84 @@ OCaml 4.14.0 ---------------- -### Language features: - -- #10462: Add attribute to produce a compiler error for polls. - (Sadiq Jaffer, review by Mark Shinwell, Stephen Dolan - and Guillaume Munch-Maccagnoni) +### Language features (highlights): - #10437: Allow explicit binders for type variables. (Stephen Dolan, review by Leo White) -- #10441: Remove unnecessary parentheses surrounding immediate objects. - Allow 'object ... end # f', 'f object ... end', etc. - (Yan Dong, review by Nicolás Ojeda Bär, Florian Angeletti and Gabriel Scherer) - - #181, #9760, #10740: opt-in tail-modulo-cons (TMC) transformation let[@tail_mod_cons] rec map f li = ... (Frédéric Bour, Gabriel Scherer, Basile Clément, review by Basile Clément and Pierre Chambart, tested by Konstantin Romanov) +### Runtime system (highlights): + +- #10195, #10680: Speed up GC by prefetching during marking + (Stephen Dolan, review by Xavier Leroy, Guillaume Munch-Maccagnoni, + Jacques-Henri Jourdan, Damien Doligez and Leo White) + +### Code generation and optimizations (highlights): + +- #10595: Tail calls with up to 64 arguments are guaranteed to be compiled + as tail calls. To this end, memory locations in the domain state + are used for passing arguments that do not fit in registers. + (Xavier Leroy, review by Vincent Laviron) + +### Standard library (highlights): + +* #10710: Add UTF tools, codecs and validations to the Uchar, Bytes and + String modules. + (Daniel Bünzli, review by Florian Angeletti, Nicolás Ojeda Bär, Alain + Frisch and Gabriel Scherer) + +* #10482: mark the Stream and Genlex modules as deprecated, in preparation + for a future removal. These modules (without deprecation alert) + are now provided by the camlp-streams library. + (Xavier Leroy, review by Nicolás Ojeda Bär) + +- #10545: Add In_channel and Out_channel modules. + (Nicolás Ojeda Bär, review by Daniel Bünzli, Simon Cruanes, Gabriel Scherer, + Guillaume Munch-Maccagnoni, Alain Frisch and Xavier Leroy) + +### Compiler user-interface and warnings (highlights) + +- #10328, #10780: Give more precise error when disambiguation could not + possibly work. + (Leo White, review by Gabriel Scherer and Florian Angeletti) + +- #10361: Improve error messages for mismatched record and variant + definitions. + (Florian Angeletti, review by Gabriel Radanne and Gabriel Scherer) + +- #10407: Produce more detailed error messages that contain full error traces + when module inclusion fails. + (Antal Spector-Zabusky, review by Florian Angeletti) + +### Internal/compiler-libs changes (highlights): + +- #10718, #11012: Add "Shape" information to the cmt files. Shapes are an + abstraction of modules that can be used by external tooling to perform + definition-aware operations. + (Ulysse Gérard, Thomas Refis and Leo White, review by Florian Angeletti) + + +### Language features: + +- #10462: Add attribute to produce a compiler error for polls. + (Sadiq Jaffer, review by Mark Shinwell, Stephen Dolan + and Guillaume Munch-Maccagnoni) + +- #10441: Remove unnecessary parentheses surrounding immediate objects. + Allow 'object ... end # f', 'f object ... end', etc. + (Yan Dong, review by Nicolás Ojeda Bär, Florian Angeletti and Gabriel Scherer) + ### Runtime system: * #9391, #9424: Fix failed assertion in runtime due to ephemerons *set_* and *blit_* function during Mark phase (François Bobot, reported by Stephen Dolan, reviewed by Damien Doligez) -- #10195, #10680: Speed up GC by prefetching during marking - (Stephen Dolan, review by Xavier Leroy, Guillaume Munch-Maccagnoni, - Jacques-Henri Jourdan, Damien Doligez and Leo White) - - #10549: Stack overflow detection and naked pointers checking for ARM64 (Xavier Leroy, review by Stephen Dolan) @@ -57,11 +106,6 @@ OCaml 4.14.0 and long register allocation times. (Xavier Leroy, report by Edwin Török, review by Nicolás Ojeda Bär) -- #10595: Tail calls with up to 64 arguments are guaranteed to be compiled - as tail calls. To this end, memory locations in the domain state - are used for passing arguments that do not fit in registers. - (Xavier Leroy, review by Vincent Laviron) - - #10681: Enforce boolean conditions for the native backend (Vincent Laviron, review by Gabriel Scherer) @@ -76,11 +120,6 @@ OCaml 4.14.0 ### Standard library: -* #10710: Add UTF tools, codecs and validations to the Uchar, Bytes and - String modules. - (Daniel Bünzli, review by Florian Angeletti, Nicolás Ojeda Bär, Alain - Frisch and Gabriel Scherer) - * #10622: Annotate `Uchar.t` with immediate attribute (Hongbo Zhang, reivew by Gabriel Scherer and Nicolás Ojeda Bär) @@ -88,11 +127,6 @@ OCaml 4.14.0 is actually a suffix of `name` and raises Invalid_argument otherwise. (Xavier Leroy, report by whitequark, review by David Allsopp) -* #10482: mark the Stream and Genlex modules as deprecated, in preparation - for a future removal. These modules (without deprecation alert) - are now provided by the camlp-streams library. - (Xavier Leroy, review by Nicolás Ojeda Bär) - - #10526: add Random.bits32, Random.bits64, Random.nativebits (Xavier Leroy, review by Gabriel Scherer and François Bobot) @@ -101,10 +135,6 @@ OCaml 4.14.0 by the functions from module Marshal) (François Pottier, review by Gabriel Scherer and Kate Deplaix) -- #10545: Add In_channel and Out_channel modules. - (Nicolás Ojeda Bär, review by Daniel Bünzli, Simon Cruanes, Gabriel Scherer, - Guillaume Munch-Maccagnoni, Alain Frisch and Xavier Leroy) - - #10538: add Out_channel.set_buffered and Out_channel.is_buffered to control the buffering mode of output channels. (Nicolás Ojeda Bär, review by John Whitington, Daniel Bünzli, David Allsopp @@ -243,18 +273,6 @@ OCaml 4.14.0 ### Compiler user-interface and warnings: -- #10328, #10780: Give more precise error when disambiguation could not - possibly work. - (Leo White, review by Gabriel Scherer and Florian Angeletti) - -- #10361: Improve error messages for mismatched record and variant - definitions. - (Florian Angeletti, review by Gabriel Radanne and Gabriel Scherer) - -- #10407: Produce more detailed error messages that contain full error traces - when module inclusion fails. - (Antal Spector-Zabusky, review by Florian Angeletti) - - #10531: add naked_pointers to ocamlc -config exporting NAKED_POINTERS from Makefile.config. (Damien Doligez, review by Mark Shinwell and Gabriel Scherer) @@ -378,11 +396,6 @@ OCaml 4.14.0 (David Allsopp and Nathan Rebours, review by Louis Gesbert, Nicolás Ojeda Bär and Gabriel Scherer) -- #10718, #11012: Add "Shape" information to the cmt files. Shapes are an - abstraction of modules that can be used by external tooling to perform - definition-aware operations. - (Ulysse Gérard, Thomas Refis and Leo White, review by Florian Angeletti) - - #10742: strong call-by-need reduction for shapes (Gabriel Scherer and Nathanaëlle Courant, review by Florian Angeletti, Ulysse Gérard and Thomas Refis) |