Simon Cruanes
bb6de2ff05
CCInt.hash: replace OCaml Int64 loop with C stub (FNV-1)
...
Implement FNV-1 hashing for CCInt.hash as a C stub instead of a
pure-OCaml Int64-based loop. The core hash function operates on int64
with separate native/bytecode entry points for both int and int64.
- cc_stubs.c: cc_fnv_hash_int64 core, with int and int64 wrappers
- Uses [@untagged] for int args, [@unboxed] ready for int64
- OCAML_INT_MASK ensures correct byte extraction for 63-bit ints
- Hash values are unchanged from the previous OCaml implementation
Also adds a throughput benchmark in benchs/run_benchs.ml comparing
the old pure-OCaml FNV hash vs the new C stub (~2x faster).
2026-02-16 12:48:12 +00:00
Simon Cruanes
1aa8b869e5
fix(CCSeq): correct conditional compilation version for init
...
Seq.init was added in OCaml 4.14, not 4.11. This aligns the
implementation with the interface which was already correctly
marked with [@@@iflt 4.14].
2026-02-12 11:47:50 +00:00
Simon Cruanes
df7619786c
prepare for 3.18
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled
2026-02-10 21:08:02 -05:00
Simon Cruanes
2271ddedcc
fix leb128 slice bug
format / format (push) Waiting to run
Build and Test / build (push) Waiting to run
2026-02-10 15:03:46 -05:00
Simon Cruanes
42c4f1c173
add tests for leb128 library ( #486 )
...
add tests for containers.leb128
also fix a bug in fix zigzag decoding
2026-02-09 21:24:59 -05:00
Simon Cruanes
91cc585d5f
fix ( #485 )
2026-02-09 21:16:31 -05:00
Simon Cruanes
bcfa092a73
Merge pull request #436 from c-cube/408-cleanup
...
format / format (push) Waiting to run
Build and Test / build (push) Waiting to run
post 4.08 cleanup, removing a lot of functions that are now always present in the stdlib.
2026-02-09 12:25:31 -05:00
Emmanuel Arrighi
35803e586c
CCFormat(fix): restaure the behaviour of CCFormat.opt
2026-02-06 19:42:59 +01:00
Emmanuel Arrighi
8f30ce25b6
Revert "CCFun(cleanup): align CCFun.compose with the stdlib"
...
This reverts commit b649ac9dc5 .
2026-02-06 19:42:59 +01:00
Emmanuel Arrighi
b8f1048ce4
CCString(cleanup): remove function always existing in stdlib > 4.08
2026-02-06 19:42:59 +01:00
Emmanuel Arrighi
9eb002304f
CCSet(cleanup): remove function always in Stdlib for > 4.08
2026-02-06 19:42:59 +01:00
Emmanuel Arrighi
d80d36106b
CCSeq(chore): sync with stdlib
2026-02-06 19:42:59 +01:00
Emmanuel Arrighi
405dfa4891
chore: inline the doc of the included modules
2026-02-06 14:36:44 +01:00
Emmanuel Arrighi
30f7ac7551
CCResult(cleanup): sync CCResult with Stdlib.Result.
2026-02-06 14:28:56 +01:00
Emmanuel Arrighi
3af76f266c
CCPair(chore): sync CCPair with Stdlib.Pair
2026-02-06 12:34:00 +01:00
Emmanuel Arrighi
bb31265e52
CCOption(cleanup): remove functions that are in the stdlib
2026-02-06 12:16:28 +01:00
Emmanuel Arrighi
5e60c0d237
CCNativeint(cleanup): cleanup with bump ocaml version to 4.08
2026-02-06 11:28:06 +01:00
Emmanuel Arrighi
571f9f3793
CCMap(cleanup): clean function that are in the stdlib
2026-02-06 11:17:18 +01:00
Fardale
0cd4bbf240
CCList(cleanup): clean functions that are in the stdlib
2026-02-06 10:44:54 +01:00
Fardale
52fc619335
CCInt(chore): conditionally define function existing in newer OCaml
2026-02-06 10:44:54 +01:00
Fardale
b8684b77df
CCInt64(chore): conditionally define function existing in newer OCaml
2026-02-06 10:44:54 +01:00
Fardale
bf7f4897c6
CCInt32(chore): add condition around functions existing in newer OCaml
2026-02-06 10:44:54 +01:00
Fardale
8268e29c48
CCHashtbl(cleanup): remove function always present on 4.08
2026-02-06 10:44:54 +01:00
Fardale
3516c5dc0e
CCFormat(feat): add option and result, change opt
...
Add CCFormat.option and CCFormat.result as aliases to
Format.pp_print_option and Format.pp_print_result. Make CCFormat.opt an
alias of CCFormat.option, as such this add an optional argument to print
the case "None" but change the default behaviour. Previously, it as
printing "some _" or "none" now it print something only in the case of
"Some x" and just "x".
2026-02-06 10:44:54 +01:00
Fardale
b649ac9dc5
CCFun(cleanup): align CCFun.compose with the stdlib
...
Conditionally define CCFun.compose and align its definition with the
stdlib. The arguments are now swapped.
2026-02-06 10:44:54 +01:00
Fardale
74b787f7e6
CCEither(cleanup): conditionnally use the Either module
...
Include the Either module when available (ocaml >= 4.12)
2026-02-06 10:44:54 +01:00
Fardale
f05c07d20d
CCChar(cleanup): remove CCChar.compare from the mli
...
Char.compare already existe
2026-02-06 10:44:54 +01:00
Fardale
50cb263a6e
update CHANGELOG with current breaking changes
2026-02-06 10:44:51 +01:00
Fardale
6a6ccbbc5c
CCInt64(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Fardale
9e3baf8ff1
CCInt32(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Fardale
88f093b64d
CCInt(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Fardale
0522770173
CCFloat(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Fardale
5576ad71cc
CCBool(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Fardale
fcbde4b187
CCArray(cleanup): remove function always present on 4.08
2026-02-06 10:36:29 +01:00
Simon Cruanes
5461dcc07a
prepare for 3.17
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled
2026-01-12 20:16:42 -05:00
Simon Cruanes
d4fdff884f
more benchs
format / format (push) Waiting to run
Build and Test / build (push) Waiting to run
2026-01-11 13:52:16 -05:00
Simon Cruanes
eab2e1d33f
try to make the test_random uniformity test more robust
...
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled
just increase the sample size.
2025-12-20 11:19:45 -05:00
Simon Cruanes
c72b60fd6f
do simplify the code a bit
...
closer to the original solution, too. Avoids a redundant `:= []`.
2025-12-20 11:15:15 -05:00
Simon Cruanes
ddc87518a7
another test for lists
2025-12-20 11:08:39 -05:00
Simon Cruanes
15b421c54e
faster List.take_drop thanks to a trick by nojb
...
https://discuss.ocaml.org/t/efficient-implementation-of-list-split/17616/2
pretty cool.
2025-12-20 11:08:30 -05:00
Simon Cruanes
c1b13f1c7f
feat: add CCAtomic.update_cas
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled
2025-12-08 13:41:29 -05:00
Simon Cruanes
f51b56ffbc
cleanup
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled
2025-11-25 20:38:19 -05:00
Simon Cruanes
02c4d51fd0
chore: CI
2025-11-25 20:12:06 -05:00
Simon Cruanes
7c8adbd9fc
move to ocamlformat 0.27, format code
2025-11-25 20:11:54 -05:00
Simon Cruanes
954ea61d22
doc + benchs
2025-11-25 20:04:47 -05:00
Simon Cruanes
b069461fe2
test: enrich pvec test
2025-11-25 20:01:16 -05:00
Simon Cruanes
f13fb6f471
feat pvec: add flat_map
2025-11-25 19:59:23 -05:00
Simon Cruanes
01402388e4
fix warning
2025-11-25 19:21:11 -05:00
István Donkó
14ad490c7e
fix: insert missing symbol into range doc comments
Build and Test / build (push) Has been cancelled
Build and Test / format (push) Has been cancelled
2025-10-27 12:03:46 -04:00
Simon Cruanes
3b49ad2a4e
Merge pull request #478 from jmid/cbor-roundtrip-prop-patch
...
Build and Test / build (push) Has been cancelled
Build and Test / format (push) Has been cancelled
Patch CBor round-trip QCheck test to hold for nan's too
2025-07-11 15:22:25 -04:00