Commit Graph
100 Commits
Author SHA1 Message Date
Patrick Pelissier 47fb467878 Add basic it test for B+tree 2018-04-08 07:24:56 +02:00
Patrick Pelissier 67af80c772 Fix issue in it_end for B+TREE 2018-04-08 07:22:34 +02:00
Patrick Pelissier 1f44155127 Add one more corner case 2018-04-07 12:11:50 +02:00
Patrick Pelissier 87a3ac4a76 Add test for methods _init_set & _set for B+tree 2018-04-07 12:10:50 +02:00
Patrick Pelissier 73354a04d5 Add method _init_set & _set for B+tree 2018-04-07 12:10:19 +02:00
Patrick Pelissier cb3038e73c Add more checks 2018-04-07 11:51:38 +02:00
Patrick Pelissier b6ec31fe11 Add more test. 2018-04-07 11:50:18 +02:00
Patrick Pelissier c7059a60ee Add more tests 2018-04-07 11:44:16 +02:00
Patrick Pelissier af49aaf8b1 Add more tests. 2018-04-07 11:42:12 +02:00
Patrick Pelissier 4149b8388b Improve quality of coverage report by not expanding contract function. 2018-04-07 11:41:43 +02:00
Patrick Pelissier df0d723714 Compute coverage for B+TREE 2018-04-07 11:28:50 +02:00
Patrick Pelissier 44209ed93e Add more tests 2018-04-07 11:19:58 +02:00
Patrick Pelissier 930a3c8637 More tests. 2018-04-07 11:14:31 +02:00
Patrick Pelissier d2f5698397 iMake oplist optional for BPTREE_DEF 2018-04-07 11:10:13 +02:00
Patrick Pelissier 42d9fc3284 Update doc 2018-04-07 00:43:51 +02:00
Patrick Pelissier 91db494898 Add basic iterator for B+tree
I can't match the exact interface of a dictionary of the key and the value are in separate place in the structure
(so I can't return a pair of (key,value)). Instead I return a pair of pointer (key_ptr, value_ptr).
I don't see any other way which doesn't evolve copy of the key/value.
For the RBtree interface, no such problem occurs.
2018-04-05 22:44:36 +02:00
Patrick Pelissier 75217d4914 Rewrite / cleanup 2018-04-04 22:57:47 +02:00
Patrick Pelissier ceaf004719 Remove wrong comment 2018-04-04 22:55:19 +02:00
Patrick Pelissier 27b7380433 B+TREE: Add _size operator 2018-04-04 22:54:39 +02:00
Patrick Pelissier 7ca254ade9 B+TREE: Add _pop function. 2018-04-04 22:39:46 +02:00
Patrick Pelissier c91864c2a7 B+TREE: _remove returns a boolean indicating if the item
removed was present or not
2018-04-04 22:35:47 +02:00
Patrick Pelissier 4925297a35 Update doc 2018-04-04 20:27:44 +02:00
Patrick Pelissier d7ece50ed0 Replace "Dict" by "DictOA" since KLIB uses an OpenAddressing dictionnary. 2018-04-03 20:13:18 +02:00
Patrick Pelissier 3ef4a9f413 Fix issue with the way of benching the BTREE of KLIB.
Forgot to initialize the key in the search pass.
2018-04-03 20:10:11 +02:00
Patrick Pelissier 9768b5b37a Add bench of B+TREE 2018-04-03 20:07:21 +02:00
Patrick Pelissier e4cd999bd0 Test expansion of new container. 2018-04-03 20:01:24 +02:00
Patrick Pelissier 8e335535cc Add new container without a value. 2018-04-03 20:01:04 +02:00
Patrick Pelissier 2f53d98806 Fix issue with kind_s being redefined if the macro is used again.
Fix issue of not using proper method for type.
Render usage of value optional so that we can create B+TREE with only keys.
2018-04-03 18:29:28 +02:00
Patrick Pelissier 5d99331358 Add expansion of a user type. 2018-04-03 18:29:16 +02:00
Patrick Pelissier 316022cde4 Add oplist with CMP operator 2018-04-03 18:28:51 +02:00
Patrick Pelissier 8d1abca8de Add link to the comparison between STL & M*LIB 2018-04-03 12:47:44 +02:00
Patrick Pelissier 1b2e73eaa2 Prepare doc 2018-04-03 12:43:30 +02:00
Patrick Pelissier 6127371920 Add B+TREE container.
Fix #4
2018-04-03 12:40:29 +02:00
Patrick Pelissier 7936dbbf8c Minor fix 2018-03-31 16:31:47 +02:00
Patrick Pelissier 8aa45309a2 Update doc 2018-03-31 12:10:50 +02:00
Patrick Pelissier d75237ba66 Update 2018-03-31 12:05:42 +02:00
Patrick Pelissier 9909877771 Avoid warning with C++ 2018-03-31 12:01:05 +02:00
Patrick Pelissier 64ef1f3aba Fix classic issue with C++ 2018-03-31 11:56:28 +02:00
Patrick Pelissier d670e1a6bb Update 2018-03-31 10:05:24 +02:00
Patrick Pelissier 7082a4dc24 Fix wrong initialization of ATOMIC_VAR_INIT for the emulation layer
(wrong since the simplication of the atomic structure).
2018-03-31 10:04:41 +02:00
Patrick Pelissier e6c9314c91 Reorder the list of other libraries. 2018-03-30 21:39:10 +02:00
Patrick Pelissier 3dccd4484e Add nedtries 2018-03-30 21:35:19 +02:00
Patrick Pelissier 170ed98701 Remove dependency of boost/glib to the pool benchmark 2018-03-29 20:51:42 +02:00
Patrick Pelissier 54fa2c8635 Don't assume boost is always installed on the platform. 2018-03-29 20:12:53 +02:00
Patrick Pelissier bc83fe43e5 Remove dependency on GMP, so that it is easier to run the bench suite. 2018-03-29 20:01:45 +02:00
Patrick Pelissier 18710567f2 Make QT & GLIB optional libraries 2018-03-29 19:19:48 +02:00
Patrick Pelissier 9a98ed5cb6 Add PHONY target. 2018-03-29 19:15:11 +02:00
Patrick Pelissier 35a98fd3b5 Remove unused header file 2018-03-29 19:13:59 +02:00
Patrick Pelissier cd74fdf234 time command doesn't work reliabely in Makefile 2018-03-29 19:13:35 +02:00
Patrick Pelissier 6cccbfc73a Add worker_sync_p function. 2018-03-26 22:13:50 +02:00
Patrick Pelissier e59308a9a3 Update documentation. 2018-03-26 21:55:51 +02:00
Patrick Pelissier 85a3be4ae3 Update documentation 2018-03-26 21:45:06 +02:00
Patrick Pelissier d873693fe7 Update to ignore 'other' directory 2018-03-24 12:47:19 +01:00
Patrick Pelissier 2df967d5c2 add TODO 2018-03-24 08:52:20 +01:00
Patrick Pelissier 20989a7ab5 Add test for bounded string. 2018-03-24 08:42:47 +01:00
Patrick Pelissier 8e114d6fe4 Add bounded string definition so that you can easily use them for a container. 2018-03-24 08:42:15 +01:00
Patrick Pelissier 479ad2d4ba Update doc 2018-03-23 22:07:04 +01:00
Patrick Pelissier d05bb49f5d Add more assertions.
Change prototype of fputs to return the error / success status.
2018-03-23 21:25:55 +01:00
Patrick Pelissier fc9755379d Add ctemplates 2018-03-23 20:10:37 +01:00
Patrick Pelissier a85db0c383 Add libgenerics 2018-03-21 23:13:34 +01:00
Patrick Pelissier d19ec5bf49 Fix format of _size 2018-03-21 20:11:31 +01:00
Patrick Pelissier ba72e4ebbf Remove check in protected contract:
since there are two mutex now, there are data race when we want to check it.
TODO: Properly separate the contract.
2018-03-17 19:54:59 +01:00
Patrick Pelissier 5936e25ce4 Add test 2018-03-17 09:24:26 +01:00
Patrick Pelissier d82dc196e0 Fix datarace (?) if support for pop deferred has been activated
(a rewake of thread may be lost)
2018-03-16 23:55:16 +01:00
Patrick Pelissier c174b368e8 Fix issue with atomic variables needing writable variable even for reading only. 2018-03-16 23:27:08 +01:00
Patrick Pelissier 81e3515f40 Add missing tests 2018-03-16 23:06:15 +01:00
Patrick Pelissier bffec6206b Remove usage of variable array extension in C tests to avoid warning with C++ compilers. 2018-03-16 23:02:28 +01:00
Patrick Pelissier d269c23948 Remove warning with C++.
It'll will increase the size of the type a little bit.
TODO: Check compatibility between code using C def and code using C++ def
2018-03-16 23:00:46 +01:00
Patrick Pelissier f2b2335080 Fix issue with C++ not supporting passing an int constant value to an unsigned atomic type...
I definitely find this disturbing.
2018-03-16 22:59:51 +01:00
Patrick Pelissier 5dded0d9aa Clarify the displayed message 2018-03-16 22:30:59 +01:00
Patrick Pelissier 33142c3a0d Fix build for flathaspmap (needs of C++14 and not C++11). 2018-03-16 09:27:00 +01:00
Patrick Pelissier 06e256f77a Fix build with newer version of library 2018-03-16 09:13:34 +01:00
Patrick Pelissier 3f13cca666 Fix compilation with newer version of library 2018-03-16 09:04:32 +01:00
Patrick Pelissier 73117708e5 Analyze generated code 2018-03-14 23:51:51 +01:00
Patrick Pelissier f88b53dce5 Fix issue 2018-03-14 23:51:43 +01:00
Patrick Pelissier 3e609bab04 Add method pop_until 2018-03-14 23:46:30 +01:00
Patrick Pelissier a6bf530c5f Remove a warning. 2018-03-14 22:19:16 +01:00
Patrick Pelissier 5d003b7678 Generate more functions 2018-03-14 22:18:48 +01:00
Patrick Pelissier a5cbc3f34a Rename method into GET_KEY. Add method SET_KEY 2018-03-13 22:22:26 +01:00
Patrick Pelissier 52e92e1ebf Bench stable sort 2018-03-11 00:36:51 +01:00
Patrick Pelissier 5307b6c097 Add stable sort for array 2018-03-11 00:36:38 +01:00
Patrick Pelissier dd4f4761de Add GET_AT method
:
2018-03-10 19:26:59 +01:00
Patrick Pelissier 96f3533e46 Fix bug for default oplist used by M_A1_OPLIST
o
2018-03-10 18:52:16 +01:00
Patrick Pelissier 774e1720b7 Add M_SWAP_DEFAULT 2018-03-10 18:48:27 +01:00
Patrick Pelissier 83f8eadce9 Fix name of variable without a macro (shadow variable) 2018-03-10 18:09:23 +01:00
Patrick Pelissier f8e75761ef Change SNAPSHOT_SRSW to SNAPSHOT_SPSC to be uniform with queue definition
(Replace Reader / Writer term by Consummer / Producer term)
2018-03-10 17:46:02 +01:00
Patrick Pelissier cbb881df86 Fix overwrite branch which has a data race on number.
Rewrite it to be simpler & faster and without data race.
2018-03-10 10:13:54 +01:00
Patrick Pelissier 103e5304e8 Use of 2 mutex for buffer:
* one for the enqueue
* one for the dequeue
The number of items in the buffer is the only variable which can be accessed
by both at the same time.
This improve the performance of the communication and reduce the possibility
of priority inversion between the producer and the consummer thread.
2018-03-09 21:07:21 +01:00
Patrick Pelissier e152ff0377 Add TODO 2018-03-09 21:07:07 +01:00
Patrick Pelissier 65f39ab22e Optmize the buffer queue:
don't broadcast the condition variable if we know that
 no thread is waiting for it.
 Improve bench test from 700ms to 450ms
2018-03-09 19:15:47 +01:00
Patrick Pelissier df51c6dc64 Add m_cond_broad_cast 2018-03-09 19:15:31 +01:00
Patrick Pelissier b7c86ee01e Fix detection
of GCC
2018-03-06 21:58:41 +01:00
Patrick Pelissier 992bb6a73a Add bench of hash computation library (XXHASH) 2018-03-04 01:16:37 +01:00
Patrick Pelissier 557dd3e0d5 Fix spelling 2018-03-03 18:32:08 +01:00
Patrick Pelissier c8d5b5440f Add documentation for LIST_DUAL_PUSH_DEF 2018-03-03 18:30:01 +01:00
Patrick Pelissier 0900e72070 Add TODO 2018-02-28 21:44:52 +01:00
Patrick Pelissier dcdc64f974 Update graph 2018-02-28 21:34:47 +01:00
Patrick Pelissier 58898adbcd Add target to Generate depend.png 2018-02-28 21:34:31 +01:00
Patrick Pelissier ff2050466b Fix spelling 2018-02-28 21:17:16 +01:00
Patrick Pelissier dd209c05b9 Use new kind of dictionary for bench 2018-02-28 21:07:53 +01:00