summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Scherer <gabriel.scherer@gmail.com>2017-10-03 11:44:48 +0200
committerGabriel Scherer <gabriel.scherer@gmail.com>2017-10-03 11:51:46 +0200
commit6a236f739d982d0188c2741f39e8e298ff2fdcfb (patch)
treed82e7f34fa9c36b5cca101f8be03da834b9198a6
parent1d8d66a5783fc91a07084e402ab002b0b39c68e4 (diff)
downloadocaml-6a236f739d982d0188c2741f39e8e298ff2fdcfb.tar.gz
reorder 4.06 change categories
-rw-r--r--Changes423
1 files changed, 212 insertions, 211 deletions
diff --git a/Changes b/Changes
index 39d7451c51..68543792a7 100644
--- a/Changes
+++ b/Changes
@@ -86,110 +86,12 @@ Release branch for 4.06:
"S with type _ t = int".
(Valentin Gatien-Baron, report by Jeremy Yallop)
-### Code generation and optimizations:
-
-- MPR#5324, GPR#375: An alternative Linear Scan register allocator for
- ocamlopt, activated with the -linscan command-line flag. This
- allocator represents a trade-off between worse generated code
- performance for higher compilation speed (especially interesting in
- some cases graph coloring is necessarily quadratic).
- (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#6927, GPR#988: On macOS, when compiling bytecode stubs, plugins,
- and shared libraries through -output-obj, generate dylibs instead of
- bundles.
- (whitequark)
-
-- MPR#7447, GPR#995: incorrect code generation for nested recursive bindings
- (Leo White and Jeremy Yallop, report by Stephen Dolan)
-
-- MPR#7501, GPR#1089: Consider arrays of length zero as constants
- when using Flambda.
- (Pierre Chambart, review by Mark Shinwell and Leo White)
-
-- MPR#7531, GPR#1162: Erroneous code transformation at partial applications
- (Mark Shinwell)
-
-- MPR#7601, GPR#1320: It seems like a hidden non-generalized type variable
- 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
- scope of its equation
- (Jacques Garrigue, report by Thomas Refis)
-
-- MPR#7620, GPR#1317: Typecore.force_delayed_checks does not run with -i option
- (Jacques Garrigue, report by Jun Furuse)
-
-* GPR#659: Remove support for SPARC native code generation
- (Mark Shinwell)
-
-- GPR#1143: tweaked several allocation functions in the runtime by
- checking for likely conditions before unlikely ones and eliminating
- some redundant checks.
- (Markus Mottl, review by Alain Frisch, Xavier Leroy, Gabriel Scherer,
- Mark Shinwell and Leo White)
-
-- GPR#1183: compile curried functors to multi-argument functions
- earlier in the compiler pipeline; correctly propagate [@@inline]
- attributes on such functors; mark functor coercion veneers as
- stubs.
- (Mark Shinwell, review by Pierre Chambart and Leo White)
-
-- GPR#1195: Merge functions based on partiality rather than
- Parmatch.irrefutable.
- (Leo White, review by Thomas Refis, Alain Frisch and Gabriel Scherer)
-
-- GPR#1215: Improve compilation of short-circuit operators
- (Leo White, review by Frédéric Bour and Mark Shinwell)
-
-- GPR#1250: illegal ARM64 assembly code generated for large combined allocations
- (report and initial fix by Steve Walk, review and final fix by Xavier Leroy)
-
-- GPR#1271: Don't generate Ialloc instructions for closures that exceed
- Max_young_wosize; instead allocate them on the major heap. (Related
- to GPR#1250.)
- (Mark Shinwell)
-
-- GPR#1294: Add a configure-time option to remove the dynamic float array
- optimization and add a floatarray type to let the user choose when to
- flatten float arrays. Note that float-only records are unchanged: they
- are still optimized by unboxing their fields.
- (Damien Doligez, review by Alain Frisch and Mark Shinwell)
-
-- GPR#1304: Mark registers clobbered by PLT stubs as destroyed across
- allocations.
- (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
- the text segment of shared libraries and position-independent
- executables generated by ocamlopt.
- (Xavier Leroy, review by Mark Shinwell)
-
-- GPR#1330: when generating dynamically-linkable code on AArch64, always
- 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)
+### Type system
-- MPR#7631, GPR#1355: "-linscan" option crashes ocamlopt
- (Xavier Clerc, report by Paul Steckler)
+* GPR#556, PR#7215, PR#7231, PR#6738: Add a new check that 'let rec' bindings
+ are well formed.
+ (Jeremy Yallop, reviews by Stephen Dolan, Gabriel Scherer, Leo
+ White, and Damien Doligez)
### Standard library:
@@ -261,6 +163,17 @@ Release branch for 4.06:
- Resurrect tabulation boxes in module Format. Rewrite/extend documentation
of tabulation boxes.
+### Other libraries:
+
+- 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#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"
@@ -293,9 +206,16 @@ Release branch for 4.06:
of ocamlc and a run of ocamlopt.
(Xavier Leroy, from a suggestion by Gerd Stolpmann)
+- MPR#7514, GPR#1152: add -dprofile option, similar to -dtimings but
+ also displays memory allocation and consumption
+ (Valentin Gatien-Baron, report by Gabriel Scherer)
+
- MPR#7624: handle warning attributes placed on let bindings
(Xavier Clerc, report by dinosaure, review by Alain Frisch)
+- GPR#1032: display the output of -dtimings as a hierarchy
+ (Valentin Gatien-Baron, review by Gabriel Scherer)
+
- GPR#1333: turn off warning 40 by default
(Leo White)
@@ -303,66 +223,110 @@ Release branch for 4.06:
PPX rewriters.
(Jun Furuse, review by Alain Frisch)
-### Other libraries:
+### Code generation and optimizations:
-- 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)
+- MPR#5324, GPR#375: An alternative Linear Scan register allocator for
+ ocamlopt, activated with the -linscan command-line flag. This
+ allocator represents a trade-off between worse generated code
+ performance for higher compilation speed (especially interesting in
+ some cases graph coloring is necessarily quadratic).
+ (Marcell Fischbach and Benedikt Meurer, adapted by Nicolas Ojeda
+ Bar, review by Nicolas Ojeda Bar and Alain Frisch)
-- GPR#1321: Reimplement Unix.isatty on Windows. It no longer returns true for
- the null device.
- (David Allsopp)
+- GPR#850: Optimize away some physical equality
+ (Pierre Chambart, review by Mark Shinwell and Leo White)
-### Manual and documentation:
+- GPR#856: Register availability analysis
+ (Mark Shinwell, Thomas Refis, review by Pierre Chambart)
-- MPR#6548: remove obsolete limitation in the description of private
- type abbreviations
- (Florian Angeletti, suggestion by Leo White)
+- MPR#6927, GPR#988: On macOS, when compiling bytecode stubs, plugins,
+ and shared libraries through -output-obj, generate dylibs instead of
+ bundles.
+ (whitequark)
-- MPR#6676, GPR#1110: move record notation to tutorial
- (Florian Angeletti, review by Gabriel Scherer)
+- MPR#7447, GPR#995: incorrect code generation for nested recursive bindings
+ (Leo White and Jeremy Yallop, report by Stephen Dolan)
-- MPR#6676, GPR#1112: move local opens to tutorial
- (Florian Angeletti)
+- MPR#7501, GPR#1089: Consider arrays of length zero as constants
+ when using Flambda.
+ (Pierre Chambart, review by Mark Shinwell and Leo White)
-- MPR#6676, GPR#1153: move overriding class definitions to reference
- manual and tutorial
- (Florian Angeletti)
+- MPR#7531, GPR#1162: Erroneous code transformation at partial applications
+ (Mark Shinwell)
-- MPR#6709: document the associativity and precedence level of
- pervasive operators
- (Florian Angeletti, review by David Allsopp)
+- MPR#7601, GPR#1320: It seems like a hidden non-generalized type variable
+ remains in some inferred signatures, which leads to strange errors
+ (Jacques Garrigue, report by Mandrikin)
-- MPR#7254, GPR#1096: Rudimentary documentation of ocamlnat
+- MP#7617, #7618, GPR#1318: Ambiguous (mistakenly) type escaping the
+ scope of its equation
+ (Jacques Garrigue, report by Thomas Refis)
+
+- MPR#7620, GPR#1317: Typecore.force_delayed_checks does not run with -i option
+ (Jacques Garrigue, report by Jun Furuse)
+
+* GPR#659: Remove support for SPARC native code generation
(Mark Shinwell)
-- MPR#7281, GPR#1259: fix .TH macros in generated manpages
- (Olaf Hering)
+- GPR#1143: tweaked several allocation functions in the runtime by
+ checking for likely conditions before unlikely ones and eliminating
+ some redundant checks.
+ (Markus Mottl, review by Alain Frisch, Xavier Leroy, Gabriel Scherer,
+ Mark Shinwell and Leo White)
-- MPR#7507: Align the description of the printf conversion
- specification "%g" with the ISO C90 description.
- (Florian Angeletti)
+- GPR#1183: compile curried functors to multi-argument functions
+ earlier in the compiler pipeline; correctly propagate [@@inline]
+ attributes on such functors; mark functor coercion veneers as
+ stubs.
+ (Mark Shinwell, review by Pierre Chambart and Leo White)
-- MPR#7551, GPR#1194 : make the final ";;" potentially optional in
- caml_example
- (Florian Angeletti, review and suggestion by Gabriel Scherer)
+- GPR#1195: Merge functions based on partiality rather than
+ Parmatch.irrefutable.
+ (Leo White, review by Thomas Refis, Alain Frisch and Gabriel Scherer)
-- MPR#7588, GPR#1291: make format documentation predictable
- (Florian Angeletti, review by Gabriel Radanne)
+- GPR#1215: Improve compilation of short-circuit operators
+ (Leo White, review by Frédéric Bour and Mark Shinwell)
-- MPR#7604: Minor Ephemeron documentation fixes
- (Miod Vallat, review by Florian Angeletti)
+- GPR#1250: illegal ARM64 assembly code generated for large combined allocations
+ (report and initial fix by Steve Walk, review and final fix by Xavier Leroy)
-- GPR#1187: Minimal documentation for compiler plugins
- (Florian Angeletti)
+- GPR#1271: Don't generate Ialloc instructions for closures that exceed
+ Max_young_wosize; instead allocate them on the major heap. (Related
+ to GPR#1250.)
+ (Mark Shinwell)
-- GPR#1202: Fix Typos in comments as well as basic grammar errors.
- (JP Rodi, review and suggestions by David Allsopp, Max Mouratov,
- Florian Angeletti, Xavier Leroy, Mark Shinwell and Damien Doligez)
+- GPR#1294: Add a configure-time option to remove the dynamic float array
+ optimization and add a floatarray type to let the user choose when to
+ flatten float arrays. Note that float-only records are unchanged: they
+ are still optimized by unboxing their fields.
+ (Damien Doligez, review by Alain Frisch and Mark Shinwell)
-- GPR#1220: Fix "-keep-docs" option in ocamlopt manpage
- (Etienne Millon)
+- GPR#1304: Mark registers clobbered by PLT stubs as destroyed across
+ allocations.
+ (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
+ the text segment of shared libraries and position-independent
+ executables generated by ocamlopt.
+ (Xavier Leroy, review by Mark Shinwell)
+
+- GPR#1330: when generating dynamically-linkable code on AArch64, always
+ 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)
### Tools:
@@ -430,6 +394,109 @@ Release branch for 4.06:
- GPR#1041: -nostdlib no longer ignored by toplevel.
(David Allsopp, review by Xavier Leroy)
+### Runtime system:
+
+* MPR#3771, GPR#153, GPR#1200, GPR#1357, GPR#1362, GPR#1363: Unicode support for
+ the Windows runtime.
+ (ygrek, Clement Franchini, 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)
+
+- 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
+ OCAMLRUNPARAM enables shutting the runtime properly on process exit.
+ (Max Mouratov, review and discussion by Damien Doligez, Gabriel Scherer,
+ Mark Shinwell, Thomas Braibant, Stephen Dolan, Pierre Chambart,
+ François Bobot, Jacques Garrigue, David Allsopp, and Alain Frisch)
+
+- GPR#938, GPR#1170, GPR#1289: Stack overflow detection on 64-bit Windows
+ (Olivier Andrieu, tweaked by David Allsopp)
+
+- GPR#1073: Remove statically allocated compare stack.
+ (Stephen Dolan)
+
+- GPR#1086: in Sys.getcwd, just fail instead of calling getwd()
+ if HAS_GETCWD is not set.
+ (Report and first fix by Sebastian Markbåge, final fix by Xavier Leroy,
+ review by MarK Shinwell)
+
+- 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.
+ (David Allsopp, report by Andreas Hauptmann)
+
+- GPR#1326: Enable use of CFI directives in AArch64 and ARM runtime
+ systems' assembly code (asmrun/arm64.S). Add CFI directives to enable
+ unwinding through [caml_c_call] and [caml_call_gc] with correct termination
+ of unwinding at [main].
+ (Mark Shinwell, review by Xavier Leroy and Gabriel Scherer, with thanks
+ to Daniel Bünzli and Fu Yong Quah for testing)
+
+- GPR#1338: Add "-g" for bytecode runtime system compilation
+ (Mark Shinwell)
+
+### Manual and documentation:
+
+- MPR#6548: remove obsolete limitation in the description of private
+ type abbreviations
+ (Florian Angeletti, suggestion by Leo White)
+
+- MPR#6676, GPR#1110: move record notation to tutorial
+ (Florian Angeletti, review by Gabriel Scherer)
+
+- MPR#6676, GPR#1112: move local opens to tutorial
+ (Florian Angeletti)
+
+- MPR#6676, GPR#1153: move overriding class definitions to reference
+ manual and tutorial
+ (Florian Angeletti)
+
+- MPR#6709: document the associativity and precedence level of
+ pervasive operators
+ (Florian Angeletti, review by David Allsopp)
+
+- MPR#7254, GPR#1096: Rudimentary documentation of ocamlnat
+ (Mark Shinwell)
+
+- MPR#7281, GPR#1259: fix .TH macros in generated manpages
+ (Olaf Hering)
+
+- MPR#7507: Align the description of the printf conversion
+ specification "%g" with the ISO C90 description.
+ (Florian Angeletti)
+
+- MPR#7551, GPR#1194 : make the final ";;" potentially optional in
+ caml_example
+ (Florian Angeletti, review and suggestion by Gabriel Scherer)
+
+- MPR#7588, GPR#1291: make format documentation predictable
+ (Florian Angeletti, review by Gabriel Radanne)
+
+- MPR#7604: Minor Ephemeron documentation fixes
+ (Miod Vallat, review by Florian Angeletti)
+
+- GPR#1187: Minimal documentation for compiler plugins
+ (Florian Angeletti)
+
+- GPR#1202: Fix Typos in comments as well as basic grammar errors.
+ (JP Rodi, review and suggestions by David Allsopp, Max Mouratov,
+ Florian Angeletti, Xavier Leroy, Mark Shinwell and Damien Doligez)
+
+- GPR#1220: Fix "-keep-docs" option in ocamlopt manpage
+ (Etienne Millon)
+
### Compiler distribution build system
- MPR#6373, GPR#1093: Suppress trigraph warnings from macOS assembler
@@ -496,17 +563,10 @@ Release branch for 4.06:
strings longer than the size specified by the "print_length" directive
(Fabrice Le Fessant, initial PR by Junsong Li)
-- MPR#7514, GPR#1152: add -dprofile option, similar to -dtimings but
- also displays memory allocation and consumption
- (Valentin Gatien-Baron, report by Gabriel Scherer)
-
- GPR#406: remove polymorphic comparison for Types.constructor_tag in compiler
(Dwight Guth, review by Gabriel Radanne, Damien Doligez, Gabriel Scherer,
Pierre Chambart, Mark Shinwell)
-- GPR#1032: display the output of -dtimings as a hierarchy
- (Valentin Gatien-Baron, review by Gabriel Scherer)
-
- GPR#1127: move config/{m,s}.h to byterun/caml and install them.
User code should not have to include them directly since they are
included by other header files
@@ -622,65 +682,6 @@ Release branch for 4.06:
in the position of the expression (same behavior as for lists)
(Christophe Raffalli, review by Gabriel Scherer)
-### Runtime system:
-
-* MPR#3771, GPR#153, GPR#1200, GPR#1357, GPR#1362, GPR#1363: Unicode support for
- the Windows runtime.
- (ygrek, Clement Franchini, 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)
-
-- 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
- OCAMLRUNPARAM enables shutting the runtime properly on process exit.
- (Max Mouratov, review and discussion by Damien Doligez, Gabriel Scherer,
- Mark Shinwell, Thomas Braibant, Stephen Dolan, Pierre Chambart,
- François Bobot, Jacques Garrigue, David Allsopp, and Alain Frisch)
-
-- GPR#938, GPR#1170, GPR#1289: Stack overflow detection on 64-bit Windows
- (Olivier Andrieu, tweaked by David Allsopp)
-
-- GPR#1073: Remove statically allocated compare stack.
- (Stephen Dolan)
-
-- GPR#1086: in Sys.getcwd, just fail instead of calling getwd()
- if HAS_GETCWD is not set.
- (Report and first fix by Sebastian Markbåge, final fix by Xavier Leroy,
- review by MarK Shinwell)
-
-- 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.
- (David Allsopp, report by Andreas Hauptmann)
-
-- GPR#1326: Enable use of CFI directives in AArch64 and ARM runtime
- systems' assembly code (asmrun/arm64.S). Add CFI directives to enable
- unwinding through [caml_c_call] and [caml_call_gc] with correct termination
- of unwinding at [main].
- (Mark Shinwell, review by Xavier Leroy and Gabriel Scherer, with thanks
- to Daniel Bünzli and Fu Yong Quah for testing)
-
-- GPR#1338: Add "-g" for bytecode runtime system compilation
- (Mark Shinwell)
-
-### Type system
-
-* GPR#556, PR#7215, PR#7231, PR#6738: Add a new check that 'let rec' bindings
- are well formed.
- (Jeremy Yallop, reviews by Stephen Dolan, Gabriel Scherer, Leo
- White, and Damien Doligez)
OCaml 4.05.0 (13 Jul 2017):
---------------------------