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 BD5A57F860 for ; Thu, 6 Mar 2014 18:37:47 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of bmillwood@janestreet.com) identity=pra; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="bmillwood@janestreet.com"; x-sender="bmillwood@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of bmillwood@janestreet.com designates 38.105.200.229 as permitted sender) identity=mailfrom; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="bmillwood@janestreet.com"; x-sender="bmillwood@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@mx5.janestreet.com) identity=helo; client-ip=38.105.200.229; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="bmillwood@janestreet.com"; x-sender="postmaster@mx5.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgwCANCxGFMmacjlnGdsb2JhbABagkJ/V8EggRIIFg4BAQEBAQYWCTyCUxkBATglXRIBBQEjiAsDAgiiMYsYhFUBBZ0FEQIEjhk+gjkPgXuYQpA9GCmEWoFq X-IPAS-Result: AgwCANCxGFMmacjlnGdsb2JhbABagkJ/V8EggRIIFg4BAQEBAQYWCTyCUxkBATglXRIBBQEjiAsDAgiiMYsYhFUBBZ0FEQIEjhk+gjkPgXuYQpA9GCmEWoFq X-IronPort-AV: E=Sophos;i="4.97,602,1389740400"; d="scan'208";a="61616916" Received: from mx5.janestreet.com ([38.105.200.229]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Mar 2014 18:37:46 +0100 Received: from tot-oib-smtp1.delacy.com ([172.27.22.15] helo=tot-smtp) by mx5.janestreet.com with esmtp (Exim 4.76) (envelope-from ) id 1WLcEq-0005el-Uv for caml-list@inria.fr; Thu, 06 Mar 2014 12:37:44 -0500 Received: from tot-dmz-mxgoog1.delacy.com ([172.27.224.14] helo=mxgoog2.janestreet.com) by tot-smtp with esmtps (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1WLcEq-0005h7-T7 for caml-list@inria.fr; Thu, 06 Mar 2014 12:37:44 -0500 Received: from mail-qa0-f48.google.com ([209.85.216.48]) by mxgoog2.janestreet.com with esmtp (Exim 4.76) (envelope-from ) id 1WLcEq-00072S-QA for caml-list@inria.fr; Thu, 06 Mar 2014 12:37:44 -0500 Received: by mail-qa0-f48.google.com with SMTP id m5so2771666qaj.21 for ; Thu, 06 Mar 2014 09:37:44 -0800 (PST) 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=JggZ0t4QABda+Zbj7fILt8ekYCBF+tFWTZbJo09zHdY=; b=VRSb6PHB+CfYsaGi2xd81475UAUvUESEjMBUwD8o8jtgvwTLHSOSg9SNaaoXjyESlN aRD2rLBOszT5Q7FYyHC2YfibDgpc88WtH0W5xnoiVBQI5mftZq7BKyRfcGy1fUq7BcFA pr2Pj8EyffwpCqueP3/0puls7OlmZPrrvI5z4= 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=JggZ0t4QABda+Zbj7fILt8ekYCBF+tFWTZbJo09zHdY=; b=NzNcGUQaahB4i42Zz7YYOUFrhp61v/w/yv191N7RCNJrxNDFT+Xqu8BK9ICBbJrhVx QKTGUF/tSAE+4Rq2ZioLPGBRcKNEU+UDtIWHiAf1hDqNMu9p0eNoUWBA+lAQfQD7Z1Lx tznRyo55/amMpTmPW+J1ZHT8hUoeKFCGRRYH6ceI6eF5dFVvgJWJim/rWZfoTq1f2KdG S+wM5tRWqaH1dbvSUjNg8hdE1wuOI4vKxY3C/FQLMT6CWxC/FJsldsvfMuFi5nk16HqT E7d9KSYPnT5T6B2HjN3n8oGBJXxelFJ7G+9NN02NdsBElG2dp9epw2rM+bQVnrS49vO/ IgZQ== X-Gm-Message-State: ALoCoQn9dQ0EDnrThZY0ghKJjYHezvpM9S2sLtww8iCfm/z2WGufiXW1pWVkXdzlYKUmjaWx0yRvk4pPedljwmiDmR4VUCR3yf9fbXUVBA/MrtBvhpSxxHwMccvNM+QYk+dCR/G5pUtrmRdmV5sqB8SfvG37l6dyOQ== X-Received: by 10.140.81.244 with SMTP id f107mr4035820qgd.104.1394127464444; Thu, 06 Mar 2014 09:37:44 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.140.81.244 with SMTP id f107mr4035812qgd.104.1394127464298; Thu, 06 Mar 2014 09:37:44 -0800 (PST) Received: by 10.140.48.109 with HTTP; Thu, 6 Mar 2014 09:37:44 -0800 (PST) Date: Thu, 6 Mar 2014 17:37:44 +0000 Message-ID: From: Ben Millwood To: ocaml-core@googlegroups.com, caml-list@inria.fr Content-Type: multipart/alternative; boundary=001a11c136ca4892b604f3f3989f Subject: [Caml-list] [ANN] Core Suite 111.03.00 --001a11c136ca4892b604f3f3989f Content-Type: text/plain; charset=ISO-8859-1 I am pleased to announce the 111.03.00 release of the Core suite. The following packages were upgraded: - async - async_extra - async_kernel - async_unix - bin_prot - core - core_extended - core_kernel - custom_printf - jenga - ocaml_plugin - re2 - sexplib - textutils In addition, with this release we are including a new package: - enumerate, a syntax extension for enumerating finite types. Files and documentation for this release are available on our website and all packages are in opam: https://ocaml.janestreet.com/ocaml-core/111.03.00/individual/ https://ocaml.janestreet.com/ocaml-core/111.03.00/doc/ Here is the list of changes for this version: # 111.03.00 ## async_extra - Add `?max_connections:int` argument to `Rpc.Connection.serve`. `max_connections` is passed to `Tcp.Server.create`, and limits the number of connections that an Rpc server will accept. - Improved `Log.Rotation`: - Made `Log.Rotation.t` abstract; use `create` rather than an explicit record. - Added a `` `Dated`` `naming_scheme`. - Add `Log.Rotation.default`, for getting a sensible default rotation scheme. - Added an optional (but discouraged) option to symlink the latest log file. - Every log rotation scheme has an associated `Time.Zone.t`. - Changed the internal representation of `Log.Rotation.t`, but `t_of_sexp` is backwards compatible, so existing config files will continue to work. - Changed `Udp.bind_any` to use `Socket.bind ~reuseaddr:false`, to ensure a unique port. - Added `Tcp.Server.listening_socket`, which returns the socket the server is listening on. Changed `Tcp.Server` so that if the listening socket is closed, the server is closed. - Added to `Udp.Config.t` a `max_ready : int` field to prevent UDP receive loops from starving other async jobs. - Improved `File_tail` to cut the number of `fstat` calls in half. `File_tail` uses a stat loop to monitor a file and continue reading it as it grows. We had made two `fstat` invocations per loop iteration, using `Async.Std.Unix.with_file` which constructs an `Fd.t` and therefore does it own `fstat`. Switching to `Core.Std.Unix.with_file` with `In_thread.run` eliminated the extra `fstat`. ## async_unix - Improved `Socket.accept` to abort and return `` `Socket_closed`` when the file descriptor underlying the socket is closed. - Added to `Socket.bind` a `?reuseaddr:bool` argument, preserving the default as `true`. - Added `Fd.close_started`, which becomes determined when `close` is called on an `Fd.t`. ## bin_prot - Fixed build on ARM. ## core - Added `Unix.Syslog` module. - Changed `Command.run` to no longer ignore the first element of its `~argv` parameter. - Made `Time.Span.to_short_string` show microsecond precision. ## core_extended - Added `Set_lang`, a DSL for sets with constants, union, intersection, and difference. - In `Process`, use `epoll` rather than `select` when possible, This prevents errors when selecting on file descriptors numbered greater than `FD_SETSIZE` (1024). - Removed `Syslog` module. There is now `Unix.Syslog` in core instead; the APIs are not compatible, but they are similar. ## core_kernel - Added `Error.to_string_hum_deprecated` that is the same as `Error.to_string_hum` pre 109.61. - Changed `Error.to_string_hum` so that `Error.to_string_hum (Error.of_string s) = s`. This fixed undesirable sexp escaping introduced in 109.61 and restores the pre-109.61 behavior for the special case of `Error.of_string`. A consequence of the removal of the custom `to_string_hum` converter in 109.61 was that: Error.to_string_hum (Error.of_string s) = Sexp.to_string_hum (Sexp.Atom s) That introduced sexp escaping of `s`. - Added to `Doubly_linked` functions for moving an element within a list. val move_to_front : 'a t -> 'a Elt.t -> unit val move_to_back : 'a t -> 'a Elt.t -> unit val move_after : 'a t -> 'a Elt.t -> anchor:'a Elt.t -> unit val move_before : 'a t -> 'a Elt.t -> anchor:'a Elt.t -> unit - Improved `Core_map_unit_tests.Unit_tests` to allow arbitrary data in the map, not just `ints`. This was done by eta expansion. ## custom_printf - Simplified the code generated by `pa_custom_printf` to make it more readable. ## re2 - Fixed a bug with `replace_exn` and anchoring. Fixed this bug: $ R.replace_exn ~f:(fun _ -> "a") (R.create_exn "^") "XYZ";; - : string = "aXaYaZa" $ R.replace_exn ~f:(fun _ -> "a") (R.create_exn "^X") "XXXYXXZ";; - : string = "aaaYXXZ" ## textutils - Changed `Textutils.Console` to not reference `Async.Log`, so that building inline benchmark runners no longer requires building `Async`. The change makes `Textutils`, and by extension `Core_extended` and `Core_bench`, not depend on `Async`. --- We hope you enjoy it! -- Ben Millwood, for the Core team --001a11c136ca4892b604f3f3989f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I am pleased to announce the 111.03.00 release of the Core= suite.

The following packages were upgraded:
<= div style>
- async
- async_extra
- async_kernel
- async_unix
- bin_prot
-= core
- core_extended
- core_kernel
- custom_= printf
- jenga
- ocaml_plugin
- re2
- sexplib
- textutils

I= n addition, with this release we are including a new package:

- enumerate, a syntax extension for enumerating fin= ite types.

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

Here is the list of changes for this = version:

# 111.03.00
<= br>
## async_extra

- Add `?ma= x_connections:int` argument to `Rpc.Connection.serve`.

`ma= x_connections` is passed to `Tcp.Server.create`, and limits the
<= span class=3D"" style=3D"white-space:pre"> number of connections th= at an Rpc server will accept.

- Improved `Log.Rotation`:

- Made `Log.Rotation.t` ab= stract; use `create` rather than an
=A0explicit record.
- Added a `` `Date= d`` `naming_scheme`.
= - Add `Log.Rotation.default`, for getting a sensible default
<= div> =A0rotation scheme.
- Added an opti= onal (but discouraged) option to symlink the latest
=A0log file.
- Every log rotati= on scheme has an associated `Time.Zone.t`.
- Changed the internal representation of `Log= .Rotation.t`, but
=A0`t_of_sexp` is= backwards compatible, so existing config files will
continue to work.

<= /div>
- Changed `Udp.bind_any` to use `Socket.bind ~reuseaddr:false`, to
=A0 ensure a unique port.
- Added `Tcp.Server.listening_socket`= , which returns the socket the
=A0 server is listening on.
<= div>
Changed = `Tcp.Server` so that if the listening socket is closed, the
server is closed.
=
- Added to `Udp.Config.t` a `max_ready : int` field to prevent U= DP
=A0 receive loops from starving other async jobs.
- = Improved `File_tail` to cut the number of `fstat` calls in half.

`File_ta= il` uses a stat loop to monitor a file and continue reading
it as it grows. =A0We had ma= de two `fstat` invocations per loop
iteration, using `= Async.Std.Unix.with_file` which constructs an
`Fd.t` and therefore does it own `fstat`. = =A0Switching to
`Core.Std.Unix.wit= h_file` with `In_thread.run` eliminated the extra
`fstat`.

## a= sync_unix

- Improved `Socket.accept` to abort and return `` `Sock= et_closed`` when
=A0 the file descriptor underlying the socket is= closed.
- Added to `Socket.bind` a `?reuseaddr:bool` argument, p= reserving the
=A0 default as `true`.
- Added `Fd.close_started`, which bec= omes determined when `close` is
=A0 called on an `Fd.t`.

## bin_prot

- Fixed build on ARM.=

## core

- Added `Unix.Syslog` = module.
- Changed `Command.run` to no longer ignore the first ele= ment of its
=A0 `~argv` parameter.
- Made `Time.Span.to= _short_string` show microsecond precision.

## core_extended

- Added `Set_= lang`, a DSL for sets with constants, union, intersection,
=A0 an= d difference.
- In `Process`, use `epoll` rather than `select` wh= en possible,

Thi= s prevents errors when selecting on file descriptors numbered
greater than `FD_SETSIZE` = (1024).

- Removed `Syslog` module. There is now `Unix.Syslog` i= n core instead;
=A0 the APIs are not compatible, but they are sim= ilar.

## core_kernel

- Ad= ded `Error.to_string_hum_deprecated` that is the same as
=A0 `Error.to_string_hum` pre 109.61.
- Changed `Error.to_st= ring_hum` so that
`Error.to_string_hum (Error.of_string s) =3D s`.

This fixed undesirab= le sexp escaping introduced in 109.61 and
restores the pre-1= 09.61 behavior for the special case of
`Error.of_string`. =A0A consequence of the remova= l of the custom
`to_string_hum` co= nverter in 109.61 was that:

=A0 =A0Error.to_string_hum (Error.of_string = s) =3D Sexp.to_string_hum (Sexp.Atom s)

Tha= t introduced sexp escaping of `s`.

- Added to `Dou= bly_linked` functions for moving an element
=A0 within a list.

=A0 =A0 =A0 =A0 val move_to_front : 'a t -> '= ;a Elt.t -> unit
=A0 =A0 =A0 =A0 val move_to_back =A0: 'a = t -> 'a Elt.t -> unit
=A0 =A0 =A0 =A0 val move_after = =A0 =A0: 'a t -> 'a Elt.t -> anchor:'a Elt.t -> unit
=A0 =A0 =A0 =A0 val move_before =A0 : 'a t -> 'a Elt.t ->= ; anchor:'a Elt.t -> unit

- Improved `Core_= map_unit_tests.Unit_tests` to allow arbitrary data
=A0 in the map= , not just `ints`.

Thi= s was done by eta expansion.

## custom_printf

- Simplified the code generated by `pa_custom_printf` = to make it
=A0 more readable.

## re2

- Fixed a bug with `replace_exn` and anchoring.

<= div> Fixed this bug:

= =A0 =A0$ R.replace_exn ~f:(fun _ -> "a") (R.create_exn "^= ") "XYZ";;
=A0 =A0- : string =3D "aXaYaZa"
=A0 =A0=A0
<= div> =A0 =A0$ R.replace= _exn ~f:(fun _ -> "a") (R.create_exn "^X") "XXX= YXXZ";;
=A0 =A0- : string= =3D "aaaYXXZ"

## textutils
- Changed `Textutils.Console` to not reference `Async.Log`, so= that
building inline ben= chmark runners no longer requires building `Async`.

The change makes `Tex= tutils`, and by extension `Core_extended` and
`Core_bench`, not = depend on `Async`.

---

We hope you enjoy it!

-- Ben Millw= ood, for the Core team
--001a11c136ca4892b604f3f3989f--