diff --git a/CHANGELOG.md b/CHANGELOG.md index c05947a4..d55ea6b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.10 + +- add `containers_misc.Puf.iter` +- add `CCString.{lines,unlines,concat_gen}` +- `CCUnix` (with a small subprocess API) +- add `CCList.{sorted_merge_uniq, uniq_succ}` +- breaking: fix documentation of `CCList.sorted_merge` (different semantics) +- `CCPersistentArray` (credit to @gbury and Jean-Christophe Filliâtre) +- `CCIntMap` (big-endian patricia trees) in containers.data +- bugfix in `CCFQueue.add_seq_front` +- add `CCFQueue.{rev, --}` +- add `App_parse` in `containers_string`, experimental applicative parser combinators +- remove `containers.pervasives`, add the module `Containers` to core +- bugfix in `CCFormat.to_file` + ## 0.9 - add `Float`, `Ref`, `Set`, `Format` to `CCPervasives` @@ -178,7 +193,7 @@ - renamed threads/future to threads/CCFuture - big upgrade of `RAL` (random access lists) - `CCList.Ref` to help use references on lists -- `CCKList`: group,uniq,sort,sort_uniq,repeat and cycle, infix ops, applicative,product +- `CCKList`: `group,uniq,sort,sort_uniq,repeat` and `cycle`, infix ops, applicative,product - `CCTrie.above/below`: ranges of items - more functions in `CCPair` - `CCCat`: funny (though useless) definitions inspired from Haskell @@ -192,7 +207,7 @@ - conversions for `CCString` - `CCHashtbl`: open-addressing table (Robin-Hood hashing) - registered printers for `CCError`.guard,wrap1,etc. -- monadic operator in `CCList`: map_m_par +- monadic operator in `CCList`: `map_m_par` - simple interface to `PrintBox` now more powerful - constructors for 1 or 2 elements fqueues - bugfixes in BTree (insertion should work now) @@ -206,7 +221,7 @@ - `CCopt.pure` - updated `CCPersistentHashtbl` with new functions; updated doc, simplified code - move `CCString` into core/, since it deals with a basic type; also add some features to `CCString` (Sub and Split modules to deal with slices and splitting by a string) -- `CCArray.blit`, .Sub.to_slice; some bugfixes +- `CCArray.blit`, `.Sub.to_slice`; some bugfixes - applicative and lifting operators for `CCError` - `CCError.map2` - more combinators in `CCError` @@ -219,9 +234,9 @@ - `CCOpt.sequence_l` - mplus instance for `CCOpt` - monad instance for `CCFun` -- updated description in _oasis +- updated description in `_oasis` - `CCTrie`, a compressed functorial persistent trie structure - fix `CCPrint.unit`, add `CCPrint.silent` - fix type mismatch -note: git log --no-merges previous_version..HEAD --pretty=%s +note: `git log --no-merges previous_version..HEAD --pretty=%s` diff --git a/HOWTO.md b/HOWTO.md index 626395e5..34e0cda3 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -1,7 +1,7 @@ ## Make a release -1. `make test-all` +1. `make test` 2. update version in `_oasis` 3. `make update_next_tag` (to update `@since` comments; be careful not to change symlinks) 4. update `CHANGELOG.md` (see its end to find the right git command) diff --git a/_oasis b/_oasis index 0a671601..9d5c8663 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.4 Name: containers -Version: 0.9 +Version: 0.10 Homepage: https://github.com/c-cube/ocaml-containers Authors: Simon Cruanes License: BSD-2-clause diff --git a/src/core/CCList.mli b/src/core/CCList.mli index 75f29f13..6021cf9d 100644 --- a/src/core/CCList.mli +++ b/src/core/CCList.mli @@ -126,14 +126,14 @@ val sort_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list val sorted_merge_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list (** [sorted_merge_uniq l1 l2] merges the sorted lists [l1] and [l2] and removes duplicates - @since NEXT_RELEASE *) + @since 0.10 *) val uniq_succ : ?eq:('a -> 'a -> bool) -> 'a list -> 'a list (** [uniq_succ l] removes duplicate elements that occur one next to the other. Examples: [uniq_succ [1;2;1] = [1;2;1]] [uniq_succ [1;1;2] = [1;2]] - @since NEXT_RELEASE *) + @since 0.10 *) (** {2 Indices} *) diff --git a/src/core/CCString.mli b/src/core/CCString.mli index b18df249..fcfc32db 100644 --- a/src/core/CCString.mli +++ b/src/core/CCString.mli @@ -115,23 +115,23 @@ val suffix : suf:string -> string -> bool val lines : string -> string list (** [lines s] returns a list of the lines of [s] (splits along '\n') - @since NEXT_RELEASE *) + @since 0.10 *) val lines_gen : string -> string gen (** [lines_gen s] returns a generator of the lines of [s] (splits along '\n') - @since NEXT_RELEASE *) + @since 0.10 *) val concat_gen : sep:string -> string gen -> string (** [concat_gen ~sep g] concatenates all strings of [g], separated with [sep]. - @since NEXT_RELEASE *) + @since 0.10 *) val unlines : string list -> string (** [unlines l] concatenates all strings of [l], separated with '\n' - @since NEXT_RELEASE *) + @since 0.10 *) val unlines_gen : string gen -> string (** [unlines_gen g] concatenates all strings of [g], separated with '\n' - @since NEXT_RELEASE *) + @since 0.10 *) (*$Q Q.printable_string (fun s -> unlines (lines s) = s) diff --git a/src/core/containers.ml b/src/core/containers.ml index efb293b9..d1c862c3 100644 --- a/src/core/containers.ml +++ b/src/core/containers.ml @@ -44,7 +44,7 @@ Changed [Opt] to [Option] to better reflect that this module is about the Renamed from [CCPervasives] in [containers.pervasives], to [Containers] in the core library [containers] -@since NEXT_RELEASE +@since 0.10 *) module Array = struct diff --git a/src/data/CCFQueue.mli b/src/data/CCFQueue.mli index 6a112b7b..aac4a484 100644 --- a/src/data/CCFQueue.mli +++ b/src/data/CCFQueue.mli @@ -112,7 +112,7 @@ val append : 'a t -> 'a t -> 'a t val rev : 'a t -> 'a t (** Reverse the queue, O(n) complexity - @since NEXT_RELEASE *) + @since 0.10 *) val map : ('a -> 'b) -> 'a t -> 'b t (** Map values *) @@ -146,5 +146,5 @@ val of_klist : 'a klist -> 'a t val (--) : int -> int -> int t (** [a -- b] is the integer range from [a] to [b], both included. - @since NEXT_RELEASE *) + @since 0.10 *) diff --git a/src/data/CCIntMap.mli b/src/data/CCIntMap.mli index cd2afb00..61a78c00 100644 --- a/src/data/CCIntMap.mli +++ b/src/data/CCIntMap.mli @@ -27,7 +27,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (** {1 Map specialized for Int keys} {b status: unstable} -@since NEXT_RELEASE *) +@since 0.10 *) type 'a t diff --git a/src/data/CCPersistentArray.mli b/src/data/CCPersistentArray.mli index 36e5c8ac..ae0bebfd 100644 --- a/src/data/CCPersistentArray.mli +++ b/src/data/CCPersistentArray.mli @@ -30,7 +30,7 @@ From the paper by Jean-Christophe Filliâtre, "A persistent Union-Find data structure", see {{: https://www.lri.fr/~filliatr/ftp/publis/puf-wml07.ps} the ps version} -@since NEXT_RELEASE *) +@since 0.10 *) type 'a t (** The type of persistent arrays *) diff --git a/src/misc/backtrack.mli b/src/misc/backtrack.mli index 1efba86d..c74ccf52 100644 --- a/src/misc/backtrack.mli +++ b/src/misc/backtrack.mli @@ -4,7 +4,7 @@ Playing stuff, don't use (yet?). {b status: experimental} -@since NEXT_RELEASE +@since 0.10 *) module type MONAD = sig diff --git a/src/string/app_parse.mli b/src/string/app_parse.mli index 8e8cab4c..f4c9ce1a 100644 --- a/src/string/app_parse.mli +++ b/src/string/app_parse.mli @@ -52,7 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ]} {b status: experimental} -@since NEXT_RELEASE +@since 0.10 *) type ('a,'b) result = [`Error of 'b | `Ok of 'a] diff --git a/src/unix/CCUnix.mli b/src/unix/CCUnix.mli index 507cf1ca..e1e75ba7 100644 --- a/src/unix/CCUnix.mli +++ b/src/unix/CCUnix.mli @@ -29,7 +29,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Some useful functions built on top of Unix. {b status: unstable} -@since NEXT_RELEASE *) +@since 0.10 *) type 'a or_error = [`Ok of 'a | `Error of string] type 'a gen = unit -> 'a option