From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 5E7AD7FA4D for ; Thu, 31 Jul 2014 16:44:17 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jdimino@janestreet.com) identity=pra; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jdimino@janestreet.com designates 38.105.200.112 as permitted sender) identity=mailfrom; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqIBANVV2lMmachwnGdsb2JhbABZg2BXBIJ0yBIcAQmHS38IFhABAQEBAQYWCT2EHBEEGQEBOCU3AiQSAQUBIgE0iCADCpdXaooyd4UCAQWSVhECBAqPAD6CQw8yEoE/m2mHHotDGCmEe2sBAYED X-IPAS-Result: AqIBANVV2lMmachwnGdsb2JhbABZg2BXBIJ0yBIcAQmHS38IFhABAQEBAQYWCT2EHBEEGQEBOCU3AiQSAQUBIgE0iCADCpdXaooyd4UCAQWSVhECBAqPAD6CQw8yEoE/m2mHHotDGCmEe2sBAYED X-IronPort-AV: E=Sophos;i="5.01,772,1400018400"; d="scan'208";a="87773108" Received: from mxout1.mail.janestreet.com ([38.105.200.112]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 31 Jul 2014 16:44:16 +0200 Received: from tot-smtp.delacy.com ([172.27.22.15] helo=tot-smtp) by mxout1.mail.janestreet.com with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.82) (envelope-from ) id 1XCraY-0004hD-0b for caml-list@inria.fr; Thu, 31 Jul 2014 10:44:14 -0400 Received: from [172.27.229.230] (helo=mxgoog1.mail.janestreet.com) by tot-smtp with esmtps (UNKNOWN:AES256-GCM-SHA384:256) (Exim 4.72) (envelope-from ) id 1XCraX-000156-TO for caml-list@inria.fr; Thu, 31 Jul 2014 10:44:13 -0400 Received: from mail-ie0-f181.google.com ([209.85.223.181]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.72) (envelope-from ) id 1XCraX-0005tt-PT for caml-list@inria.fr; Thu, 31 Jul 2014 10:44:13 -0400 Received: by mail-ie0-f181.google.com with SMTP id rp18so3863566iec.12 for ; Thu, 31 Jul 2014 07:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:date:message-id:subject:from:to:content-type; bh=9CjBKsw//5ncIn31b4S2EWuvACNnIVw0fALAO89bFOE=; b=JE01gO3yGeDT+lOsXmRf1t0/CAaEVNzToOyZ8Tj/bavN4wyXLcMOylQaxJbJ51Osw2 b+mY5kAI0vjR883MWdQzQicZ/vHAqFDD14E5veV0eMOm11IO4/urUHhP7X6raNng6JNo Skr5NIlYYeR4eLAlI/77wg2TUHoS6aZLBaWzY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=9CjBKsw//5ncIn31b4S2EWuvACNnIVw0fALAO89bFOE=; b=agXfMy+lqLn7YhL6uWZLyCLjSTk3FrSkB6cPhBCDp4h4Dwbf3uu86PLnSM53SZhLQd WXeGl3c7EEPM5VsePb9zNTXjxMu1WXlALD8g1wdQdao4hE/HV8Wyzg9u1m38zyLVeuHt KneijbXL2nmHuKOLhW1luNK0iuRZc/bLDxqNe2PEjys1f6xM4WqoqL6f8pVhL4bk5XEB Uyxbr9T8Ly5oZMYY3noJiUugELaYlD4EG0ox5TsScj+yfOtMSyZcaKmpLlw9uulAOsdc RUHx1iC8wdEazOUtBqaTvwQFJeWRrOmO9qxD0+9lK3jroZqDxbopD6lkU4rYzKjl/MIU RGlQ== X-Gm-Message-State: ALoCoQmT4I0WdmJWb9tG2p2+YKZYq4Cz1uceLWLKn54Rr0yui+wC8XWOITY4ZuoiU0CPmrgp8ajXFOjLUMjIh2Xnt1gGApyLm1saNA0LZA3aptl5PtEgv1fVfwvj5lzGCgcHmC4NkSLB X-Received: by 10.42.84.141 with SMTP id m13mr15848844icl.38.1406817853446; Thu, 31 Jul 2014 07:44:13 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.42.84.141 with SMTP id m13mr15848819icl.38.1406817853312; Thu, 31 Jul 2014 07:44:13 -0700 (PDT) Received: by 10.50.122.35 with HTTP; Thu, 31 Jul 2014 07:44:13 -0700 (PDT) Date: Thu, 31 Jul 2014 15:44:13 +0100 Message-ID: From: Jeremie Dimino To: ocaml-core@googlegroups.com, "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=20cf30334ee969461b04ff7e4e9a Subject: [Caml-list] [ANN] Core Suite 111.25.00 --20cf30334ee969461b04ff7e4e9a Content-Type: text/plain; charset=UTF-8 I am pleased to announce the 111.25.00 release of the Core suite. With this release all packages are now compatible with OCaml 4.02. The following packages were upgraded: - async_extra - async_kernel - async - async_parallel - async_unix - core_extended - core_kernel - core - custom_printf - jenga - ocaml_plugin - patdiff - patience_diff - sexplib - textutils Files and documentation for this release are available on our website and all packages are in opam: https://ocaml.janestreet.com/ocaml-core/111.25.00/individual/ https://ocaml.janestreet.com/ocaml-core/111.25.00/doc/ Here is list of changes for this version: ## 111.25.00 ### async - add a dns example ### async_extra - Removed `lazy` from the core of `Log`. - Made `Log.Message.t` have a stable `bin_io`. The `Stable.V1` is the current serialization scheme, and `Stable.V0` is the serialization scheme in 111.18.00 and before, which is needed to talk to older systems. - Changed `Rpc` to return `Connection_closed` if a connection ends before a response makes it to the caller. Previously, the dispatch output was never determined. Also, removed an unused field in one of the internal data structures of Async RPC. - In `Versioned_rpc`, added `version:int` argument to `implement_multi` functions. - In `Versioned_rpc`, the `Pipe_rpc.Make` functors now return an additional output functor. `Register'` is like `Register` but has in its input module: ```ocaml val response_of_model : Model.response Queue.t -> response Queue.t Deferred.t ``` rather than ```ocaml val response_of_model : Model.response -> response ``` This is analogous to `Pipe.map'` and `Pipe.map`. - Added to `Log` a `V2` stable format and better readers for time-varying formats. - In `Log`, added an optional `?time:Time.t` argument to allow callers to pass in the logged time of an event rather than relying on `Time.now ()`. ### async_kernel - Fixed `Clock.run_at_intervals` to make the initial callback at an interval multiple. Previously, if `start` was in the past, `f` would run immediately rather than waiting for an interval of the form `start + i * span`. Now it always waits for an interval, even the first time it runs. ### async_parallel - improve error handling ### async_unix - Added `Unix.Addr_info` and `Name_info`, which wrap `getaddrinfo` and `getnameinfo`. - Improved the scheduler's error message when the thread pool is stuck. ### core - Added `Gc.disable_compaction` function. - Added `Time.to_string_abs_trimmed`, which prints a trimmed time and takes a `zone` argument. - Fixed `unix_stubs.c` to suppress a warning when building with some versions of gcc. - Changed `Time.Zone` to allow the zoneinfo location to be specified by an environment variable. Closes #40 - Fix compatibility with 4.02 ### core_extended - Moved `Quickcheck` from `core`. - Added [Int.gcd]. ### core_kernel - Fix build on FreeBSD Closes #10 - Added functions to `Container` interface: `sum`, `min_elt`, `max_elt`. ```ocaml (** Returns the sum of [f i] for i in the container *) val sum : (module Commutative_group.S with type t = 'sum) -> t -> f:(elt -> 'sum) -> 'sum (** Returns a min (resp max) element from the collection using the provided [cmp] function. In case of a tie, the first element encountered while traversing the collection is returned. The implementation uses [fold] so it has the same complexity as [fold]. Returns [None] iff the collection is empty. *) val min_elt : t -> cmp:(elt -> elt -> int) -> elt option val max_elt : t -> cmp:(elt -> elt -> int) -> elt option ``` - Made `Core_hashtbl_intf` more flexible. For instance supports modules that require typereps to be passed when creating a table. Address the following issues: The type `('a, 'b, 'z) create_options` needs to be consistently used so that `b` corresponds with the type of data values in the returned hash table. The type argument was wrong in several cases. Added the type `('a, 'z) map_options` to `Accessors` so that map-like functions -- those that output hash tables of a different type than they input -- can allow additional arguments. - Fixed a bug in `Dequeue`'s `bin_prot` implementation that caused it to raise when deserializing an empty dequeue. - Made `Container.Make`'s interface match `Monad.Make`. - Deprecated infix `or` in favor of `||`. - Simplified the interface of `Arg` (which was already deprecated in favor of `Command`). - Replaced `Bag.fold_elt` with `Bag.filter`. - `Memo.general` now raises on non-positive `cache_size_bound`. - Removed `Option.apply`. - Removed `Result.call`, `Result.apply`. - Moved `Quichcheck` to `core_extended`. It should not be used in new code. ### custom_printf - Fix 4.02 compatibility. ### jenga - Switched to un-version-numbered API. - Renamed `Tenacious_sample_lib.Tenacious` to `Tenacious_sample_lib.Tenacious_sample` to avoid conflicts in the public release. - Write `buildable_targets.list` (on alias `.info`). ### ocaml_plugin - ignore more warnings by default ### patdiff - add a `?file_names` argument to `Compare_core.diff_strings` ### patience_diff - refactoring and more unit tests ### sexplib - Fix compatibility with OCaml 4.02 -- Jeremie Dimino, for the Core team --20cf30334ee969461b04ff7e4e9a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I am pleased to announce the 111.25.00 release of the= Core suite.

With this release all packages are no= w compatible with OCaml 4.02.

The following packag= es were upgraded:

- async_extra
- async_kernel
- asyn= c
- async_parallel
- async_unix
- core_extend= ed
- core_kernel
- core
- custom_printf
- jenga
- ocaml_plugin
- patdiff
- patie= nce_diff
- sexplib
- textutils

Files and documentation for this release are available on our
website and all packages are in opam:


Here is list of changes for this version:
## 111.25.00

### async

<= /div>
- add a dns example

### async_extra

- Removed `lazy` from the core of `Log`.
- Ma= de `Log.Message.t` have a stable `bin_io`.

=C2=A0 = The `Stable.V1` is the current serialization scheme, and `Stable.V0`
<= div> =C2=A0 is the serialization scheme in 111.18.00 and before, which is needed=
=C2=A0 to talk to older systems.
- Changed `Rpc` to re= turn `Connection_closed` if a connection ends
=C2=A0 before a res= ponse makes it to the caller.

=C2=A0 Previously, the dispatch output was never determ= ined.

=C2=A0 Also, removed an unused field in one = of the internal data structures
=C2=A0 of Async RPC.
- = In `Versioned_rpc`, added `version:int` argument to `implement_multi` funct= ions.
- In `Versioned_rpc`, the `Pipe_rpc.Make` functors now return an
=
=C2=A0 additional output functor.

=C2=A0 `Reg= ister'` is like `Register` but has in its input module:

<= /div>
=C2=A0 ```ocaml
=C2=A0 val response_of_model :
=C2=A0 = =C2=A0 Model.response Queue.t -> response Queue.t Deferred.t
= =C2=A0 ```

=C2=A0 rather than

=
=C2=A0 ```ocaml
=C2=A0 val response_of_model : Model.respons= e -> response
=C2=A0 ```

=C2=A0 This is analogous to `Pipe.= map'` and `Pipe.map`.
- Added to `Log` a `V2` stable format a= nd better readers for
=C2=A0 time-varying formats.
- In= `Log`, added an optional `?time:Time.t` argument to allow callers
=C2=A0 to pass in the logged time of an event rather than relying on
=C2=A0 `Time.now ()`.

### async_kernel

- Fixed `Clock.run_at_intervals` to make the initial= callback at an
=C2=A0 interval multiple.

=C2=A0 Previously, = if `start` was in the past, `f` would run immediately
=C2=A0 rath= er than waiting for an interval of the form `start + i * span`.
= =C2=A0 Now it always waits for an interval, even the first time it runs.

### async_parallel

- improve e= rror handling

### async_unix

<= div>- Added `Unix.Addr_info` and `Name_info`, which wrap `getaddrinfo` and<= /div>
=C2=A0 `getnameinfo`.
- Improved the scheduler's error m= essage when the thread pool is
=C2=A0 stuck.

=
### core

- Added `Gc.disable_compaction` func= tion.
- Added `Time.to_string_abs_trimmed`, which prints a trimmed time and<= /div>
=C2=A0 takes a `zone` argument.
- Fixed `unix_stubs.c` = to suppress a warning when building with some
=C2=A0 versions of = gcc.
- Changed `Time.Zone` to allow the zoneinfo location to be specified
=C2=A0 by an environment variable.

=C2=A0= Closes #40
- Fix compatibility with 4.02

### core_extended

- Moved `Quickcheck` from `core`.
- Added [In= t.gcd].

### core_kernel

-= Fix build on FreeBSD

=C2=A0 Closes #10
= - Added functions to `Container` interface: `sum`, `min_elt`,
=C2=A0 `max_elt`.

=C2=A0 ```ocaml
= =C2=A0 (** Returns the sum of [f i] for i in the container *)
=C2= =A0 val sum
=C2=A0 =C2=A0 : (module Commutative_group.S with type= t =3D 'sum)
=C2=A0 =C2=A0 -> t -> f:(elt -> 'su= m) -> 'sum

=C2=A0 (** Returns a min (resp max) element from the co= llection using the provided [cmp]
=C2=A0 =C2=A0 =C2=A0 function. = In case of a tie, the first element encountered while traversing the
<= div>=C2=A0 =C2=A0 =C2=A0 collection is returned. The implementation uses [f= old] so it has the same
=C2=A0 =C2=A0 =C2=A0 complexity as [fold]. Returns [None] iff the coll= ection is empty. *)
=C2=A0 val min_elt : t -> cmp:(elt -> e= lt -> int) -> elt option
=C2=A0 val max_elt : t -> cmp:(= elt -> elt -> int) -> elt option
=C2=A0 ```
- Made `Core_hashtbl_intf` more flexible. For ins= tance supports
=C2=A0 modules that require typereps to be passed = when creating a table.

=C2=A0 Address the followin= g issues:

=C2=A0 The type `('a, 'b, 'z) create_option= s` needs to be consistently used
=C2=A0 so that `b` corresponds w= ith the type of data values in the returned
=C2=A0 hash table. = =C2=A0The type argument was wrong in several cases.

=C2=A0 Added the type `('a, 'z) map_options` to= `Accessors` so that
=C2=A0 map-like functions -- those that outp= ut hash tables of a different
=C2=A0 type than they input -- can = allow additional arguments.
- Fixed a bug in `Dequeue`'s `bin_prot` implementation that caused= it
=C2=A0 to raise when deserializing an empty dequeue.
- Made `Container.Make`'s interface match `Monad.Make`.
- D= eprecated infix `or` in favor of `||`.
- Simplified the interface of `Arg` (which was already deprecated in
=C2=A0 favor of `Command`).
- Replaced `Bag.fold_elt` wi= th `Bag.filter`.
- `Memo.general` now raises on non-positive `cac= he_size_bound`.
- Removed `Option.apply`.
- Removed `Result.call`, `Result.a= pply`.
- Moved `Quichcheck` to `core_extended`.

=C2=A0 It should not be used in new code.

= ### custom_printf

- Fix 4.02 compatibility.

### = jenga

- Switched to un-version-numbered API.
=
- Renamed `Tenacious_sample_lib.Tenacious` to
=C2=A0 `Tenaci= ous_sample_lib.Tenacious_sample` to avoid conflicts in the
=C2=A0 public release.
- Write `buildable_targets.list` (on = alias `.info`).

### ocaml_plugin

- ignore more warnings by default

### patd= iff

- add a `?file_names` argument to `Compare_core.diff_st= rings`

### patience_diff

= - refactoring and more unit tests

### sexplib

- Fix compatibility with OCaml 4.02

--=C2=A0
Jeremie Dimino, for the Core team
=
--20cf30334ee969461b04ff7e4e9a--