adiar
adiar copied to clipboard
Alternatives to TPIE : STXXL
Adiar is built ontop of abstractions of the TPIE library to improve the code quality of our own code base and extend it with some custom functionality. An alternative to TPIE is the STXXL library, which is distributed under the BSD license rather than LGPL 3. Furthermore, STXXL should be faster (at the cost of complexity and number tweaking on the user's end).
So, it is of interest to provide the same abstractions with the STXXL library instead such that users can pick which one to use.
- [ ] Move all of the TPIE wrappers in src/adiar/**/ to src/adiar/**/tpie/.
-
adiar::sorter<memory_type>
in src/adiar/internal/data_structures/sorter.h -
adiar::priority_queue<memory_type>
in src/adiar/internal/data_structures/priority_queue.h -
adiar::file<elem_t>
in src/adiar/internal/io/file.h -
adiar::file_stream<elem_t>
/adiar::file_writer<elem_t>
in src/adiar/internal/io/file_stream.h and src/adiar/internal/io/file_writer.h
-
- [ ] Create STXXL wrappers with a similar interface in src/adiar/**/stxxl/. This needs to be an unofficial C++17 ready version of STXXL.
- [ ] Compile Adiar with
#include <adiar/internal/**/tpie/*>
or#include <adiar/internal/**/stxxl/*>
depending on whether a newADIAR_USE_TPIE
compiler setting in CMake is set. The primary question is how to ensure that even the header parts of the library are compiled with the same version.