Skip to content

Releases: c-cube/ocaml-containers

3.15

18 Nov 18:53
e1de3da
Compare
Choose a tag to compare

CHANGES:

3.14

10 Sep 12:49
6ab811f
Compare
Choose a tag to compare

CHANGES:

  • predicate combinators: and_pred and or_pred

  • feat pp: add a bunch of extensions

  • Kleisli Composition Operator and Apply_or for option/result/fun (#455)

  • add CCByte_buffer.to_slice

  • add a byte slice type CCByte_slice

  • add cons_when to CCListLabels

  • add (|||>) and ||> to CCFun

  • CCVector: Add function foldi

  • add containers.pvec, a persistent vector type.

  • perf: use a monomorphic impl for CCMonomorphic.{min,max}

3.13.1

20 Dec 19:41
60bb2c8
Compare
Choose a tag to compare

CHANGES:

  • list: TRMC was in 4.14, we can use it earlier
  • fix insidious bug in CCList.flat_map linked to unspecified
    evaluation order
  • perf: use concat_map for CCList.flat_map on >= 5.1
    (this also re-fixes the same bug in CCList.flat_map anyway)

3.13

05 Dec 21:10
7c1ca1d
Compare
Choose a tag to compare

CHANGES:

  • breaking: delete containers-thread (which was deprecated)

  • breaking: pp: modify Ext.t so it takes surrounding value

  • CCMultiMap: Rename functions find_left and find_right in the bidirectional multimap
    to find_left_iter and find_right_iter respectively to reflect their usage,
    and add new functions to replace the old find_left and find_right
    that return a list of values rather than an iterator,
    to make the signatures of CCMultiMap.S and CCMultiMap.BIDIR cohere.
    Additionally, change the return type of
    S.find_iter from t -> key -> (value -> unit) -> unit to t -> key -> value iter.

  • CCList: add unfold

  • CCBool: Add functions if_then and if_then_else

  • CCList: remove some functions that are subsumed by the stdlib

  • CCList: use TRMC for many functions on 5.1

  • feat CCFunvec: add fold_rev

  • add Containers_pp.newline_or_spaces

  • cleanup: remove stubs for code always present on 4.08, rely on
    newer functions in 5.1

  • remove last refs to CCShims

  • perf: accelerate List.append and List.flat_map on 5.1

  • more warnings, more tests, cleanup dead code

  • change COC to ocaml-coc

3.12

06 Jun 17:42
81acaaa
Compare
Choose a tag to compare
  • add containers.pp sublibrary, with Wadler-style pretty printing combinators

  • add CCArray.{max,argmax,min,argmin} and their _exn counterparts

  • add CCParse.take_until_success

  • add Option.flat_map_l

  • add CCSet.{find_first_map,find_last_map}

  • CCHash: native FNV hash for int64/int32

  • fix bugs in CCParse related to recurse and Slice

  • fix: fix Set.find_last_map on OCaml 4.03

  • fix: make sure Vector.to_{seq,gen} captures the length initially

3.11

07 Feb 18:13
161c192
Compare
Choose a tag to compare
  • official OCaml 5 support

  • add CCFun.(let@) (if OCaml >= 4.08)

  • add CCHet.Tbl.{clear,reset}

  • fix(CCVector): concurrent modification safety in resize_with

  • fix(CCVector): always obtain a copy of array before using unsafe_{set,get}

  • CI: add ocaml 5.0.x

3.10

16 Nov 18:24
069423b
Compare
Choose a tag to compare
  • CCArray: add mapi_inplace

  • add sublibrary containers.scc for strongly connected components

  • CCSeq: add concat_map

  • CCSeq: add some missing function from 4.14

  • add CCInt64.{hash,hash_to_int64}

  • Ref: add protect function

  • fix: include Seq in CCSeq for ocaml >= 4.07

3.9

07 Jul 14:11
249dc35
Compare
Choose a tag to compare
3.9
  • feat: add Containers_cbor module

  • feat(CCInt32): add popcount function

  • feat(CCInt64): add popcount operation

  • CCBV:

    • more extensive test suite
    • use bytes underneath, not an array of integers
  • add containers_testlib, removing qtest and ounit.

  • fix: handle uppercase in string/hex

3.8

13 Jun 02:12
75b498a
Compare
Choose a tag to compare
3.8
  • add Containers_bencode for lightweight (de)ser

  • perf(CCHash): improve a bit commutative hashing of arrays/lists

  • perf(CCHash): only hash prefix of string/bytes

  • feat(CCList): Add Assoc.{keys,values,map_values}

  • feat(CCArray): add CCArray.map_inplace

  • add CCString.{to_hex,of_hex}

  • fix(Atomic): prevent race conditions under flambda, for now

3.7

24 Mar 19:45
a2a1901
Compare
Choose a tag to compare
3.7
  • add Format.styling

  • make Format compatible with OCaml 5.0, using Stag for colors

  • new preprocessor, compatible with merlin, using [@@@ifge 4.12]-style pragmas

  • feat: add Byte_buf, a byte buffer.

  • add CCSeq.{zip_i,of_string}

  • add CCResult.opt_map to simplify result function application over optionals (#397)

  • add shims for Atomic and Unit

  • expose CCParse.pos to get current pos; improve perf

  • add CCVector.resize_with and CCVector.resize_with_init, tests and doc (#389)

  • add CCVector.insert

  • update dune to 1.10, condition some rules to unix

  • perf: reduce allocations in CCSeq.to_array

  • fix asymptotic behavior of resize functions in CCVector

  • fix: rely on either compatibility library