summaryrefslogtreecommitdiff
path: root/Changes
diff options
context:
space:
mode:
Diffstat (limited to 'Changes')
-rw-r--r--Changes86
1 files changed, 75 insertions, 11 deletions
diff --git a/Changes b/Changes
index bc1a85dad4..ddc4a7bf93 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,14 @@ Next version:
(Changes that can break existing programs are marked with a "*")
+Language features:
+- Attributes and extension nodes
+- Generative functors
+- Module aliases
+
+Build system for the OCaml distribution:
+- Use -bin-annot when building.
+
Camlp4:
- Removed from the official distribution
@@ -13,11 +21,22 @@ Type system:
* Keep typing of pattern cases independent in principal mode
(i.e. information from previous cases is no longer used when typing
patterns; cf. PR6235' in typing-warnings/records.ml)
-
-Language features:
-- Attributes and extension nodes
+- 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
+* Module aliases are now typed in a specific way, which remembers their
+ identity. In particular this changes the signature inferred by
+ "module type of"
+- 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.
+- PR#6333: Compare first class module types structurally rather than
+ nominally. Value subtyping allows module subtyping as long as the internal
+ representation is unchanged.
Compilers:
+- PR#6269 Optimization of string matching (patch by Benoit 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)
@@ -27,27 +46,46 @@ Compilers:
- PR#5854: issue warning 3 when referring to a value marked with
the [@@deprecated] attribute
- PR#6203: Constant exception constructor no longer allocate
+- PR#6311: Improve signature mismatch error messages
+- PR#6345: Better compilation of optional arguments with default values
+- PR#6260: Unnecessary boxing in let (patch by vbrankov)
Runtime system:
+- Fixed a major performance problem on large heaps (~1GB) by making heap
+ increments proportional to heap size
- PR#4765: Structural equality should treat exception specifically
- PR#5009: Extending exception tag blocks
+Standard library:
+- PR#4986: add List.sort_uniq and Set.of_list
+- PR#5935: a faster version of "raise" which does not maintain the backtrace
+- PR#6146: support "Unix.kill pid Sys.sigkill" under Windows
+- PR#6148: speed improvement for Buffer (patch by John Whitington)
+- PR#6180: efficient creation of uninitialized float arrays
+
+OCamldoc:
+- PR#6257: handle full doc comments for variant constructors and
+ record fields
+- PR#6310: fix ocamldoc's subscript/superscript CSS font size
+ (patch by Anil Madhavapeddy)
+
Bug fixes:
- PR#4719: Sys.executable_name wrong if executable name contains dots (Windows)
- PR#4855: 'camlp4 -I +dir' accepted, dir is relative to 'camlp4 -where'
- PR#5201: ocamlbuild: add --norc to the bash invocation to help performances
+- PR#5598: follow-up fix related to PR#6165
- PR#5820: Fix camlp4 lexer roll back problem
- PR#6062: Fix a regression bug caused by commit 13047
- PR#6109: Typos in ocamlbuild error messages
- PR#6116: more efficient implementation of Digest.to_hex (patch by ygrek)
- PR#6174: OCaml compiler loops on an example using GADTs (-rectypes case)
-
-Standard library:
-- PR#4986: add List.sort_uniq and Set.of_list
-- PR#6148: speed improvement for Buffer (patch by John Whitington)
-- PR#6146: support "Unix.kill pid Sys.sigkill" under Windows
-- PR#6180: efficient creation of uninitialized float arrays
-- PR#5935: a faster version of "raise" which does not maintain the backtrace
+- PR#6184: ocamlbuild: `ocamlfind ocamldep` does not support -predicate
+ (report and patch by Jacques-Pascal Deplaix)
+- PR#6262: equality of first-class modules take module aliases into account
+- PR#6293: Assert_failure with invalid package type
+- PR#6307: Behavior of 'module type of' w.r.t. module aliases
+- fix -dsource printing of "external _pipe = ..."
+ (Gabriel Scherer)
Features wishes:
- PR#4243: make the Makefiles parallelizable
@@ -55,20 +93,43 @@ Features wishes:
hexa representations (patch by Zoe Paraskevopoulou)
- PR#5547: Enable the "-use-ocamlfind" option by default
- PR#5650: Camlp4FoldGenerator doesn't handle well "abstract" types
+- PR#5808: allow simple patterns, not only identifiers, in "let p : t = ..."
+- PR#6054: add support for M.[ foo ], M.[| foo |] etc.
+ (patch by 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)
- PR#6166: document -ocamldoc option of ocamlbuild
-
+- PR#6187: ocamlbuild: warn when using -plugin-tag(s) without myocamlbuild.ml
+ (patch by Jacques-Pascal Deplaix)
+- PR#6246: allow wilcard _ as for-loop index
+- ocamllex: user-definable refill action
+ (patch by 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)
OCaml 4.01.1:
-------------
Bug fixes:
+- PR#4855: 'camlp4 -I +dir' accepted, dir is related to 'camlp4 -where'
+- PR#5820: Fix camlp4 lexer roll back problem
+- PR#6062: Fix a regression bug caused by commit 13047
+- PR#6165: Alterations to handling of \013 in source files breaking other tools
- PR#6173: Typing error message is worse that before
- PR#6174: OCaml compiler loops on an example using GADTs (non -rectypes)
+- PR#6175: Fix open!
+- PR#6183: enhanced documentation for 'Unix.shutdown_connection'
- PR#6216: inlining of GADT matches generates invalid assembly
+- PR#6233: out-of-bounds exceptions lose their locations on ARM, PowerPC
- PR#6235: Issue with type information flowing through a variant pattern
+- PR#6239: sometimes wrong stack alignment when raising exceptions
+ in -g mode with backtraces active
- PR#6240: Fail to expand module type abbreviation during substyping
- PR#6241: Assumed inequality between paths involving functor arguments
+- PR#6243: Make "ocamlopt -g" more resistant to ill-formed locations
+- PR#6267: more information printed by "bt" command of ocamldebug
+- PR#6275: Soundness bug related to type constraints
+
OCaml 4.01.0:
-------------
@@ -141,6 +202,9 @@ Standard library:
(Xavier Leroy)
- infix application operators |> and @@ in Pervasives
(Fabrice Le Fessant)
+- PR#6176: new Format.asprintf function with a %a formatter
+ compatible with Format.fprintf (unlike Format.sprintf)
+ (Pierre Weis)
Other libraries:
- PR#5568: add O_CLOEXEC flag to Unix.openfile, so that the returned