-
feat(vector): add
Vector.{filter,filter_map}_in_place
-
perf(hashtrie): use int64 for 64-bits branching factor and popcount
-
feat(intmap): add
CCIntMap.{filter,filter_map,merge,is_empty}
-
Add
CCHeap.Make_from_compare
(#225) -
add relational ops
CCList.{group_by,join,join_by,join_all_by,group_join_by}
-
fix(float): make
Float.{min,max}
compliant with revised IEEE754 -
fix(build): remove
[@inline]
attributes since they break on 4.02.3 -
Fix Int32 and Int64 operators that are not visible (#224)
-
some performance tweaks in Vector
-
test(float): add some tests for FP min/max
-
Improving comments presentation
-
Add
CCOpt.return_if
-
Add
CCOpt.flatten
-
Add
CCString.{,r}drop_while
-
add many missing functions to
CCListLabels
-
test: consistency
CCList{,Labels}
-
fix(arrayLabels): compatibility with 4.07
-
fix: compatibility for CCArrayLabels
-
test: add compatibility checks between
CCArray{,Labels}
-
make
CCInt64
compatible withInt64
(breaking!) (closes #192) -
Add
CCBijection
in containers.data -
feat(mono): add dotted comparison operators for floats
-
add
?margin
parameter toCCFormat.ksprintf
-
add
CCUtf8_string
with basic encoding and decoding functionalities -
Add
CCLazy_list.<|>
-
Adding
CCNativeint
-
enrich
CCInt.Infix
to get a uniform interface withCCInt{32,64}
-
add
CCInt{32,64}.Infix
-
Adding CCInt32 module
-
add
CCHash.combine{5,6}
-
Add infix operators to CCFloat
-
feat(list): add
{interleave,intersperse}
(closes #191) -
add missing signatures of
CCArrayLabels
(closes #193) -
Add CCFun.iterate
-
add experimental
CCFun_vec
data structure for fast functional vectors -
fix: strong type aliases in Random (closes #210)
-
use standard
List.sort_uniq
-
remove explicit dep on
bytes
in jbuild files -
update printers names in containers.top (closes #201)
-
Enable support for Travis CI and Appveyor
-
test deps are required when we run tests
-
point to JST’s blog post on poly compare
-
move to jbuilder (closes #165), requiring at least OCaml 4.02
-
become defensive w.r.t polymorphic operators:
-
Internally shadow polymorphic operators and functions from Pervasives by
include CCMonomorphic
inContainers
module -
Shadow the physical equality operator
-
Shadow polymorphic functions in
CCList
-
-
rename
print
topp
for Format printers (closes #153, #181) -
remove
CCFlatHashtbl
-
many typos and style fixes (from Fourchaux)
-
Add
CCList.iteri2
andCCList.foldi2
-
remove
PARAM.min_size
inCCPool
-
Add
CCEqual.physical
-
Avoid uses of the polymorphic operators
-
Add a
CCMonomorphic
module shipped into acontainers.monomorphic
library -
make complexity of
Array.lookup
explicit (closes #174) -
add
CCFormat.lazy_{or,force}
for printing thunks -
now that ocaml >= 4.02 is required, use
Format.pp_print_text
directly -
add
CCHeap.delete_{one,all}
-
add
CCList.tail_opt
-
remove qtest makefile and use a script instead
-
add many tests
-
fix bug in
CCRAL.drop
(see #184) -
CCFormat
: fix support of unrecognized styles -
fix bug: don’t reverse twice in
CCList.repeat
-
have
CCList.{get,insert,set}_at_idx
work with negative indices -
Add CCCache.add
-
missing function in
CCListLabels
-
Allow negative indexes in CCList.remove_at_idx
-
add an optional
drop
parameter to string-splitting functions -
add
Hash.const0
for trivial hash function that ignores its input -
improve compatibility with the stdlib
-
Add List.count
-
Add String.is_empty
-
add missing compatibility functions:
{assoc_opt,assq_opt}
-
backport some functions added in 4.05 in
CCList
-
add functions from 4.05 into
CC{Map,Set}
-
Implement
CCImmutArray.sub
-
bugfix in
CCTrie.Make
: Remove polymorphic comparison -
remove dependency on cppo
-
add travis support
-
update doc of
CCList.cartesian_product
, which returns results in unspecified order (close #154) -
fix containers.top (closes #155)
-
add
CCMap.union
-
add
CCRef.swap
-
add
CCArray.swap
-
change signature of
CCWBTree.get_rank
-
add
CCWBTree.get_rank{,_exn}
-
more efficient
List.map
Using efficient chunking algorithm -
Fix
CCVector.append_array
(empty vector case) -
CCFQueue.take_back_exn
raised InvalidArg instead of Empty on an empty queue -
faster
CCString.{prefix,suffix}
-
speed improvements and benchmarks for
CCString.{prefix,suffix}
-
add ocp-indent file
-
fix
CCFun.tap
example in doc -
specify behavior of
CCFQueue.take_{front,back}_l
in some corner cases -
More tests for CCVector.append and CCVector.append_array
-
assertions and cleanup in
CCPool
-
deprecate
CCBool.negate
-
add
CCString.compare_natural
(closes #146) -
add callbacks in
CCCache.with_cache{,_rec}
(closes #140) -
tail-rec
CCList.split
(by @bikalgurung, see #138) -
change
CCRingBuffer.peek_{front,back}
to return options (closes #127) -
add
CCRingBuffer.is_full
-
add
CCArray.find_map{,_i}
, deprecated older names (closes #129) -
add
CCList.{keep,all}_{some,ok}
(closes #124) -
large refactor of
CCSimple_queue
(close #125) -
add
CCSimple_queue
to containers.data -
small change for consistency in
CCIntMap
-
bugfix in
CCRingBuffer.skip
, and corresponding tests -
cleanup and refactor of
CCRingBuffer
(see #126). Add strong tests. -
add rich testsuite to
CCIntMap
, based on @jmid’s work
-
make many modules extensions of stdlib (close #109) the modules are:
String List ListLabels Array ArrayLabels Char Random
-
add
CCString.{l,r}trim
(close #121) -
add
CCInt.floor_div
andCCInt.rem
-
add test and bugfix for
CCBV
-
add
CCList.take_drop_while
(close #120) -
add
CCstring.equal_caseless
(close #112) -
add alias
CCString.split
(close #115) -
add
CCFormat.text
(close #111) -
add
CCFormat.{newline,substring}
-
add
CCList.combine_gen
(close #110) -
add module
CCEqual
-
add
CCResult.fold_ok
(closes #107) -
add
CCFormat.with_color_ksf
for colored printing -
add
CCInt.range{,',by}
for iterating on integer ranges -
add
CCString.Sub.get
-
add
CCResult.add_ctx{,f}
for replacing stack traces -
add
CCString.split_on_char
-
add
CCArray.{fold_map,scan_left}
(close #101) -
add
CCList.scan_left
-
add
CCList.{cartesian_product,map_product_l}
-
add
CCUnix.with_file_lock
for locking whole files -
add
CCFormat.of_chan
-
add
CCFormat.flush
-
Add
{map_lazy, or_, or_lazy, to_result, to_result_lazy, of_result}
toCCOpt
-
annotations in
CCEqual
, for optimization -
Add a tail-recursive implementation of
List.combine
-
fix too restrictive type in
CCResult
-
build unix support by default
-
bugfix and test for
CCZipper.is_focused
(closes #102) -
use boxes in
CCFormat.Dump
for tuples -
update header, and use more
(==)
inCCIntMap
bugfixes:
-
fix bug in
CCGraph
(in DFS traversal) -
fix bug in
CCOpt.filter
(close #100)
new features:
-
add
CCHeap.to_seq_sorted
-
add
CCHeap.to_list_sorted
-
add
CCIO.File.walk_l
cleanup and doc:
-
remove dead code
-
new test for
CCPool
-
new test and small readme section on
CCParse
-
remove CCError from tutorial
-
merge tutorial into readme, cleanup
See #84 for an overview.
Breaking and Removals:
-
simplify and cleanup of CCGraph
-
remove poly-variant based errors, use
result
everywhere -
remove deprecated functions and modules
-
remove
CCVHashconsedSet
-
remove
CCAllocCache
-
remove
CCBloom
-
update benchmarks (ignoring hamt); remove useless old script
-
simplify
CCHash
, changing the type to'a → int
, relying onHashtbl.seeded_hash
for combining hashes -
split
CCList.Zipper
into its own module,CCZipper
in containers.data -
change argument ordering in
CCList.Assoc
-
remove
CCList.Idx
, rename its functions to toplevel -
remove
CCList.Set
, move functions to toplevel and rename them -
rewrite
CCBitField
with a much simpler interface -
split
CCArray.Sub
intoCCArray_slice
-
remove containers.string
-
remove CCParse and CCKMP (will be replaced in core)
-
-
CCFormat
:-
remove
start/stop
args, makesep
aunit printer
-
many other improvements and additions
-
add
CCFormat.tee
-
add
CCFormat.Dump.{result,to_string}
-
-
replace
or_
bydefault
in labelled functions -
remove trailing
_
inCCOrd
primitives -
remove
containers.io
(deprecated for a while) -
remove
containers.bigarray
-
remove
CCSexpM
, use ocamllex for a much simplerCCSexp
using ocamllex -
add
CCParse
into core, a simple, lightweight version of parser combs -
remove
CCPrint
, useCCFormat
instead (also, update tests relying on it) -
remove containers.advanced
-
change type of
CCUnix.escape_str
Additions:
-
CCHashtbl
:-
CCHash.{list,array}_comm
-
CCHashtbl.Poly
and fix issue in Containers (close #46) -
CCHashtbl.get_or_add
-
-
CCList.sublists_of_len
(close #97) -
Char.{of_int{,_exn},to_int}
(close #95) -
Add
CCResult.{is_ok,is_error}
-
improve
CCUnix
a bit -
update
containers.ml
so as to include all core containers -
add
CCOrd.Infix
-
use
Labels
versions ofCCList
andCCArray
-
add
CCString.edit_distance
-
expose
CCString.Find
for efficient sub-string searching
Bugfixes:
-
CCIO
: deal properly with broken symlinks and permission errors -
test for #94 (using Thread.yield to trigger segfault) Fix
CCSemaphore.with_acquire
: release a non locked mutex is UB -
containers.top: remove printers on structural types (#71)
-
add doc for
of_list
in relevant modules (close #85) -
bugfix: do not use
Sequence.flatMap
(close #90)
-
threads/CCLock: add
try_with_lock
to wrapMutex.try_lock
-
Add
CCMultiSet.remove_all
-
document errors in
CCIO
(close #86) -
use the new qtest/qcheck
-
(breaking) make default
start
/stop
arguments empty in printers (#82) -
add
CCFormat.{with_color_sf,fprintf_dyn_color,sprintf_dyn_color}
-
add
CCFormat.Dump
for easy debugging (see #82) -
add
CCArray.Sub.to_list
-
add
CCArray.{sorted,sort_indices,sort_ranking}
(closes #81) -
handle '\r` in CCSexpM (fixes #83)
-
add alias
Containers.IO
-
bugfixes in
CCArray.Sub
-
bugfix + tests for
CCArray.Sub.sub
-
disable parallel build to support cygwin
-
bugfix in
CCArray.equal
-
fix
CCString.*_ascii
; addCCChar.{upper,lower}case_ascii
-
add functions in
CCArray
: fold2,iter2,map2 -
add
CCArray.rev
-
add
CCFloat.round
-
add
CCVector.append_gen
-
add
CCList.{head_opt,last_opt}
-
add
CCInt.{print_binary,to_string_binary}
+ tests (thanks @gsg) -
more general types for
CCArray.{for_all2,exists2}
-
more general type for
CCResult.map_or
-
add regression test for #75
-
Fix
CCString.Split.{left,right}
(#75) -
additional functions in
CCMultiSet
-
show ocaml array type concretely in
CCRingBuffer.Make
sig -
cleanup and more tests in
CCHeap
-
fix bugs in
CCFlatHashtbl
, add some tests -
add more generic printers for
CCError
andCCResult
(close #73) -
add
CCstring.of_char
-
update headers
-
update implem of
CCVector.equal
-
add
CCOpt.get_or
with label, deprecatesget
-
add
CCArray.get_safe
(close #70) -
add
CCGraph.is_dag
-
add aliases to deprecated functions from
String
, addFun.opaque_identity
-
add
CCLazy_list.take
-
add
Lazy_list.filter
-
add
CCList.range_by
-
add
CCString.pad
for more webscale -
add
(--^)
to CCRAl, CCFQueue, CCKlist (closes #56); addCCKList.Infix
-
add monomorphic signatures in
CCInt
andCCFloat
-
add
CCList.{sorted_insert,is_sorted}
-
add
CCLazy_list
in containers.iter (with a few functions) -
add
CCTrie.longest_prefix
-
provide additional ordering properties in
CCTrie.{above,below}
-
add
CCOpt.if_
-
have
-
CCRandom.split_list
fail onlen=0
-
CCRandom.sample_without_replacement
fail ifn⇐0
-
-
add
CCOpt.{for_all, exists}
-
add
CCRef.{get_then_incr,incr_then_get}
-
add
Result.{to,of}_err
-
add
CCFormat.within
-
add
map/mapi
to some of the map types. -
add
CCString.{drop,take,chop_prefix,chop_suffix,filter,filter_map}
-
add
CCList.fold_filter_map
-
add
CCIO.File.with_temp
for creating temporary files -
add
{CCArray,CCVector,CCList}.(--^)
for right-open ranges -
add
Containers.{Char,Result}
-
modify
CCPersistentHashtbl.merge
and addCCMap.merge_safe
-
add
CCHet
, heterogeneous containers (table/map) indexed by keys -
add
CCString.rev
-
add
CCImmutArray
into containers.data -
add
CCList.Assoc.remove
-
Make
CCPersistentHashtbl.S.merge
more general. -
optimize KMP search in
CCString.Find
(hand-specialize code) -
bugfix in
CCFormat.to_file
(fd was closed too early) -
add a special case for pattern of length 1 in
CCString.find
-
more tests, bugfixes, and benchs for KMP in CCString
-
in CCString, use KMP for faster sub-string search; add
find_all{,_l}
others:
-
watch
target should build all -
add version constraint on sequence
-
migrate to new qtest
-
add an
IO
section to the tutorial -
enable
-j 0
for ocamlbuild
-
change the signature of
CCHeap.{of_gen,of_seq,of_klist}
-
change the API of
CCMixmap
-
make type
CCHash.state
abstract (used to beint64
) -
optional argument
~eq
toCCGraph.Dot.pp
-
rename
CCFuture
intoCCPool
-
deprecate
containers.bigarray
-
deprecate
CCHashtbl.{Counter,Default}
tables -
deprecate
CCLinq
in favor of standaloneOLinq
(to be released)
-
fix wrong signature of
CCHashtbl.Make.{keys,values}_list
-
missing constraint in
CCSexpM.ID_MONAD
-
add a tutorial file
-
add a printer into CCHeap
-
add
{CCList,CCOpt}.Infix
modules -
add
CCOpt.map_or
, deprecatingCCopt.maybe
-
add
CCFormat.sprintf_no_color
-
add
CCFormat.{h,v,hov,hv}box
printer combinators -
add
CCFormat.{with_color, with_colorf}
-
add
CCList.hd_tl
-
add
CCResult.{map_or,get_or}
-
add
CCGraph.make
and utils -
add
CCHashtbl.add_list
-
add counter function in
CCHashtbl
, to replaceCCHashtbl.Counter
-
add
CCPair.make
-
add
CCString.Split.{left,right}_exn
-
add
CCIO.File.{read,write,append}
for quickly handling files -
add
CCRandom.pick_{list,array}
-
add
CCList.Assoc.update
-
add
CCList.Assoc.mem
-
add
{CCMap,CCHashtbl}.get_or
for lookup with default value -
add
CCLock.{decr_then_get, get_then_{decr,set,clear}}
-
rename
CCFuture
intoCCPool
, expose the thread pool -
split
CCTimer
out ofCCFuture
, a standalone 1-thread timer -
move
CCThread.Queue
intoCCBlockingQueue
-
add
CCResult
, with dependency onresult
for retrocompat -
add
CCThread.spawn{1,2}
-
add many helpers in
CCUnix
(for sockets, files, and processes) -
add
CCFun.finally{1,2}
, convenience aroundfinally
-
add
CCLock.update_map
-
add
CCLock.{incr_then_get,get_then_incr}
-
add breaking space in
CCFormat.{pair,triple,quad}
-
update
examples/id_sexp
so it can read on stdin -
add
CCList.fold_map2
-
basic color handling in
CCFormat
, using tags and ANSI codes -
add
CCVector.ro_vector
as a convenience alias -
add
CCOrd.option
-
add
CCMap.{keys,values}
-
add wip
CCAllocCache
, an allocation cache for short-lived arrays -
add
CCError.{join,both}
applicative functions for CCError -
opam: depend on ecamlbuild
-
work on
CCRandom
by octachron:-
add an uniformity test
-
Make
split_list
uniform -
Add sample_without_replacement
-
-
bugfix: forgot to export
{Set.Map}.OrderedType
inContainers
-
change the type
'a CCParse.t
with continuations -
add labels on
CCParse.parse_*
functions -
change semantics of
CCList.Zipper.is_empty
-
deprecate
CCVector.rev'
, renamed intoCCVector.rev_in_place
-
deprecate
CCVector.flat_map'
, renamedflat_map_seq
-
add
CCMap.add_{list,seqe
-
add
CCSet.add_{list,seq}
-
fix small uglyness in
Map.print
andSet.print
-
add
CCFormat.{ksprintf,string_quoted}
-
add
CCArray.sort_generic
for sorting over array-like structures in place -
add
CCHashtbl.add
mimicking the stdlibHashtbl.add
-
add
CCString.replace
and tests -
add
CCPersistentHashtbl.stats
-
reimplementation of
CCPersistentHashtbl
-
add
make watch
target -
add
CCVector.rev_iter
-
add
CCVector.append_list
-
add
CCVector.ensure_with
-
add
CCVector.return
-
add
CCVector.find_map
-
add
CCVector.flat_map_list
-
add
Containers.Hashtbl
with most combinators ofCCHashtbl
-
many more functions in
CCList.Zipper
-
large update of
CCList.Zipper
-
add
CCHashtbl.update
-
improve
CCHashtbl.MakeCounter
-
add
CCList.fold_flat_map
-
add module
CCChar
-
add functions in
CCFormat
-
add
CCPrint.char
-
add
CCVector.to_seq_rev
-
doc and tests for
CCLevenshtein
-
expose blocking decoder in
CCSexpM
-
add
CCList.fold_map
-
add
CCError.guard_str_trace
-
add
CCError.of_exn_trace
-
add
CCKlist.memoize
for costly computations -
add
CCLevenshtein.Index.{of,to}_{gen,seq}
andcardinal
-
small bugfix in
CCSexpM.print
-
fix broken link to changelog (fix #51)
-
fix doc generation for
containers.string
-
bugfix in
CCString.find
-
raise exception in
CCString.replace
ifsub=""
-
bugfix in hashtable printing
-
bugfix in
CCKList.take
, it was slightly too eager
-
big refactoring of
CCLinq
(now simpler and cleaner) -
changed the types
input
andParseError
inCCParse
-
move
containers.misc
andcontainers.lwt
into their own repo -
change the exceptions in
CCVector
-
change signature of
CCDeque.of_seq
-
add module
CCWBTree
, a weight-balanced tree, incontainers.data
. -
add module
CCBloom
incontainers.data
, a bloom filter -
new module
CCHashTrie
incontainers.data
, HAMT-like associative map -
add module
CCBitField
incontainers.data
, a safe abstraction for bitfields of < 62 bits -
add module
CCHashSet
intocontainers.data
, a mutable set -
add module
CCInt64
-
move module
RAL
intocontainers.data
asCCRAL
-
new module
CCThread
incontainers.thread
, utils for threading (+ blocking queue) -
new module
CCSemaphore
incontainers.thread
, with simple semaphore -
add
containers.top
, a small library that installs printers -
add
CCParse.memo
for memoization (changesCCParse.input
) -
add
CCString.compare_versions
-
update
CCHash
with a functor and module type for generic hashing -
add
CCList.{take,drop}_while
; improve map performance -
add
CCList.cons_maybe
-
add
CCArray.bsearch
(back from batteries) -
add fair functions to
CCKList
-
deprecate
CCList.split
, introduceCCList.take_drop
instead. -
add
CCKtree.force
-
add tests to
CCIntMap
; now flagged "stable" (for the API) -
add
CCOpt.choice_seq
-
add
CCOpt.print
-
add
CCIntMap.{equal,compare,{of,to,add}_{gen,klist}}
-
add
CCThread.Barrier
for simple synchronization -
add
CCPersistentArray.{append,flatten,flat_map,of_gen,to_gen}
-
add
CCDeque.clear
-
add
CCDeque.{fold,append_{front,back},{of,to}_{gen,list}}
and others -
add
CCKList.{zip, unzip}
-
add
CCKList.{of_array,to_array}
-
add
CCKList.{head,tail,mapi,iteri}
-
add
CCKList.{unfold,of_gen}
-
add
CCParse.{input_of_chan,parse_file,parse_file_exn}
-
modify
CCParse.U.list
to skip newlines -
add
CCDeque.print
-
add
CCBV.print
-
add printer to
CCHashtbl
-
bugfix in
CCSexpM
-
new tests in
CCTrie
; bugfix inCCTrie.below
-
lots of new tests
-
more benchmarks; cleanup of benchmarks
-
migration of tests to 100% qtest
-
migration markdown to asciidoc for doc (readme, etc.)
-
add tests to
CCIntMap
, add type safety, and fix various bugs in{union,inter}
-
more efficient
CCThread.Queue.{push,take}_list
-
slightly different implem for
CCThread.Queue.{take,push}
-
new implementation for
CCDeque
, more efficient -
update makefile (target devel)
-
change type of
CCString.blit
so it writes intoBytes.t
-
better default opening flags for
CCIO.with_{in, out}
Note
|
use of containers.io is deprecated (its only module has moved to containers )
|
-
add
CCString.mem
-
add
CCString.set
for updating immutable strings -
add
CCList.cons
function -
enable
-safe-string
on the project; fix-safe-string
issues -
move
CCIO
fromcontainers.io
tocontainers
, add dummy module incontainers.io
-
add
CCIO.read_all_bytes
, reading a whole file into aBytes.t
-
add
CCIO.with_in_out
to read and write a file -
add
CCArray1
in containers.bigarray, a module on 1-dim bigarrays (experimental) -
add module
CCGraph
incontainers.data
, a simple graph abstraction similar toLazyGraph
-
add a lot of string functions in
CCString
-
add
CCError.catch
, in prevision of the future standardResult.t
type -
add
CCError.Infix
module -
add
CCHashconsedSet
incontainers.data
(set with maximal struct sharing) -
fix: use the proper array module in
CCRingBuffer
-
bugfix:
CCRandom.float_range
-
add
CCList.{remove,is_empty}
-
add
CCOpt.is_none
-
remove packs for
containers_string
andcontainers_advanced
-
add
Containers_string.Parse
, very simple monadic parser combinators -
add
CCList.{find_pred,find_pred_exn}
-
bugfix in
CCUnix.escape_str
-
add methods and accessors to
CCUnix
-
in
CCUnix
, useUnix.environment
as the default environment -
add
CCList.partition_map
-
RingBuffer.{of_array, to_array}
convenience functions -
containers.misc.RAL
: more efficient in memory (unfold list) -
add
CCInt.pow
(thanks to bernardofpc) -
add
CCList.group_succ
-
containers.data.CCMixset
, set of values indexed by poly keys -
disable warning 32 (unused val) in .merlin
-
some infix operators for
CCUnix
-
add
CCUnix.async_call
for spawning and communicating with subprocess -
add
CCList.Set.{add,remove}
-
fix doc of
CCstring.Split.list_
-
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
incontainers.string
, experimental applicative parser combinators -
remove
containers.pervasives
, add the moduleContainers
to core -
bugfix in
CCFormat.to_file
-
add
Float
,Ref
,Set
,Format
toCCPervasives
-
CCRingBuffer.append
(simple implementation) -
containers.data
now depends on bytes -
new
CCRingBuffer
module, imperative deque with batch (blit) operations, mostly done by Carmelo Piccione -
new
Lwt_pipe
andLwt_klist
streams for Lwt, respectively (un)bounded synchronized queues and lazy lists -
CCKTree.print
, a simple S-expressions printer for generic trees -
Add
CCMixmap
in containers.data (close #40), functional alternative toCCMixtbl
-
remove old META file
-
simplified
CCTrie
implementation -
use "compiledObject: best" in
_oasis
for binaries -
document some invariants in
CCCache
(see #38) -
tests for
CCCache.lru
-
fix
CCFormat.seq
combinator -
add
CCSet
module in core/ -
add
CCRef
module in core/
-
add
@Emm
to authors -
refactored heavily
CCFuture
(much simpler, cleaner, basic API and thread pool) -
add
CCLock
in containers.thread -
merged
test_levenshtein
with other tests -
Add experimental rose tree in
Containers_misc.RoseTree
. -
remove a lot of stuff from
containers.misc
(see_oasis
for details) -
make devel
command, activating most flags, for developpers (see #27) -
use benchmark 1.4, with the upstreamed tree system
-
test
ccvector.iteri
-
add
CCFormat
into core/ -
infix map operators for
CCArray
-
fold_while
impl forCCList
andCCArray
-
Added
CCBigstring.length
for more consistency with theCCString
module. -
Added name and dev fields in the OPAM file for local pinning.
-
Fix
CCIO.remove*
functions. -
Added
CCIO.remove_safe
. -
only build doc if all the required flags are enabled
-
CCHashtbl.{keys,values}_list
in the functor as well. Better doc. -
CCHashtbl.{keys,values}_list
-
more accurate type for
CCHashtbl.Make
-
remove
cgi
/ -
removed useless Lwt-related module
-
remove
CCGen
andCCsequence
(use the separate libraries) -
split the library into smaller pieces (with
containers.io
,containers.iter
,containers.sexp
,containers.data
)
-
cleanup: move sub-libraries to their own subdir each; mv everything into
src/
-
sexp
:-
CCSexp
now splitted intoCCSexp
(manipulating expressions) andCCSexpStream
-
add
CCSexpM
for a simpler, monadic parser of S-expressions (deprecatingCCSexpStream
)
-
-
core
:-
CCString.fold
-
CCstring.suffix
-
more efficient
CCString.init
-
fix errors in documentation of
CCString
(slightly over-reaching sed) -
add
CCFloat.{fsign, sign_exn}
(thanks @bernardofpc)
-
-
new
containers.bigarray
, withCCBigstring
-
CCHashtbl.map_list
-
io
:-
CCIO.read_all
now with ?size parameter -
use
Bytes.extend
(praise modernity!) -
bugfix in
CCIO.read_all
andCCIO.read_chunks
-
-
use
-no-alias-deps
-
use subtree
gen/
forCCGen
(symlink) rather than a copy. -
Add benchmarks for the function
iter
of iterators. -
CCKTree
: more printers (to files),Format
printer -
CCOpt.get_lazy
convenience function -
introduce
CCFloat
, add float functions toCCRandom
(thanks to @struktured)
-
new
CCIO
module, much simpler, but incompatible interface -
renamed
CCIO
toadvanced.CCMonadIO
-
CCMultiSet.{add_mult,remove_mult,update}
-
CCVector.{top,top_exn}
-
CCFun.compose_binop
(binary composition) -
CCList.init
-
CCError.map2
has a more general type (thanks to @hcarty) -
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
added from its old repository -
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
-
dependency on
cppo
(thanks to @whitequark, seeAUTHORS.md
) andbytes
-
CCError
:-
now polymorphic on the error type
-
some retro-incompatibilies (wrap,guard)
-
-
CCPervasives.Opt
→CCPervasives.Option
-
Levenshtein.Index.remove
changed signature (useless param removed)
-
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 standardMap
module -
make some functions in
CCFun
andCCString
depend on ocaml version -
thanks to @whitequark, could use cppo for preprocessing files
-
add Format printers to
CCString
-
AUTHORS.md
-
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
-
core/CCSexp
for fast and lightweight S-expressions parsing/printing -
moved
CCLinq
,CCBatch
andCCat
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
toCCFlatHashtbl
; new moduleCCHashtbl
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)
-
subtree for
sequence
repo -
CCSequence
is now a copy ofsequence
-
CCOpt.wrap{1,2}
-
CCList.findi
,CCArray.findi
andCCArray.find_idx
-
better
Format
printers (using break hints) -
specialize some comparison functions
-
CCOrd.map
-
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
andcycle
, 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
-
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 toCCString
(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
-
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
, addCCPrint.silent
-
fix type mismatch
Note
|
git log --no-merges previous_version..HEAD --pretty=%s
|