Permalink
Browse files

copy attributions from 4.02 branch and add a header for the next version

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14919 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
  • Loading branch information...
Damien Doligez
Damien Doligez committed May 25, 2014
1 parent 53886a0 commit 456ba0c57b5412f7e040d1cc83fff78da7faf2dc
Showing with 124 additions and 34 deletions.
  1. +124 −34 Changes
View
158 Changes
@@ -1,17 +1,27 @@
Next version:
-------------
+Ocaml 4.02.0:
+-------------
+
(Changes that can break existing programs are marked with a "*")
Language features:
- Attributes and extension nodes
-- Generative functors
+ (Alain Frisch)
+- PR#5095: Generative functors
+ (Jacques Garrigue)
- Module aliases
+ (Jacques Garrigue)
* Alternative syntax for string literals {id|...|id} (can break comments)
+ (Alain Frisch)
- Separation between read-only strings (type string) and read-write byte
sequences (type bytes). Activated by command-line option -safe-string.
-- Exception cases in pattern matching (patch by Jeremy Yallop).
-- Extensible open datatypes (patch by Leo White).
+ (Damien Doligez)
+- PR#6318: Exception cases in pattern matching
+ (Jeremy Yallop, backend by Alain Frisch)
+- PR#5584: Extensible open datatypes
+ (Leo White)
Build system for the OCaml distribution:
- Use -bin-annot when building.
@@ -22,167 +32,247 @@ Shedding weight:
* Removed Labltk from the distribution, now available as a third-party library.
Type system:
-* Keep typing of pattern cases independent in principal mode
+* PR#6235: Keep typing of pattern cases independent in principal mode
(i.e. information from previous cases is no longer used when typing
patterns; cf. 'PR#6235' in testsuite/test/typing-warnings/records.ml)
+ (Jacques Garrigue)
- Allow opening a first-class module or applying a generative functor
in the body of a generative functor. Allow it also in the body of
an applicative functor if no types are created
+ (Jacques Garrigue, suggestion by Leo White)
* Module aliases are now typed in a specific way, which remembers their
identity. In particular this changes the signature inferred by
"module type of"
+ (Jacques Garrigue)
- PR#6331: Slight change in the criterion to distinguish private
abbreviations and private row types: create a private abbreviation for
closed objects and fixed polymorphic variants.
+ (Jacques Garrigue)
* PR#6333: Compare first class module types structurally rather than
nominally. Value subtyping allows module subtyping as long as the internal
representation is unchanged.
+ (Jacques Garrigue)
Compilers:
- More aggressive constant propagation, including float and
int32/int64/nativeint arithmetic. Constant propagation for floats
can be turned off with option -no-float-const-prop, for codes that
change FP rounding modes at run-time.
+ (Xavier Leroy)
- New back-end optimization pass: common subexpression elimination (CSE).
(Reuses results of previous computations instead of recomputing them.)
+ (Xavier Leroy)
- New back-end optimization pass: dead code elimination.
(Removes arithmetic and load instructions whose results are unused.)
-- PR#6269 Optimization of string matching (patch by Benoit Vaugon
- and Luc Maranget)
+ (Xavier Leroy)
+- PR#6269: Optimization of sequences of string patterns
+ (Benoît Vaugon and Luc Maranget)
- Experimental native code generator for AArch64 (ARM 64 bits)
-- Optimization of integer division and modulus by constant divisors
- (feature wish PR#6042)
+ (Xavier Leroy)
+- PR#6042: Optimization of integer division and modulus by constant divisors
+ (Xavier Leroy and Phil Denys)
- Add "-open" command line flag for opening a single module before typing
* "-o" now sets module name to the output file name up to the first "."
(it also applies when "-o" is not given, i.e. the module name is then
the input file name up to the first ".")
+ (Leo White and Mark Shinwell)
* PR#5779: better sharing of structured constants
+ (Alain Frisch)
- PR#6182: better message for virtual objects and class types
(Leo P. White, Stephen Dolan)
- PR#5817: new flag to keep locations in cmi files
+ (Alain Frisch)
- PR#5854: issue warning 3 when referring to a value marked with
- the [@@deprecated] attribute
-* PR#6203: Constant exception constructor no longer allocate
+ the [@@ocaml.deprecated] attribute
+ (Alain Frisch, suggestion by Pierre-Marie Pédrot)
+* PR#6203: Constant exception constructors no longer allocate
+ (Alain Frisch)
- PR#6311: Improve signature mismatch error messages
+ (Alain Frisch, suggestion by Daniel Bünzli)
- PR#6345: Better compilation of optional arguments with default values
-- PR#6260: Unnecessary boxing in let (patch by vbrankov)
+ (Alain Frisch, review by Jacques Garrigue)
+- PR#6260: Unnecessary boxing in let
+ (Vladimir Brankov)
- PR#6017: a new format implementation based on GADTs
- (initial patch by Benoît Vaugon, review by Gabriel Scherer)
+ (Benoît Vaugon and Gabriel Scherer)
Toplevel interactive system:
- PR#5377: New "#show_*" directives
+ (ygrek, Jacques Garrigue and Alain Frisch)
Runtime system:
- New configure option "-no-naked-pointers" to improve performance by
avoiding page table tests during block darkening and the marking phase
of the major GC. In this mode, all out-of-heap pointers must point at
things that look like OCaml values: in particular they must have a valid
header. The colour of said headers should be black.
+ (Mark Shinwell, reviews by Damien Doligez and Xavier Leroy)
- Fixed bug in native code version of [caml_raise_with_string] that could
potentially lead to heap corruption.
+ (Mark Shinwell)
- Blocks initialized by [CAMLlocal*] and [caml_alloc] are now filled with
[Val_unit] rather than zero.
+ (Mark Shinwell)
- Fixed a major performance problem on large heaps (~1GB) by making heap
increments proportional to heap size by default
+ (Damien Doligez)
- PR#4765: Structural equality should treat exception specifically
-- PR#5009: Extending exception tag blocks
+ (Alain Frisch)
+- PR#5009: efficient comparison/indexing of exceptions
+ (Alain Frisch, request by Markus Mottl)
- PR#6075: avoid using unsafe C library functions (strcpy, strcat, sprintf)
+ (Xavier Leroy, reports from user 'jfc' and Anil Madhavapeddy)
- An ISO C99-compliant C compiler and standard library is now assumed.
(Plus special exceptions for MSVC.) In particular, emulation code for
64-bit integer arithmetic was removed, the C compiler must support a
64-bit integer type.
+ (Xavier Leroy)
Standard library:
* Add new modules: Bytes and BytesLabels.
+ (Damien Doligez)
- PR#4986: add List.sort_uniq and Set.of_list
+ (Alain Frisch)
- PR#5935: a faster version of "raise" which does not maintain the backtrace
+ (Alain Frisch)
- PR#6146: support "Unix.kill pid Sys.sigkill" under Windows
-- PR#6148: speed improvement for Buffer (patch by John Whitington)
+ (Romain Bardou and Alain Frisch)
+- PR#6148: speed improvement for Buffer
+ (John Whitington)
- PR#6180: efficient creation of uninitialized float arrays
+ (Alain Frisch, request by Markus Mottl)
OCamldoc:
- PR#6257: handle full doc comments for variant constructors and
- record fields
+ record fields
+ (Maxence Guesdon, request by ygrek)
- PR#6310: fix ocamldoc's subscript/superscript CSS font size
- (patch by Anil Madhavapeddy)
-- PR#6273: fix Sys.file_exists on large files (Win32)
- (patch by Christoph Bauer)
+ (Anil Madhavapeddy)
- PR#6425: fix generation of man pages
+ (Maxence Guesdon, report by Anil Madhavapeddy)
Bug fixes:
- PR#4719: Sys.executable_name wrong if executable name contains dots (Windows)
+ (Alain Frisch, report by Bart Jacobs)
- PR#4855: 'camlp4 -I +dir' accepted, dir is relative to 'camlp4 -where'
+ (Jun Furuse and Hongbo Zhang, report by Dmitry Grebeniuk)
- PR#5201: ocamlbuild: add --norc to the bash invocation to help performances
+ (user 'daweil')
- PR#5598: follow-up fix related to PR#6165
+ (Damien Doligez)
- PR#5820: Fix camlp4 lexer roll back problem
+ (Hongbo Zhang)
- PR#6062: Fix a regression bug caused by commit 13047
+ (Hongbo Zhang, report by Christophe Troestler)
- PR#6109: Typos in ocamlbuild error messages
-- PR#6116: more efficient implementation of Digest.to_hex (patch by ygrek)
+ (Gabriel Kerneis)
+- PR#6116: more efficient implementation of Digest.to_hex
+ (ygrek)
- PR#6165: Alterations to handling of \013 in source files breaking other tools
-- PR#6173: Typing error message is worse that before
+ (David Allsopp)
+- PR#6173: Typing error message is worse than before
+ (Jacques Garrigue and John Whitington)
- PR#6174: OCaml compiler loops on an example using GADTs (-rectypes case)
-- PR#6175: Fix open!
+ (Jacques Garrigue and Grégoire Henry, report by Chantal Keller)
+- PR#6175: add open! support to camlp4
+ (Hongbo Zhang)
- PR#6183: enhanced documentation for 'Unix.shutdown_connection'
+ (Anil Madhavapeddy, report by Jun Furuse)
- PR#6184: ocamlbuild: `ocamlfind ocamldep` does not support -predicate
- (report and patch by Jacques-Pascal Deplaix)
+ (Jacques-Pascal Deplaix)
- PR#6194: Incorrect unused warning with first-class modules in patterns
+ (Jacques Garrigue, report by Markus Mottl and Leo White)
- PR#6216: inlining of GADT matches generates invalid assembly
+ (Xavier Leroy and Alain Frisch, report by Mark Shinwell)
- PR#6233: out-of-bounds exceptions lose their locations on ARM, PowerPC
+ (Jacques-Henri Jourdan and Xavier Leroy,
+ report and testing by Stéphane Glondu)
- PR#6235: Issue with type information flowing through a variant pattern
+ (Jacques Garrigue, report by Hongbo Zhang)
- PR#6239: sometimes wrong stack alignment when raising exceptions
in -g mode with backtraces active
+ (Xavier Leroy, report by Yaron Minsky)
- PR#6240: Fail to expand module type abbreviation during substyping
+ (Jacques Garrigue, report by Leo White)
- PR#6241: Assumed inequality between paths involving functor arguments
+ (Jacques Garrigue, report by Jeremy Yallop)
- PR#6243: Make "ocamlopt -g" more resistant to ill-formed locations
+ (Xavier Leroy, report by Pierre-Marie Pédrot)
- PR#6262: equality of first-class modules take module aliases into account
+ (Alain Frisch and Leo White)
- PR#6267: more information printed by "bt" command of ocamldebug
+ (Josh Watzman)
+- PR#6273: fix Sys.file_exists on large files (Win32)
+ (Christoph Bauer)
- PR#6275: Soundness bug related to type constraints
+ (Jacques Garrigue, report by Leo White)
- PR#6293: Assert_failure with invalid package type
+ (Jacques Garrigue, report by Elnatan Reisner)
+- PR#6302: bytecode debug information re-read from filesystem every time
+ (Jacques-Henri Jourdan)
- PR#6307: Behavior of 'module type of' w.r.t. module aliases
+ (Jacques Garrigue, report by Alain Frisch)
- PR#6346: Build failure with latest version of xcode on OSX
+ (Jérémie Dimino)
- PR#6348: Unification failure for GADT when original definition is hidden
+ (Leo White and Jacques Garrigue, report by Jeremy Yallop)
- PR#6352: Automatic removal of optional arguments and sequencing
+ (Jacques Garrigue and Alain Frisch)
- PR#6361: Hashtbl.hash not terminating on some lazy values w/ recursive types
+ (Xavier Leroy, report by Leo White)
- PR#6383: Exception Not_found when using object type in absent module
+ (Jacques Garrigue, report by Sébastien Briais)
- PR#6384: Uncaught Not_found exception with a hidden .cmi file
+ (Leo White)
- PR#6385: wrong allocation of large closures by the bytecode interpreter
+ (Xavier Leroy, report by Stephen Dolan)
- PR#6394: Assertion failed in Typecore.expand_path
+ (Alain Frisch and Jacques Garrigue)
- PR#6405: unsound interaction of -rectypes and GADTs
-- PR#6302: bytecode debug information re-read from filesystem every time
- (Jacques-Henri Jourdan)
+ (Jacques Garrigue, report by Gabriel Scherer and Benoît Vaugon)
- fix -dsource printing of "external _pipe = ..."
(Gabriel Scherer)
- bound-checking bug in caml_string_{get,set}{16,32,64}
(Pierre Chambart and Gabriel Scherer, report by Nicolas Trangez)
- sometimes wrong stack alignment at out-of-bounds array access
- (Gabriel Scherer, review by Xavier Leroy, report by Pierre Chambart)
+ (Gabriel Scherer and Xavier Leroy, report by Pierre Chambart)
Features wishes:
- PR#4243: make the Makefiles parallelizable
+ (Grégoire Henry and Damien Doligez)
- PR#4323: have "of_string" in Num and Big_int work with binary and
- hex representations (patch by Zoe Paraskevopoulou)
+ hex representations
+ (Zoe Paraskevopoulou, review by Gabriel Scherer)
- PR#5547: Enable the "-use-ocamlfind" option by default
+ (Wojciech Meyer)
- PR#5650: Camlp4FoldGenerator doesn't handle well "abstract" types
+ (Hongbo Zhang)
- PR#5808: allow simple patterns, not just identifiers, in "let p : t = ..."
-- PR#6000: add a warning for non-principal coercions to format
+ (Alain Frisch)
+- PR#6000 comment 9644: add a warning for non-principal coercions to format
+ (Jacques Garrigue, report by Damien Doligez)
- PR#6054: add support for M.[ foo ], M.[| foo |] etc.
- (patch by Kaustuv Chaudhuri)
+ (Kaustuv Chaudhuri)
- PR#6064: GADT representation for Bigarray.kind + CAML_BA_CHAR runtime kind
-- PR#6071: Add a -noinit option to the toplevel (patch by David Sheets)
+ (Jeremy Yallop, review by Gabriel Scherer)
+- PR#6071: Add a -noinit option to the toplevel
+ (David Sheets)
- PR#6166: document -ocamldoc option of ocamlbuild
+ (Xavier Clerc)
- PR#6187: ocamlbuild: warn when using -plugin-tag(s) without myocamlbuild.ml
- (patch by Jacques-Pascal Deplaix)
+ (Jacques-Pascal Deplaix)
- PR#6246: allow wilcard _ as for-loop index
+ (Alain Frisch, request by ygrek)
- PR#6270: remove need for -I directives to ocamldebug in common case
- (patch by Josh Watzman, review by Xavier Clerc and Alain Frisch)
+ (Josh Watzman, review by Xavier Clerc and Alain Frisch)
- PR#6358: obey DESTDIR in install targets
- (Gabriel Scherer)
+ (Gabriel Scherer, request by François Berenger)
- PR#5899: a programmer-friendly access to backtrace information
(Jacques-Henri Jourdan and Gabriel Scherer)
- ocamllex: user-definable refill action
- (patch by Frédéric Bour, review by Gabriel Scherer and Luc Maranget)
+ (Frédéric Bour, review by Gabriel Scherer and Luc Maranget)
- shorten syntax for functor signatures: "functor (M1:S1) (M2:S2) .. -> .."
- (patches by Thomas Gazagnaire and Jeremy Yallop, review by Gabriel Scherer)
+ (Thomas Gazagnaire and Jeremy Yallop, review by Gabriel Scherer)
OCaml 4.01.0:

0 comments on commit 456ba0c

Please sign in to comment.