From c6e359c406adde66fdf7f862703cb72b9056689b Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Sun, 23 Nov 2014 15:10:33 +0100 Subject: [PATCH] put changelog in master --- CHANGELOG.md | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++ HOWTO.md | 6 +-- README.md | 4 ++ 3 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..d55a1d61 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,146 @@ +# Changelog + +## 0.6 + +#### breaking changes + +- new `CCIO` module, much simpler, but incompatible interface +- renamed `CCIO` to `advanced.CCMonadIO` +- `CCError.t` now has two type arguments + +#### other changes + +- `CCMultiSet.{add_mult,remove_mult,update}` +- `CCVector.{top,top_exn}` +- `CCFun.compose_binop` (binary composition) +- `CCList.init` +- new module `CCCache` + * moved from `misc` + * add `CCache`.{size,iter} + * incompatible interface (functor -> values), much simpler to use +- `lwt/Lwt_actor` stub, for erlang-style concurrency (albeit much much more naive) +- `misc/Mixtbl` +- more benchmarks, with a more general system to select/run them +- more efficient versions of `CCList.{flatten,append,flat_map}`, some functions + are now tailrec + + +## 0.5 + +#### breaking changes + +- dependency on `cppo` (thanks to @whitequark, see AUHORS.md) and `bytes` +- `CCError`: + * now polymorphic on the error type + * some retro-incompatibilies (wrap,guard) +- `CCPervasives.Opt` -> `CCPervasives.Option` +- `Levenshtein.Index.remove` changed signature (useless param removed) + +#### other changes + +- stronger inlining for `CCVector` (so that e.g. push is inline) +- more tests for `CCVector` +- removed many warnings +- `CCSequence` now provides some bytes-dependent operations +- `CCList.(>|=)` map operator +- `CCOpt.filter` +- `CCInt.neg` +- `CCMap` wrapper to the standard `Map` module +- make some functions in `CCFun` and `CCString` depend on ocaml version +- thanks to @whitequark, could use cppo for preprocessing files +- add Format printers to `CCString` +- `AUTHORS.md` + +## 0.4.1 + +- `CCOpt.get` +- new functions in `CCSexp.Traverse` +- comments in `CCMultiSet.mli`, to explain meet/intersection/union +- `CCMultiset`: Add meet +- update of readme +- generate doc for `containers.advanced` + +## 0.4 + +- `core/CCSexp` for fast and lightweight S-expressions parsing/printing +- moved `CCLinq`, `CCBatch` and `CCat` from core/ to advanced/ +- ensure compatibility with ocaml 4.00 +- get rid of deprecated `Array.create` +- move benchmarks to benchs/ so they are separate from tests +- `CCError.{iter,get_exn}` +- `CCPair.print` +- some small improvements to `CCRandom` +- moved `CCHashtbl` to `CCFlatHashtbl`; new module `CCHashtbl` that + wraps and extends the standard hashtable +- `CCPervasives` module, replacing modules of the standard library +- removed type alias `CCString.t` (duplicate of String.t which already exists) + +## 0.3.4 + +- subtree for `sequence` repo +- `CCSequence` is now a copy of `sequence` +- `CCOpt.wrap{1,2}` +- `CCList.findi`, `CCArray.findi` and `CCArray.find_idx` +- better `Format` printers (using break hints) +- specialize some comparison functions +- `CCOrd.map` + +## 0.3.3 + +- readme: add ci hook (to http://ci.cedeela.fr) +- `CCIO`: monad for IO actions-as-values + - explicit finalizer system, to use a `>>>=` operator rather than callbacks + - `File` for basic filenames manipulations + - `Seq` for streams +- `CCMultiMap`: functor for bidirectional mappings +- `CCMultiSet`: sequence +- 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 +- `CCTrie.above/below`: ranges of items +- more functions in `CCPair` +- `CCCat`: funny (though useless) definitions inspired from Haskell +- `CCList`: applicative instance +- `CCString.init` +- `CCError.fail_printf` + +## 0.3.2 + +- small change in makefile +- conversions for `CCString` +- `CCHashtbl`: open-addressing table (Robin-Hood hashing) +- registered printers for `CCError`.guard,wrap1,etc. +- 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) +- `CCFQueue`: logarithmic access by index +- add BTree partial implementation (not working yet) +- fix bug in `CCPrint.to_file` +- `CCArray.lookup` for divide-and-conquer search +- `CCList.sort_uniq` +- `CCError`: retry and choose combinators +- stub for monadic IO in `CCPrint` +- `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 +- applicative and lifting operators for `CCError` +- `CCError.map2` +- more combinators in `CCError` + +## 0.3.1 + +- test for `CCArray.shuffle` +- bugfix in `CCArray.shuffle` +- `CCOpt.get_exn` +- `CCOpt.sequence_l` +- mplus instance for `CCOpt` +- monad instance for `CCFun` +- 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 diff --git a/HOWTO.md b/HOWTO.md index 6dfa347e..fa7d4449 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -4,9 +4,9 @@ 1. `make test-all` 2. update version in `_oasis` 3. `make update_next_tag` (to update `@since` comments) -4. `git checkout stable` -5. `git merge master` -6. update `CHANGELOG.md` (see its end to find the right git command) +4. update `CHANGELOG.md` (see its end to find the right git command) +5. `git checkout stable` +6. `git merge master` 7. commit, tag, and push both to github 8. new opam package diff --git a/README.md b/README.md index 6ca90613..98a05766 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,10 @@ Some of the modules have been moved to their own repository (e.g. `sequence`, [![Build Status](http://ci.cedeela.fr/buildStatus/icon?job=containers)](http://ci.cedeela.fr/job/containers/) +## Change Log + +See [this file](https://github.com/c-cube/ocaml-containers/blob/master/CHANGELOG.md). + ## Finding help - the [github wiki](https://github.com/c-cube/ocaml-containers/wiki)