The core OCaml system: compilers, runtime system, base libraries
Bug fixes. See detailed list of changes.
Marshal.Compression
has been removed, compressed marshaling has been moved to an internal compiler libraryOCaml 5.1.0 is still a relatively experimental release compared to the OCaml 4.14 branch. Some of the highlights in OCaml 5.1.0 are:
List.append
and List.map
.OCaml 5.0.0 introduces a completely new runtime environment with support for shared memory parallelism and effect handlers.
As a language, OCaml 5 is fully compatible with OCaml 4 down to the performance characteristics of your programs. In other words, any code that works with OCaml 4 should work the same with OCaml 5.
The currently known exceptions to this rule are:
val fold: ('acc -> 'elt -> 'acc) -> 'acc -> 'elt list -> 'acc
type showable = Show: 'a * ('a -> string) -> showable
can now be written as
val fold: 'acc 'elt. ('acc -> 'elt -> 'acc) -> 'acc -> 'elt list -> 'acc
type showable = Show: 'a. 'a * ('a -> string) -> showable
Regression fix release. See the detailed list of changes.
Showable (type a) (x, show : a * (a -> string))
.let* x = x in
can be shortened to let* x in
.SIG with module type T = F(X).S
.See the detailed list of changes.
Bug fixes. See detailed list of changes.
ocaml-option-nnpchecker
which emits an alarm
when the garbage collector finds out-of-heap pointers that could cause a crash
in the multicore runtimeSee the detailed list of changes
Bug fixes. See detailed list of changes