caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Francois Berenger <francois.berenger@inria.fr>
To: OCaml Mailing List <caml-list@inria.fr>
Subject: [Caml-list] [ANN] Batteries 2.4.0
Date: Wed, 16 Dec 2015 12:15:42 +0100	[thread overview]
Message-ID: <567147DE.4000202@inria.fr> (raw)

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)

                 reply	other threads:[~2015-12-16 11:15 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=567147DE.4000202@inria.fr \
    --to=francois.berenger@inria.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).