reorder 4.06 Changes entries

master
Gabriel Scherer 2017-11-03 10:48:51 +00:00
parent 06378740e6
commit 37b92ad556
1 changed files with 114 additions and 112 deletions

226
Changes
View File

@ -68,19 +68,15 @@ Release branch for 4.06:
### Language features:
- MPR#6271, MPR#7529, GPR#1249: Support "let open M in ..."
in class expressions and class type expressions.
(Alain Frisch, reviews by Thomas Refis and Jacques Garrigue)
- GPR#792: fix limitations of destructive substitutions, by
allowing "S with type t := type-expr",
"S with type M.t := type-expr", "S with module M.N := path"
(Valentin Gatien-Baron, review by Jacques Garrigue and Leo White)
- GPR#1118: Support inherited field in object type expression
(Runhang Li, reivew by Jeremy Yallop, Leo White, Jacques Garrigue,
and Florian Angeletti)
- MPR#6271, MPR#7529, GPR#1249: Support "let open M in ..."
in class expressions and class type expressions.
(Alain Frisch, reviews by Thomas Refis and Jacques Garrigue)
* GPR#1064, GPR#1392: extended indexing operators, add a new class of
user-defined indexing operators, obtained by adding at least
one operator character after the dot symbol to the standard indexing
@ -91,6 +87,10 @@ Release branch for 4.06:
e.g. "<f:'a.?opt:int->unit>" must now be written "<f:'a. ?opt:int->unit>".
(Florian Angeletti, review by Damien Doligez and Gabriel Radanne)
- GPR#1118: Support inherited field in object type expression
(Runhang Li, reivew by Jeremy Yallop, Leo White, Jacques Garrigue,
and Florian Angeletti)
- GPR#1142: Mark assertions nonexpansive, so that 'assert false'
can be used as a placeholder for a polymorphic function.
(Stephen Dolan)
@ -122,8 +122,8 @@ Release branch for 4.06:
### Type system
* GPR#556, PR#7215, PR#7231, PR#6738: Add a new check that 'let rec' bindings
are well formed.
* MPR#6738, MPR#7215, MPR#7231, GPR#556: Add a new check that 'let rec'
bindings are well formed.
(Jeremy Yallop, reviews by Stephen Dolan, Gabriel Scherer, Leo
White, and Damien Doligez)
@ -131,7 +131,7 @@ Release branch for 4.06:
remains in some inferred signatures, which leads to strange errors
(Jacques Garrigue, report by Mandrikin)
- MP#7617, #7618, GPR#1318: Ambiguous (mistakenly) type escaping the
- MPR#7617, MPR#7618, GPR#1318: Ambiguous (mistakenly) type escaping the
scope of its equation
(Jacques Garrigue, report by Thomas Refis)
@ -170,10 +170,6 @@ Release branch for 4.06:
(Markus Mottl, review by Hezekiah M. Carty, Jeremie Dimino, Damien Doligez,
Alain Frisch, Xavier Leroy, Gabriel Scherer and Mark Shinwell)
- GPR#997, GPR#1077: Deprecate Bigarray.*.map_file and add Unix.map_file as a
first step towards moving Bigarray to the stdlib
(Jérémie Dimino and Xavier Leroy)
- GPR#1034: Add List.init
(Richard Degenne, review by David Allsopp, Thomas Braibant, Florian
Angeletti, Gabriel Scherer, Nathan Moreau, Alain Frisch)
@ -193,59 +189,48 @@ Release branch for 4.06:
submodules.
(Florian Angeletti)
- GPR#1217: Restrict Unix.environment in privileged contexts; add
Unix.unsafe_environment.
(Jeremy Yallop, review by Mark Shinwell, Nicolas Ojeda Bar,
Damien Doligez and Hannes Mehnert)
* GPR#1306: In the MSVC and Mingw ports, "Sys.rename src dst" no longer fails if
file "dst" exists, but replaces it with file "src", like in the other ports.
(Xavier Leroy)
- GPR#1314: use the optional width information when formatting a boolean
(Xavier Clerc, review by Gabriel Scherer)
* In the MSVC and Mingw ports, "Sys.rename src dst" no longer fails if
file "dst" exists, but replaces it with file "src", like in the other ports.
(Xavier Leroy)
- Resurrect tabulation boxes in module Format. Rewrite/extend documentation
of tabulation boxes.
- c9cc0f25138ce58e4f4e68c4219afe33e2a9d034: Resurrect tabulation boxes
in module Format. Rewrite/extend documentation of tabulation boxes.
(Pierre Weis)
### Other libraries:
- GPR#997, GPR#1077: Deprecate Bigarray.*.map_file and add Unix.map_file as a
first step towards moving Bigarray to the stdlib
(Jérémie Dimino and Xavier Leroy)
* GPR#1178: remove the Num library for arbitrary-precision arithmetic.
It now lives as a separate project https://github.com/ocaml/num
with an OPAM package called "num".
(Xavier Leroy)
- GPR#1217: Restrict Unix.environment in privileged contexts; add
Unix.unsafe_environment.
(Jeremy Yallop, review by Mark Shinwell, Nicolas Ojeda Bar,
Damien Doligez and Hannes Mehnert)
- GPR#1321: Reimplement Unix.isatty on Windows. It no longer returns true for
the null device.
(David Allsopp)
### Compiler user-interface and warnings:
- GPR##1332: fix ocamlc handling of "-output-complete-obj"
- MPR#7444, GPR#1138: trigger deprecation warning when a "deprecated"
attribute is hidden by signature coercion
(Alain Frisch, report by bmillwood, review by Leo White)
- GPR#896: "-compat-32" is now taken into account when building .cmo/.cma
(Hugo Heuzard)
- GPR#948: the compiler now reports warnings-as-errors by prefixing
them with "Error (warning ..):", instead of "Warning ..:" and
a trailing "Error: Some fatal warnings were triggered" message.
(Valentin Gatien-Baron, review by Alain Frisch)
* GPR#1189: allow MSVC ports to use -l option in ocamlmklib
(David Allsopp)
- GPR#1324: ensure that flambda warning are printed only once
(Xavier Clerc)
- MPR#7361, GPR#1248: support "ocaml.warning" in all attribute contexts, and
arrange so that "ocaml.ppwarning" is correctly scoped by surrounding
"ocaml.warning" attributes
(Alain Frisch, review by Florian Angeletti and Thomas Refis)
- MPR#7444, GPR#1138: trigger deprecation warning when a "deprecated"
attribute is hidden by signature coercion
(Alain Frisch, report by bmillwood, review by Leo White)
- MPR#7472: ensure .cmi files are created atomically,
to avoid corruption of .cmi files produced simultaneously by a run
of ocamlc and a run of ocamlopt.
@ -268,6 +253,14 @@ Release branch for 4.06:
in the 4.06 development version
(Alain Frisch, review by Jacques Garrigue, report by Jacques-Pascal Deplaix)
- GPR#896: "-compat-32" is now taken into account when building .cmo/.cma
(Hugo Heuzard)
- GPR#948: the compiler now reports warnings-as-errors by prefixing
them with "Error (warning ..):", instead of "Warning ..:" and
a trailing "Error: Some fatal warnings were triggered" message.
(Valentin Gatien-Baron, review by Alain Frisch)
- GPR#1032: display the output of -dtimings as a hierarchy
(Valentin Gatien-Baron, review by Gabriel Scherer)
@ -279,6 +272,15 @@ Release branch for 4.06:
(Sébastien Hinderer, Jeremy Yallop, Gabriel Scherer, review by
Adrien Nader and David Allsopp)
* GPR#1189: allow MSVC ports to use -l option in ocamlmklib
(David Allsopp)
- GPR#1324: ensure that flambda warning are printed only once
(Xavier Clerc)
- GPR#1332: fix ocamlc handling of "-output-complete-obj"
(François Bobot)
- GPR#1333: turn off warning 40 by default
(Leo White)
@ -296,11 +298,10 @@ Release branch for 4.06:
(Marcell Fischbach and Benedikt Meurer, adapted by Nicolas Ojeda
Bar, review by Nicolas Ojeda Bar and Alain Frisch)
- GPR#850: Optimize away some physical equality
(Pierre Chambart, review by Mark Shinwell and Leo White)
- GPR#856: Register availability analysis
(Mark Shinwell, Thomas Refis, review by Pierre Chambart)
- MPR#6329, GPR#1437: Introduce padding word before "data_end" symbols
to ensure page table tests work correctly on an immediately preceding
block of zero size.
(Mark Shinwell, review by Xavier Leroy)
- MPR#6927, GPR#988: On macOS, when compiling bytecode stubs, plugins,
and shared libraries through -output-obj, generate dylibs instead of
@ -317,9 +318,33 @@ Release branch for 4.06:
- MPR#7531, GPR#1162: Erroneous code transformation at partial applications
(Mark Shinwell)
- MPR#7614, GPR#1313: Ensure that inlining does not depend on the order
of symbols (flambda)
(Leo White, Xavier Clerc, report by Alex, review by Gabriel Scherer
and Pierre Chambart)
- MPR#7616, GPR#1339: don't warn on mutation of zero size blocks.
(Leo White)
- MPR#7631, GPR#1355: "-linscan" option crashes ocamlopt
(Xavier Clerc, report by Paul Steckler)
- MPR#7642, GPR#1411: ARM port: wrong register allocation for integer
multiply on ARMv4 and ARMv5; possible wrong register allocation for
floating-point multiply and add on VFP and for floating-point
negation and absolute value on soft FP emulation.
(Xavier Leroy, report by Stéphane Glondu and Ximin Luo,
review and additional sightings by Mark Shinwell)
* GPR#659: Remove support for SPARC native code generation
(Mark Shinwell)
- GPR#850: Optimize away some physical equality
(Pierre Chambart, review by Mark Shinwell and Leo White)
- GPR#856: Register availability analysis
(Mark Shinwell, Thomas Refis, review by Pierre Chambart)
- GPR#1143: tweaked several allocation functions in the runtime by
checking for likely conditions before unlikely ones and eliminating
some redundant checks.
@ -358,11 +383,6 @@ Release branch for 4.06:
(Mark Shinwell, Xavier Clerc, report and initial debugging by
Valentin Gatien-Baron)
- MPR#7614, GPR#1313: Ensure that inlining does not depend on the order
of symbols (flambda)
(Leo White, Xavier Clerc, report by Alex, review by Gabriel Scherer
and Pierre Chambart)
- GPR#1323: make sure that frame tables are generated in the data
section and not in the read-only data section, as was the case
before in the PPC and System-Z ports. This avoids relocations in
@ -374,24 +394,6 @@ Release branch for 4.06:
reference symbols (even locally-defined ones) through the GOT.
(Mark Shinwell, review by Xavier Leroy)
- MPR#7616, GPR#1339: don't warn on mutation of zero size blocks.
(Leo White)
- MPR#7631, GPR#1355: "-linscan" option crashes ocamlopt
(Xavier Clerc, report by Paul Steckler)
- MPR#7642, GPR#1411: ARM port: wrong register allocation for integer
multiply on ARMv4 and ARMv5; possible wrong register allocation for
floating-point multiply and add on VFP and for floating-point
negation and absolute value on soft FP emulation.
(Xavier Leroy, report by Stéphane Glondu and Ximin Luo,
review and additional sightings by Mark Shinwell)
- MPR#6329, GPR#1437: Introduce padding word before "data_end" symbols
to ensure page table tests work correctly on an immediately preceding
block of zero size.
(Mark Shinwell, review by Xavier Leroy)
### Tools:
- MPR#1956, GPR#973: tools/check-symbol-names checks for globally
@ -405,12 +407,6 @@ Release branch for 4.06:
- MPR#7048: ocamldoc, in -latex mode, don't escape Latin-1 accented letters
(Xavier Leroy, report by Hugo Herbelin)
- MPR#7575, GPR#1219: Switch compilers from -no-keep-locs
to -keep-locs by default: produced .cmi files will contain locations.
This provides better error messages. Note that, as a consequence,
.cmi digests now depend on the file path as given to the compiler.
(Daniel Bünzli)
* MPR#7351: ocamldoc, use semantic tags rather than <br> tags in the html
backend
(Florian Angeletti, request and review by Daniel Bünzli )
@ -432,6 +428,12 @@ Release branch for 4.06:
- MPR#7521, GPR#1159: ocamldoc, end generated latex file with a new line
(Florian Angeletti)
- MPR#7575, GPR#1219: Switch compilers from -no-keep-locs
to -keep-locs by default: produced .cmi files will contain locations.
This provides better error messages. Note that, as a consequence,
.cmi digests now depend on the file path as given to the compiler.
(Daniel Bünzli)
- MPR#7610, GPR#1346: caml.el (the Emacs editing mode) was cleaned up
and made compatible with Emacs 25.
(Stefan Monnier, Christophe Troestler)
@ -444,6 +446,10 @@ Release branch for 4.06:
OCaml compiler testsuite
(Sébastien Hinderer, review by Damien Doligez)
- GPR#1012: ocamlyacc, fix parsing of raw strings and nested comments, as well
as the handling of ' characters in identifiers.
(Demi Obenour)
- GPR#1045: ocamldep, add a "-shared" option to generate dependencies
for native plugin files (i.e. .cmxs files)
(Florian Angeletti, suggestion by Sébastien Hinderer)
@ -453,10 +459,6 @@ Release branch for 4.06:
"boot" directory to reduce its size in the future.
(Fabrice Le Fessant)
- GPR#1012: ocamlyacc, fix parsing of raw strings and nested comments, as well
as the handling of ' characters in identifiers.
(Demi Obenour)
- GPR#1036: ocamlcmt (tools/read_cmt) is installed, converts .cmt to .annot
(Fabrice Le Fessant)
@ -488,10 +490,10 @@ Release branch for 4.06:
(ygrek, Nicolas Ojeda Bar, review by Alain Frisch, David Allsopp, Damien
Doligez)
- GPR#1070, GPR#1295: enable gcc typechecking for caml_alloc_sprintf,
caml_gc_message. Make caml_gc_message a variadic function. Fix many
caml_gc_message format strings.
(Olivier Andrieu, review and 32bit fix by David Allsopp)
* MPR#7594, GPR#1274, GPR#1368: String_val now returns 'const char*', not
'char*' when -safe-string is enabled at configure time. New macro Bytes_val
for accessing bytes values.
(Jeremy Yallop, reviews by Mark Shinwell and Xavier Leroy)
- GPR#71: The runtime can now be shut down gracefully by means of the new
caml_shutdown and caml_startup_pooled functions. The new 'c' flag in
@ -503,6 +505,11 @@ Release branch for 4.06:
- GPR#938, GPR#1170, GPR#1289: Stack overflow detection on 64-bit Windows
(Olivier Andrieu, tweaked by David Allsopp)
- GPR#1070, GPR#1295: enable gcc typechecking for caml_alloc_sprintf,
caml_gc_message. Make caml_gc_message a variadic function. Fix many
caml_gc_message format strings.
(Olivier Andrieu, review and 32bit fix by David Allsopp)
- GPR#1073: Remove statically allocated compare stack.
(Stephen Dolan)
@ -514,11 +521,6 @@ Release branch for 4.06:
- GPR#1269: Remove 50ms delay at exit for programs using threads
(Valentin Gatien-Baron, review by Stephen Dolan)
* MPR#7594, GPR#1274, GPR#1368: String_val now returns 'const char*', not
'char*' when -safe-string is enabled at configure time. New macro Bytes_val
for accessing bytes values.
(Jeremy Yallop, reviews by Mark Shinwell and Xavier Leroy)
* GPR#1309: open files with O_CLOEXEC (or equivalent) in caml_sys_open thus
unifying the semantics between Unix and Windows and also eliminating race
condition on Unix.
@ -537,10 +539,6 @@ Release branch for 4.06:
* GPR#1416, GPR#1444: switch the Windows 10 Console to UTF-8 encoding.
(David Allsopp, reviews by Nicolás Ojeda Bär and Xavier Leroy)
- MPR#7658, GPR#1439: Fix Spacetime runtime system compilation with
-force-safe-string
(Mark Shinwell, report by Christoph Spiel, review by Gabriel Scherer)
### Manual and documentation:
- MPR#6548: remove obsolete limitation in the description of private
@ -569,7 +567,7 @@ Release branch for 4.06:
- MPR#7507: Align the description of the printf conversion
specification "%g" with the ISO C90 description.
(Florian Angeletti)
(Florian Angeletti, suggestion by Armaël Guéneau)
- MPR#7551, GPR#1194 : make the final ";;" potentially optional in
caml_example
@ -602,6 +600,11 @@ Release branch for 4.06:
- MPR#6373, GPR#1093: Suppress trigraph warnings from macOS assembler
(Mark Shinwell)
- MPR#7639, GPR#1371: fix configure script for correct detection of
int64 alignment on Mac OS X 10.13 (High Sierra) and above; fix bug in
configure script relating to such detection.
(Mark Shinwell, report by John Whitington, review by Xavier Leroy)
- GPR#558: enable shared library and natdynlink support on more Linux
platforms
(Felix Janda, Mark Shinwell)
@ -633,11 +636,6 @@ Release branch for 4.06:
- GPR#1278: discover presence of <sys/shm.h> during configure for afl runtime
(Hannes Mehnert)
- MPR#7639, GPR#1371: fix configure script for correct detection of
int64 alignment on Mac OS X 10.13 (High Sierra) and above; fix bug in
configure script relating to such detection.
(Mark Shinwell, report by John Whitington, review by Xavier Leroy)
- GPR#1386: provide configure-time options to fine-tune the safe-string
options and default settings changed by GPR#1525.
@ -757,6 +755,13 @@ Release branch for 4.06:
under ocamldebug calls Pervasives.flush_all
(Xavier Leroy, report by Paul Steckler, review by Gabriel Scherer)
- MPR#7612, GPR#1345: afl-instrumentation bugfix for classes.
(Stephen Dolan, review by Gabriel Scherer and David Allsopp)
- MPR#7619, GPR#1387: position of the optional last semi-column not included
in the position of the expression (same behavior as for lists)
(Christophe Raffalli, review by Gabriel Scherer)
- MPR#7638: in the Windows Mingw64 port, multithreaded programs compiled
to bytecode could crash when raising an exception from C code.
This looks like a Mingw64 issue, which we work around with GCC builtins.
@ -774,6 +779,10 @@ Release branch for 4.06:
(Alain Frisch, report by sliquister, review by Leo White and Jacques
Garrigue)
- MPR#7658, GPR#1439: Fix Spacetime runtime system compilation with
-force-safe-string
(Mark Shinwell, report by Christoph Spiel, review by Gabriel Scherer)
- GPR#1155: Fix a race condition with WAIT_NOHANG on Windows
(Jérémie Dimino and David Allsopp)
@ -785,22 +794,15 @@ Release branch for 4.06:
with the toplevel.
(Leo White, review by Alain Frisch)
- GPR#1243: Fix pprintast for #... infix operators
(Alain Frisch, report by Omar Chebib)
- GPR#1329: Prevent recursive polymorphic variant names
(Jacques Garrigue, fix suggested by Leo White)
- Fix pprintast for #... infix operators
(Alain Frisch, report by Omar Chebib)
- GPR#1308: Only treat pure patterns as inactive
(Leo White, review by Alain Frisch and Gabriel Scherer)
- MPR#7612, GPR#1345: afl-instrumentation bugfix for classes.
(Stephen Dolan, review by Gabriel Scherer and David Allsopp)
- MPR#7619, GPR#1387: position of the optional last semi-column not included
in the position of the expression (same behavior as for lists)
(Christophe Raffalli, review by Gabriel Scherer)
- GPR#1390: fix the [@@unboxed] type check to accept parametrized types
(Leo White, review by Damien Doligez)