diff options
Diffstat (limited to 'Changes')
| -rw-r--r-- | Changes | 86 |
1 files changed, 75 insertions, 11 deletions
@@ -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 |
