Commit Graph
1372 Commits
Author SHA1 Message Date
Patrick Pelissier 8cf4050d3d Remove uneeded alignment constraint for SPSC queue. 2018-04-26 22:26:30 +02:00
Patrick Pelissier 31c18fc56d Bench SPSC queues too. 2018-04-26 22:05:54 +02:00
Patrick Pelissier 005207cfd6 Remove a warning in release mode. 2018-04-26 22:05:36 +02:00
Patrick Pelissier c8d668ad96 Merge branch 'master' of https://github.com/P-p-H-d/mlib 2018-04-25 22:04:42 +02:00
Patrick Pelissier a39c4ba9a4 Rewrite the code by adding an additional cast to avoid new warning with GCC8. 2018-04-25 22:03:52 +02:00
Patrick Pelissier f4deea05bf Update doc. 2018-04-24 22:42:19 +02:00
Patrick Pelissier 1c18133603 Close the handle of the thread in case of joining thread. 2018-04-22 19:30:24 +02:00
Patrick Pelissier 15566b4b65 Add bench of library SDS for string 2018-04-21 18:53:38 +02:00
Patrick Pelissier 737185752c Merge branch 'master' of https://github.com/P-p-H-d/mlib 2018-04-21 12:46:26 +02:00
Patrick Pelissier a12e3534c6 Rewrite I/O functions so that they handle properly
non printable characters.
2018-04-21 10:26:05 +02:00
Patrick Pelissier 51575b341b Use of static library for liblfds. 2018-04-20 22:24:20 +02:00
Patrick Pelissier 06b330ec51 Update doc 2018-04-20 21:44:59 +02:00
Patrick Pelissier e0a6bce5b0 Add SDS 2018-04-20 21:43:19 +02:00
Patrick Pelissier da07a5b613 string_strim allows optionnal second argument which list the characters to strim. 2018-04-20 20:46:44 +02:00
Patrick Pelissier fbbca37b55 Ignore a*.dat file too. 2018-04-20 19:51:56 +02:00
Patrick Pelissier 7fa1c2264e Fix issue for C++ layer (memory order constants have to be put in the current namespace too). 2018-04-20 19:34:22 +02:00
Patrick Pelissier dcfbe53713 Fix conformity bug in _splice. 2018-04-20 19:30:45 +02:00
Patrick Pelissier 8b2993c979 Add more assertions to help scan-build with false positive. 2018-04-20 19:30:15 +02:00
Patrick Pelissier 131da660c8 Fix bug in _clean. 2018-04-20 19:30:01 +02:00
Patrick Pelissier f3de34a62b Optimization for MPMC queues:
* use of atomic_explicit functions to give the memory order we want,
* reduce the size of the index to unsigned int: even if there is an
overflow, it doesn't matter as we don't compare the index with < or >
but with ==.
2018-04-19 22:15:37 +02:00
Patrick Pelissier 928d6bafcb Fix issue if there is no working stdatomic / atomic header:
definition of atomic_compare_exchange_strong_explicit was wrong.
Same for atomic_compare_exchange_weak_explicit
2018-04-19 22:14:16 +02:00
Patrick Pelissier 704fb0cbd9 Add a cast to avoid a warning with some compilers
(I am not sure the warning was justified).
2018-04-19 22:13:53 +02:00
Patrick Pelissier 3be27aefa3 Fix the format for size_t 2018-04-19 22:13:27 +02:00
Patrick Pelissier 8be81ac09e Update the list of tested systems. 2018-04-19 22:13:05 +02:00
Patrick Pelissier e2fc9c3699 Update 2018-04-19 20:21:54 +02:00
Patrick Pelissier 472eaff6f0 Add gene queue 2018-04-19 20:20:18 +02:00
Patrick Pelissier 805b016aee Reformat test and reduce pressure on thread creation for some tests
(Some systems didn't handle so much thread creation).
2018-04-17 23:01:05 +02:00
Patrick Pelissier 624a13ba1a Update version with added parallelism for long computation. 2018-04-17 00:00:56 +02:00
Patrick Pelissier 9692bf3991 Start list of API breakage. 2018-04-17 00:00:29 +02:00
Patrick Pelissier 3f5406f1d4 API breakage:
worker_sync takes an extra parameter (worker_t) to perform a
wait-on-event instead of a busy waiting, reducing consummer ressources.

worker_init takes an int instead of an unsigned int for the number of workers.
It allows additional extra value -1 to initialize the number of workers to
twice the number of CPU, allowing to overload the CPU with loads and keep
them fully working in some scenario.
2018-04-16 23:57:28 +02:00
Patrick Pelissier b684a62f8b Add more local information about the origin of a failure. 2018-04-16 22:05:17 +02:00
Patrick Pelissier 6bb94db22f Add function dict_splice 2018-04-15 21:02:14 +02:00
Patrick Pelissier d70a971d2e Add note 2018-04-15 20:59:04 +02:00
Patrick Pelissier b05b515f3d Reformat 2018-04-15 20:58:52 +02:00
Patrick Pelissier 12b15e0037 Add function array_splice just like function list_splice
as it can be done faster at low level.
2018-04-15 11:41:32 +02:00
Patrick Pelissier 2c9169308b Add code generation for OA dict 2018-04-15 10:53:55 +02:00
Patrick Pelissier 74a3d50c88 Minor optimization for _clean
No need to fill in the complete array with invalid param
as the array will be reduced.
2018-04-15 10:53:15 +02:00
Patrick Pelissier 6b8bb33221 Convert unsigned long to size_t in function prototypes for 32 bits systems. 2018-04-15 01:10:49 +02:00
Patrick Pelissier 175fb46508 Fix issue for 32 bits system 2018-04-15 00:48:31 +02:00
Patrick Pelissier 2f65400641 Add target checkall to lanch the test suite wih multiple compilers / options. 2018-04-15 00:40:48 +02:00
Patrick Pelissier b5f4f2fc4b Finish splitting m_core_clz into m_core_clz32 & m_core_clz64 2018-04-15 00:10:38 +02:00
Patrick Pélissier 8c34f44dae Finish fixing for 32 bits / clz 2018-04-14 23:14:21 +02:00
Patrick Pélissier d97f46133b Fix issue for 32 bits systems
mpz_core_clz wasn't reproductible for 32 bits system.
2018-04-14 23:08:53 +02:00
Patrick Pélissier a94a5feb84 Fix issue with 32 bits systems (size_t != unsigned long) 2018-04-14 20:52:29 +02:00
Patrick Pelissier ead5d7511a Use of proper oplist with the CMP method. 2018-04-14 08:33:37 +02:00
Patrick Pelissier 1cd7446013 Add more instantiation of the containter 2018-04-14 08:27:26 +02:00
Patrick Pelissier 40747a463b Remove dependecies from GMP header, allowing to run the test suite without GMP 2018-04-14 08:16:31 +02:00
Patrick Pelissier 8e20118ab6 Reformat 2018-04-14 08:12:58 +02:00
Patrick Pelissier 19f330e670 Rename also MYMPZ2_OPLIST into MY_MPZ_CMP_OPLIST 2018-04-14 08:12:27 +02:00
Patrick Pelissier 20d549b5e1 Rename MYMPZ_OPLIST into MY_MPZ_OPLIST 2018-04-14 08:11:14 +02:00