OCamlPro/opam-repository — pull request #1017 by diml (2013-08-28 13:24:38+00:00)
Title: Core 109.40.00

# 109.39.00

## async_unix

- Added "thread-local" storage, `Scheduler.{find,with}_local`, for
`LWT` emulation.

```ocaml
(** [with_local key value ~f] runs [f] right now with the binding [key ` value]. All
calls to [find_local key] in [f] and computations started from [f] will return
[value]. *)
val with_local : 'a Univ_map.Key.t -> 'a option -> f:(unit -> 'b) -> 'b

(** [find_local key] returns the value associated to [key] in the current execution
context. *)
val find_local : 'a Univ_map.Key.t -> 'a option
```

## core_bench

- Added support for additional predictors like minor/major GCs and
compactions, using multi-variable linear regression.

Replaced linear regression with multi-variable linear regression.
The original algorithm estimated the cost of a function `f` by using
a linear regression of the time taken to run `f` vs the number of
runs. The new version adds the ability to include additional
predictors such as minor GCs, compactions etc.

This allows a more fine-grained split-up of the running costs of a
function, distinguishing between the time spent actually running `f`
and the time spent doing minor GCs, major GCs or compactions.
- Added a forking option that allows benchmarks to be run in separate
processes.

This avoids any influence (e.g. polluting the cache, size of live
heap words) they might otherwise have on each other.

## core_kernel

- Implemented `Heap.iter` directly instead of in terms of `fold`.

# 109.40.00

## async_extra

- Added to `Udp.Config` the ability to stop early, via `stop : unit Deferred.t`.

## async_unix

- Added value `Socket.Type.unix_dgram`, which represents a UNIX domain
datagram socket.
- Added UDP socket functionality: `Socket.Opt.mcast_{loop,ttl}` and
`Socket.mcast_{join,leave}`.
- Improved `Fd.ready_fold` to accept `?stop:(unit Deferred.t)` rather
than `?stop:('a -> bool)`.

## core_extended

- Added `Stats_reporting.Delta`, for recording deltas of values.