Commit graph

1635 commits

Author SHA1 Message Date
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