From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id 3464B5D5 for ; Fri, 26 Nov 2021 08:07:32 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.87,265,1631570400"; d="scan'208";a="6223496" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 26 Nov 2021 09:07:31 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id F2EE0E0380; Fri, 26 Nov 2021 09:07:30 +0100 (CET) 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 21204E037F for ; Fri, 26 Nov 2021 09:07:25 +0100 (CET) IronPort-Data: =?us-ascii?q?A9a23=3AE8uf8KJiG2VIxzemFE+RFZclxSXFcZb7ZxGrkP8?= =?us-ascii?q?bfHCxhm8k3zVTm2AaW2GEM/bYNzf1eNwiaInn8EkGupbRxoNqS1BcGVNFHysb8?= =?us-ascii?q?5KdbTi6Bh6tZH3KdpWroHqKXqzyU/GYRCwPZiKa9kjF3oTJ9yEmjPjRHOSkUYY?= =?us-ascii?q?oBwgqLeNaYHZ44f5cs75h6mJYqYDR7zKl4bsekeWHULOW82Ic3lYv1k62gEgHU?= =?us-ascii?q?MIeF98vlgdWifhj5DcynpSOZX4VDfnZw3DQGuG4EgMmLtsvwo1V/kuBl/ssIsy?= =?us-ascii?q?knLe+alcNB+6JeFHT1jxOUrKjmV5DoDYz2+A1LpLwa28O0WXPzos3mI4L7MHsI?= =?us-ascii?q?esqFvSkdOA1XQNRFSp5PLYA4LjbPXmyq+SSyVfHej3i2Z2CCWloZ9dDprsqaY1?= =?us-ascii?q?J3blCQNwXVTiIjueyhba6UfVEndUmNMCtPYUFu3gmwyuxMBqMafgvWI3V5NFZm?= =?us-ascii?q?S8qgYUeRrOHOpZfcTN1bQ+GYhtVO15RBohWoQthvVGnGxUwlb5fjfFfD7Dv8TF?= =?us-ascii?q?M?= IronPort-HdrOrdr: =?us-ascii?q?A9a23=3AwEhVLqrP0UhlXDR1XvBSl0EaV5oReYIsimQD?= =?us-ascii?q?101hICG9Ffbo8vxG/c5rtyMc5wx7ZJhNo7q90cq7MBDhHPdOiOEs1NGZMzUO01?= =?us-ascii?q?HEEGgN1+ff6gylPxLFz+BYvJ0AT4FOTPnON2J3isvB4BS1euxP/DD+ysCVuds?= =?us-ascii?q?=3D?= X-IronPort-AV: E=Sophos;i="5.87,265,1631570400"; d="scan'208";a="6223455" Received: from wifi-pro-83-154.paris.inria.fr ([128.93.83.154]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 26 Nov 2021 09:07:25 +0100 To: OCaML Mailing List From: =?UTF-8?Q?Fran=c3=a7ois_Pottier?= Message-ID: <22e3ceaf-8322-3b0a-73fe-5be28b560ca0@inria.fr> Date: Fri, 26 Nov 2021 09:07:24 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.12.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Subject: [Caml-list] [ANN] New release of Fix (20211125) Reply-To: =?UTF-8?Q?Fran=c3=a7ois_Pottier?= X-Loop: caml-list@inria.fr X-Sequence: 18618 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Dear OCaml users, I am pleased to announce a new release of Fix, with several new modules contribued by Frédéric Bour (thanks!). In short, Fix is a toolkit that helps perform memoization and fixed point computations (including data flow analyses). More generally, it offers a number of basic algorithmic building blocks that can be useful in many circumstances. opam update opam install fix.20211125 Documentation can be found here: https://gitlab.inria.fr/fpottier/fix/-/blob/master/README.md http://cambium.inria.fr/~fpottier/fix/doc/fix/Fix/index.html Enjoy, -- François Pottier francois.pottier@inria.fr http://cambium.inria.fr/~fpottier/ ## 2021/11/25 * The new module `CompactQueue` offers a minimalist mutable FIFO queue. It is comparable with OCaml's `Queue` module. In comparison with `Queue`, it uses a more compact internal representation: elements are stored contiguously in a circular array. This has a positive impact on performance: both time and memory consumption are reduced. This data structure is optimized for maximum throughput. (Contributed by Frédéric Bour, reviewed by François Pottier.) * The new functor `DataFlow.ForCustomMaps` offers a forward data flow analysis that is tuned for greater performance. (Contributed by Frédéric Bour, reviewed by François Pottier.) * The new module `Indexing` offers a safe API for manipulating indices into fixed-size arrays. This API involves some dynamic checks as well as static type checks, thereby (hopefully) greatly reducing the risk of confusion in code that uses many arrays and many indices into these arrays. (Contributed by Frédéric Bour, reviewed by François Pottier.) * In `DataFlow`, allow the function `foreach_root` (which is part of the signature `DATA_FLOW_GRAPH`) to call `contribute x _` several times at a single root `x`.