Commit Graph
1204 Commits
Author SHA1 Message Date
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
Patrick Pelissier e09fa89781 Little bit rewrite to help the compiler optimizes the loop a bit more:
as the variables are not longer on the stack, it uses more registers
and more instructions in the critical loop than before. By
copying the data into stack local variable, the compiler is once again
able to optimize the loop properly.
2018-04-14 08:07:01 +02:00
Patrick Pelissier 70b1421114 Update after review 2018-04-13 20:56:48 +02:00
Patrick Pelissier b80a30785a Fix 2018-04-13 20:28:57 +02:00
Patrick Pelissier c3245ac301 Full refactorisation and proper use of M*LIB.
Should be as fast as before.
2018-04-13 20:28:01 +02:00
Patrick Pelissier 085d5b411c Add oplist for B*TREE 2018-04-13 20:16:23 +02:00
Patrick Pelissier 8c26d6d0b5 Update 2018-04-12 23:39:19 +02:00
Patrick Pelissier 76f5085e84 Merge branch 'master' of https://github.com/P-p-H-d/mlib 2018-04-11 22:42:46 +02:00
Patrick Pelissier 80d78e3270 Add bounded string cte macro 2018-04-11 22:42:22 +02:00
Patrick Pelissier 654521b74c Add some tests of _equal_p 2018-04-10 23:25:04 +02:00
Patrick Pelissier 353d2d4cc9 Fix issue in copy of B*TREE:
the _next field wasn't properly set for the deepest nodes.
2018-04-10 23:23:36 +02:00
Patrick Pelissier b38d84419a Add methods hash, eqal_p, out_str, in_str & get_str
Format of serialisation needs to be properly uniformised between:
dictionnary,
red-black tree,
set,
b+tree with key,value,
b+tree with only key.
2018-04-09 18:42:34 +02:00
Patrick Pelissier 0d085771e4 Add tests for new methods 2018-04-09 18:07:03 +02:00
Patrick Pelissier f3b2b6b41e Add methods _swap, _move & _init_move 2018-04-09 18:06:48 +02:00
Patrick Pelissier fb35ad7ab3 Update due no new LIBSRT API. 2018-04-08 21:43:25 +02:00
Patrick Pelissier cf6e721994 Fix wrong usage of CollectionC by the benchmark. 2018-04-08 21:32:57 +02:00
Patrick Pelissier 9faea5ff15 Rewrite bench code so that it computes what is expected. 2018-04-08 21:10:29 +02:00
Patrick Pelissier fe18009bc0 Rewrite the loop so that the result is the same for dict and dict_oa. 2018-04-08 21:07:20 +02:00
Patrick Pelissier 10f900ea3e Rewrite code to avoid warning if optimisations are turned on. 2018-04-08 20:27:37 +02:00