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 9F5817FBA6 for ; Wed, 16 Dec 2015 12:15:43 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.20,436,1444687200"; d="scan'208";a="192434631" Received: from meleze.ens.fr (HELO [129.199.99.114]) ([129.199.99.114]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 16 Dec 2015 12:15:43 +0100 To: OCaml Mailing List From: Francois Berenger Message-ID: <567147DE.4000202@inria.fr> Date: Wed, 16 Dec 2015 12:15:42 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: [Caml-list] [ANN] Batteries 2.4.0 Dear OCaml users, Batteries (OCaml Batteries Included) is a community-developed overlay over the "standard" library distributed with the compiler, that aims to provide general-purpose data-structures and convenient functions. The project follows a semantic versioning scheme; the new version is backward-compatible with the previous releases (2.3.1 was in October 2014). The lowest OCaml version certainly supported is 3.12.1. The new release is available in OPAM, or as a tarball https://github.com/ocaml-batteries-team/batteries-included/\ releases/tag/v2.4.0 or from the sources https://github.com/ocaml-batteries-team/batteries-included The online API documentation is at: http://ocaml-batteries-team.github.io/batteries-included/hdoc2/ This release contains a handful of new functions and bugfixes -- see the detailed changelog below. Two highlights are the `pop_{min,max}` in BatSet and `pop_{min,max}_bindings` in BatMap contributed by François Berenger, and a nasty bug when hashing values close to min_int spotted by Martin Neuhäußer -- this long-hidden bug was due to a mistake in the backward-compatibility code for the hashing function transition between OCaml 3.12 and OCaml 4.00. With many thanks to the contributors to this new release, including Guillaume Allais, Aleksey Z. Arens, Nils Becker, François Berenger, Sang Kil Cha, Simon Cruanes, Bob Fang, Anders Fugmann, Rudi Grinberg, Herry, Christoph Höger, Max Mouratov, Martin R. Neuhäußer, Gabriel Scherer, Quentin Stievenart, Kevin Brubeck Unhammer, Ralf Vogler, and Xavier Van de Woestyne. New contributors are always welcome, you can have a look at the issue list on github to find something you would be interested into working on and discuss with the maintainers: https://github.com/ocaml-batteries-team/batteries-included/issues With our best regards, The OCaml batteries-included team. # Detailed changelog - BatBitSet: use Bytes instead of String (Gabriel Scherer) - BatHashtbl: fix hash computation bug introduced by 4.01 (issue #609) (Gabriel Scherer, report by Martin R. Neuhäußer) - BatText: synchronize nsplit to match BatString.nsplit (Gabriel Scherer) - BatLazyList: fix remove_all_such documentation (Xavier Van de Woestyne) - BatMap: add pop_min_binding: 'a t -> (key * 'a) * 'a t and pop_max_binding: 'a t -> (key * 'a) * 'a t (Francois Berenger) - BatMap: add at_rank_exn: int -> ('key, 'a) t -> ('key * 'a) and update: key -> key -> 'a -> 'a t -> 'a t (Francois Berenger) - BatEnum: add interleave: 'a t array -> 'a t (Aleksey Z. Arens) - BatFormat: expose asprintf for V>=4.01 (Ralf Vogler) - BatSet: add at_rank_exn: int -> t -> elt and update: elt -> elt -> t -> t (Francois Berenger) - BatUTF8: add enum: t -> BatUChar.t BatEnum.t (Kevin Brubeck Unhammer) - BatSet: add to_array: t -> elt array and of_array: elt array -> t and test for to_list (Francois Berenger) - BatSet: add pop_max: 'a t -> 'a * 'a t and pop_min: 'a t -> 'a * 'a t (Francois Berenger) - BatSplay: hardened against read-only-data compiler optimization (Gabriel Scherer) - BatList: simplified interleave implementation (Francois Berenger) - BatOption: add Infix.(>>=): 'a option -> ('a -> 'b option) -> 'b option (Herry Herry) - BatHashtbl: modify now have same semantics than replace for the key (Anders Fugmann) - BatHashtbl: more efficient modify_opt and modify_def (Anders Fugmann) - BatFormat: add pp_print_list: ?pp_sep:(formatter -> unit -> unit) -> (formatter -> 'a -> unit) -> (formatter -> 'a list -> unit) and pp_print_text: formatter -> string -> unit (Christoph Höger) - BatEnum: add uniq_by: ('a -> 'a -> bool) -> 'a t -> 'a t and uniqq: 'a t -> 'a t (Max Mouratov) - BatEnum: fix uniq to use structural comparison (Max Mouratov) - BatUnix: add run_and_read: string -> process_status * string (Francois Berenger) - BatCache: use hashmap to speed up lru_cache (Sang Kil Cha) - BatQueue: add filter: ('a -> bool) -> 'a t -> 'a t and filter_inplace: ('a -> bool) -> 'a t -> unit and filter_map: ('a -> 'b option) -> 'a t -> 'b t (Gabriel Scherer)