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 694FD7EE99 for ; Mon, 20 Jan 2014 10:28:12 +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@tot-dmz-mxout1.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@tot-dmz-mxout1.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8BAALr3FImacjlnGdsb2JhbABZg0NWuz2BAR4OAQEBAQEGFgk8giYBBUABATgPFjsiEgEFARIKiB4DAgibXYsThFIBBZd6EQIEjj0+C4IvD4F6mCaQKxgphFmBag X-IPAS-Result: Aq8BAALr3FImacjlnGdsb2JhbABZg0NWuz2BAR4OAQEBAQEGFgk8giYBBUABATgPFjsiEgEFARIKiB4DAgibXYsThFIBBZd6EQIEjj0+C4IvD4F6mCaQKxgphFmBag X-IronPort-AV: E=Sophos;i="4.95,689,1384297200"; d="scan'208";a="53971286" Received: from mx5.janestreet.com (HELO tot-dmz-mxout1.janestreet.com) ([38.105.200.229]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 20 Jan 2014 10:28:11 +0100 Received: from tot-oib-smtp1.delacy.com ([172.27.22.15] helo=tot-smtp) by tot-dmz-mxout1.janestreet.com with esmtp (Exim 4.76) (envelope-from ) id 1W5B9O-0002An-05 for caml-list@inria.fr; Mon, 20 Jan 2014 04:28:10 -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 1W5B9N-0004T2-VR for caml-list@inria.fr; Mon, 20 Jan 2014 04:28:09 -0500 Received: from mail-we0-f173.google.com ([74.125.82.173]) by mxgoog2.janestreet.com with esmtp (Exim 4.76) (envelope-from ) id 1W5B9N-0004Mb-RM for caml-list@inria.fr; Mon, 20 Jan 2014 04:28:09 -0500 Received: by mail-we0-f173.google.com with SMTP id t60so6746856wes.32 for ; Mon, 20 Jan 2014 01:28:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=you58kRhOQNicpQpEi4RkkuGvhwt/8f1m3bpUn8voHk=; b=wlPyY6GcG17tainLIIvM1inOLT4mhstf+74nQNB3LLA45d1yhAI1LyBhU/Dn62qxwC N76tSUwA8CbBzb8RKO969rAdPrvTpJW5EaaGwFo10BefQnagxJpha++ej2fEU5Ou++/7 rMN51VZmCXSFBW7C/b0q9XbzIZcPVtCwL0/xw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=you58kRhOQNicpQpEi4RkkuGvhwt/8f1m3bpUn8voHk=; b=jpYiQ/G3ShI14A2LDuv8CSVinAyvNLT/G4ZbXmrO2DCxwTglxa9Bq6bmgvpfmqC5Ib qhFf4VLn12bbnSxnqsJk+CK5lhUXmJNz2nVRYu7uhB6yR9CPLQ5xoyY6b0HvtNEdRWcD a+C24K8PRoFJDLOHRVWCmtFlxyC59xPlOOnuV9EaosXK3kdifyKwtyP3LVg0p5AGP2fu zAL8wV3l3c12YWCd3+1wdxcBxSy7eqGk8/EmNFSh4G8xZgGLsbkqKWnOknX73T3GU9sd k1vVWhEIiOAJvL/509tvlSldGJpvRyu9Trwjr/Ifbx3tibNeOLRJ5xiOte+ysyXWkIQu 7L8g== X-Gm-Message-State: ALoCoQl7AdQTBp4PMxZfiA4p4TVr8qSBfFSF+cflM/I77YfiNc3yPmpsaiN54MzN+cBxsWrrrXPJgh885HVJUQmhAmsuj3SnJurz5MZGKF6A/wIUEuA3//OOoW65k9Ciy/MwA7/UDKLCowAPNQiEe9mLQts/2Y67Xw== X-Received: by 10.194.236.9 with SMTP id uq9mr13191918wjc.31.1390210089339; Mon, 20 Jan 2014 01:28:09 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.194.236.9 with SMTP id uq9mr13191913wjc.31.1390210089219; Mon, 20 Jan 2014 01:28:09 -0800 (PST) Received: by 10.195.12.229 with HTTP; Mon, 20 Jan 2014 01:28:09 -0800 (PST) In-Reply-To: References: Date: Mon, 20 Jan 2014 09:28:09 +0000 Message-ID: From: Ben Millwood To: caml-list@inria.fr Content-Type: multipart/alternative; boundary=089e01493de08814e404f0638295 Subject: [Caml-list] Fwd: [ANN] Core Suite 109.60.00 --089e01493de08814e404f0638295 Content-Type: text/plain; charset=ISO-8859-1 I am excited to announce the 109.60.00 release of the Core suite. The following packages were upgraded: - async - async_extra - async_kernel - async_unix - comparelib - core - core_kernel - custom_printf - faillib - pipebang - sexplib - type_conv Files and documentation for this release are available on our website and all packages are in opam: https://ocaml.janestreet.com/ocaml-core/109.60.00/individual/ https://ocaml.janestreet.com/ocaml-core/109.60.00/doc/ Here is the list of changes for this version: # 109.60.00 ## async_extra - Replaced `Tcp_file.serve`'s `~port:int` argument with `Tcp.Where_to_listen.inet`. ## async_kernel - Changed the scheduler to clear a job from its queue when it runs the job, eliminating a performance regression from 109.57. Clearing avoids spurious promotion of what would otherwise be dead data associated with already-executed jobs. ## async_unix - Fixed a bug in detection of the thread pool being stuck that could overstate the amount of time the pool was stuck. It had been incorrectly reporting the duration of the thread pool being stuck if the pool had no work in it and then got enough jobs to be stuck. In that situation, the duration included the time span before the pool got stuck. If the pool had been idle long enough, this could even spuriously abort the program. ## comparelib - Fixed a type error in `with compare` of polymorphic variant inclusions. ## core - Added `Iobuf.unsafe_advance`. This can be used to benchmark inner loops that have redundant bounds checking, to see if the checks matter. For example, see the following two `advance` calls: let rec process_buffer buf ~f = let len = Iobuf.length buf in if header_len <= len then let msg_len = header_len + Iobuf.Unsafe.Peek.uint16_be buf ~pos:0 in if msg_len <= len then begin let len = msg_len - header_len in Iobuf.advance buf header_len; f (Protocol.packed_of_iobuf buf); Iobuf.advance buf len; process_buffer buf ~f end - Added `Weak_hashtbl.add_exn` and `sexp_of_t`. - Fixed `Lock_file.create` to behave correctly if the target mountpoint is out of space. Previously in this situation, `Lock_file.create` would create an empty lock and exit with exception trying to write pid/message there. Subsequent runs would not able to read pid out of empty pid file and `blocking_create` would block instead of removing defective lock. - Dropped the `-principal` flag from corebuild ## core_kernel - Added `Gc.keep_alive`, which ensures its argument is live at the point of the call. - Added `Sexp.With_text` module, which keeps a value and the a sexp it was generated from, preserving the original formatting. ## custom_printf, faillib, pipebang, type_conv - Compatibility with warning 7 (method override) ## sexplib - Separated out an exception printer that depends on unix into a separate `sexplib_unix` item. I hope you like it! -- Ben Millwood, for the Core team --089e01493de08814e404f0638295 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I am excited to announce the 109.60.00 release of the Core= suite.

= The following packages were upgraded:

- async
- async_extra
- async_kernel
- async_unix
- comparelib
- core
= - core_kernel
- custom_printf
- faillib
- pipebang
- sexplib
- type_conv

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


Here is the list of changes for this version:

# 109.60.00

## async_extra

- Replaced `Tcp_file.serve`'s `~port:int` argume= nt with
=A0 `Tcp.Where_to_listen.inet`.

## async_kern= el

- Changed the scheduler to clear a job from its= queue when it runs the
=A0 job, eliminating a performance regres= sion from 109.57.

=A0 =A0 Clearing avoids spurious promotion of what woul= d otherwise be dead
=A0 =A0 data associated with already-executed= jobs.

## async_unix

- Fi= xed a bug in detection of the thread pool being stuck that could
=A0 overstate the amount of time the pool was stuck.

=A0 =A0 It had been incorrectly reporting the duration of the threa= d pool
=A0 =A0 being stuck if the pool had no work in it and then= got enough jobs
=A0 =A0 to be stuck. =A0In that situation, the duration included the t= ime span
=A0 =A0 before the pool got stuck. =A0If the pool had be= en idle long enough,
=A0 =A0 this could even spuriously abort the= program.

## comparelib

- Fixed a type e= rror in `with compare` of polymorphic variant inclusions.

## core

- Added `Iobuf.unsafe_advance`.

=A0 =A0 This can be used to benchmark inner loops that = have redundant bounds
=A0 =A0 checking, to see if the checks matt= er. =A0For example, see the
=A0 =A0 following two `advance` calls= :

=A0 =A0 =A0 =A0 let rec process_buffer buf ~f =3D
= =A0 =A0 =A0 =A0 =A0 let len =3D Iobuf.length buf in
=A0 =A0 =A0 = =A0 =A0 if header_len <=3D len then
=A0 =A0 =A0 =A0 =A0 =A0 le= t msg_len =3D header_len + Iobuf.Unsafe.Peek.uint16_be buf ~pos:0 in
=A0 =A0 =A0 =A0 =A0 =A0 if msg_len <=3D len then begin
= =A0 =A0 =A0 =A0 =A0 =A0 =A0 let len =3D msg_len - header_len in
= =A0 =A0 =A0 =A0 =A0 =A0 =A0 Iobuf.advance buf header_len;
=A0 =A0= =A0 =A0 =A0 =A0 =A0 f (Protocol.packed_of_iobuf buf);
=A0 =A0 =A0 =A0 =A0 =A0 =A0 Iobuf.advance buf len;
=A0 =A0 = =A0 =A0 =A0 =A0 =A0 process_buffer buf ~f
=A0 =A0 =A0 =A0 =A0 =A0= end

- Added `Weak_hashtbl.add_exn` and `sexp_of_t= `.
- Fixed `Lock_file.create` to behave correctly if the target m= ountpoint
=A0 is out of space.

=A0 =A0 Previously in th= is situation, `Lock_file.create` would create an
=A0 =A0 empty lo= ck and exit with exception trying to write pid/message
=A0 =A0 th= ere. Subsequent runs would not able to read pid out of empty pid
=A0 =A0 file and `blocking_create` would block instead of removing def= ective
=A0 =A0 lock.

- Dropped the `-pri= ncipal` flag from corebuild

## core_kernel

- Added `Gc.keep_alive`, which ensures its argument is live at t= he point
=A0 of the call.
- Added `Sexp.With_text` modu= le, which keeps a value and the a sexp it
=A0 was generated from,= preserving the original formatting.

## custom_printf, faillib, pipebang, type_conv

- Compatibility with warning 7 (method override)

## sexplib

- Separated out an exce= ption printer that depends on unix into a separate `sexplib_unix` item.

I hope you like it!

-- Ben Mil= lwood, for the Core team

--089e01493de08814e404f0638295--