Simon Cruanes
1c8265c3f3
bv: refactor for performance and readability
2021-05-17 10:01:35 -04:00
Simon Cruanes
92519b4843
fix(bv): index error in union
...
close #370
2021-05-17 10:00:59 -04:00
Simon Cruanes
a642aa6f6b
bv: add more tests, including regression for #370
2021-05-17 10:00:32 -04:00
Simon Cruanes
1b0639886d
feat(bv): add equal
2021-05-17 10:00:05 -04:00
Simon Cruanes
6ace6f71e0
doc: fix wrong @since
2021-05-10 11:26:53 -04:00
Simon Cruanes
6bfd7f125e
test: fix too broad test
2021-05-04 08:54:08 -04:00
Simon Cruanes
943ce7f734
get ready for 3.4
2021-05-03 16:56:24 -04:00
Simon Cruanes
c99f7818c3
udpate doc and add test
2021-04-27 13:21:34 -04:00
Daniil Baturin
3628feed9c
Add CCOpt.get_exn_or and deprecate CCOpt.get_exn
2021-04-27 13:15:51 -04:00
Josh Berdine
9211a01f35
code review
2021-04-16 15:15:11 +01:00
Josh Berdine
9e6f453aff
feat(CCRAL): add get_and_remove_exn operation
...
It seems like a waste to repeat the search for an index to both get
the element at that index and then to remove it. The added
`get_and_remove_exn` operation performs a `remove` but returns the
found element rather than forgetting it.
2021-04-16 14:48:14 +01:00
Josh Berdine
0ab8597b78
fix: CCRAL.remove does not remove
2021-04-15 17:56:36 -04:00
Simon Cruanes
b19cd0db5f
add regression test for #364
2021-04-15 17:54:18 -04:00
Simon Cruanes
5611cbf7f3
fix(sexp): re-export the loc type to the functor's argument's type
2021-04-15 10:34:27 -04:00
Fardale
375ae27622
feat(CCString): add CCString.uniq
...
CCString.uniq remove consecutive duplicate characters
2021-04-08 23:09:53 +02:00
Simon Cruanes
e75d93bb9d
refactor and clarify cutoff in String.edit_distance
2021-04-08 11:20:54 -04:00
Simon Cruanes
45b3956421
improve test hash
2021-04-05 00:13:33 -04:00
Simon Cruanes
25c5eda528
doc: more docs for codegen
2021-04-03 18:54:07 -04:00
Simon Cruanes
4f68b0fc37
fix test for old ocaml
2021-04-03 18:12:03 -04:00
Simon Cruanes
2440092eb5
fix invalid test in intmap
2021-04-03 17:42:17 -04:00
Simon Cruanes
77e3e97dd0
perf: direct alias in CCHash.int
2021-04-03 17:42:17 -04:00
Simon Cruanes
6323bdc6d3
fix test in CCHash
2021-04-03 17:42:17 -04:00
Simon Cruanes
5bd031c3c2
add test executable for hash functions
2021-04-03 17:42:17 -04:00
Simon Cruanes
cf0d044407
refactor CCHash to use FNV in many combinators
2021-04-03 17:42:17 -04:00
Simon Cruanes
238123b955
move uniformity tests out of CCRandom
2021-04-03 17:42:17 -04:00
Simon Cruanes
7717cc13db
fix(ccint): make sure hash is always positive
2021-04-03 17:42:17 -04:00
Simon Cruanes
cc7799f379
perf(ccint): single implementation of popcount using int64
2021-04-03 17:42:17 -04:00
Simon Cruanes
ec796d5fc5
perf(int): use FNV for integer hashing
2021-04-03 17:42:17 -04:00
Simon Cruanes
739dd4412c
prepare for 3.3
2021-04-01 22:16:40 -04:00
Bertrand Bonnefoy-Claudet
13028c3d17
CCSeq: Add for_all and exists
...
The functions are implemented the same way as in `oseq` and their
documentation is inspired from their counterparts in `Stdlib.List`.
2021-03-29 18:16:44 -04:00
Simon Cruanes
f41887c367
refactor(pool): less locking, fix deadlock, more parallelism
2021-03-28 18:15:45 -04:00
Simon Cruanes
40c05cc7e3
wip: feat(pool): keep one idle thread
...
see #360 ; in combination with max_size=1 it means the pool contains
exactly one thread.
2021-03-28 18:15:45 -04:00
Simon Cruanes
8982f87ca7
perf: small optim in Pool.sequence_a
2021-03-28 18:15:45 -04:00
Simon Cruanes
dd1cf2a046
perf(pool): try to inline with_lock
2021-03-28 18:15:45 -04:00
Simon Cruanes
178f7dc92f
feat(sexp): expose last location in decoder
2021-03-25 15:20:51 -04:00
Matt Bray
0a54024143
doc: clarify CCOpt.filter
2021-03-19 10:37:28 -04:00
Simon Cruanes
0de515b94b
attempt to fix tests
2021-03-13 16:56:21 -05:00
Fardale
2c96dd1b55
feat(CCChar): add CCChar.Infix
2021-03-12 18:27:53 +01:00
Fardale
4ad331fbe3
feat(CCString): add CCString.foldi
2021-03-12 18:13:29 +01:00
Simon Cruanes
5ad8914e4c
feat: add code-generator for optimal bitfields; add tests
2021-03-02 09:40:42 -05:00
Simon Cruanes
5593e28431
feat(CCFormat): add string_lines combinator
2021-02-26 17:25:33 -05:00
Simon Cruanes
89d6feed98
fix
2021-02-25 12:59:56 -05:00
Fardale
1975c98025
fix: wrong name in 6b52ec69
...
partition_filter_either -> partition_map_either
2021-02-25 18:51:33 +01:00
Fardale
6b52ec6945
feat(CCList): update with regards to partition_map
...
- Add partition_filter_map
- Deprecate partition_map
- Add partition_map_either that match the partition_map from the std
2021-02-25 17:31:15 +01:00
Fabian
dcf1b4aa6c
Fix integer overflow warning on jsoo ( #346 )
...
- Remove popcount from shims
- Express large integer literals using bitshifts
2021-02-21 15:53:54 -05:00
Simon Cruanes
b5ecb273ef
feat: add CCList.cons'
...
close #354
2021-02-12 14:35:29 -05:00
Simon Cruanes
01f70cc802
update code and comments
2021-02-07 13:03:53 -05:00
Arnaud Spiwack
85decd732c
CCMap: implement {of,add}_*_with family of function with update ( #352 )
...
This is comparable in conciseness and clarity as an explicit try/with
but it paves the way for a more efficient implementation using the
`update` from the Stdlib which, I presume, uses a one-pass algorithm.
2021-02-07 13:03:33 -05:00
Simon Cruanes
0ef515f1af
feat: add CCHashtbl.{of,add}_{list,seq,iter}_with
2021-02-06 12:16:03 -05:00
Simon Cruanes
51bb9175f3
add CCMap.of_{list,iter,seq}_with functions
2021-02-06 11:50:41 -05:00