197 lines (157 with data), 8.4 kB
Version 1.2.0 (05 July 2008)
* made the block management layer thread-safe
* made all size_types unsigned
* stxxl::priority_queue
- fixed a rare assertion
- fixed a race condition by using proper block hinting
- insert_queue: replaced std::priority_queue with a special
implementation internal_priority_queue that allows for
fast exporting of all elements
- even more bugs and inefficiencies fixed
- significant speed improvements
* random number generators are now all seedable,
should allow redoing identical program runs for debugging purposes
* stxxl::noncopyable, inspired by boost::noncopyable: inheriting from this
class forbids copying of objects when this is undesirable
- used in all classes that had implemented their own variants previously
* stxxl::vector, all sorting functions: replaced TwoToOneDimArrayRowAdaptor
with ArrayOfSequencesIterator which is much faster, especially
if blocks have padding
* if required, verify that the sentinels satisfy a strict weak ordering
* stxxl::vector: several operations sped up, several more implemented
* fix existing allocation strategies and add experimental support for
distinguishing between regular disks and flash devices
* stxxl::stable_ksort
- add experimental warning, some parts are not yet implemented
- fixed an off-by-one error in memory allocation vs. usage
* btree: fuse last two nodes/leaves if possible, rebalancing can fail
* btree tests: ensure uniqueness of test data if required
* reduce function call overhead of stxxl::debugmon if it's not activated
* add public interface headers: stxxl/types, stxxl/aligned_alloc
* add compatibility wrappers for standard extensions
hash_map, hash_set, auto_ptr
* MCSTL is only supported with g++ 4.2 and icpc 10.x
* lots of small bugfixes
* made the TPIE, BDB and LEDA_SM tests compile again
* general code cleanup
- fixed most compiler warnings
- elimination of duplicate and unused code
- cleaned up and sanitized debugging macros
- no more 'using namespace std' and 'using namespace stxxl'
- fixed ambiguities noted by g++ 4.3
- unify the #include directives
- add/unify/cleanup copyright headers
* general code reformatting (uncrustify)
* add support for new compiler releases
* portability fixes for different platforms
* implemented file truncation on windows platforms
* build system
- lots of small modifications
- now only requires GNU make 3.78 or later
- check whether STXXL_ROOT has been set correctly and if unset, try
autoconfiguration by creating make.settings.local with defaults
- improved and simplified boost support for posix systems
- Mac OS X support
* changed all tests so that they behave well in their default parameters,
system assumptions and return values and can be run from a script
- use aligned_alloc/aligned_dealloc appropriately
* added some more test programs
* add misc/run_all_tests that runs all tests with sensible parameters,
optionally via valgrind
* checked all tests with valgrind
- fixed use of uninitialized memory when writing to normal files
- (optionally) initialize typed_blocks and payload data in test structs
to suppress (most) uninitialized write errors when writing to disk files
- fix mismatched new/delete in mcstl
* update install and usage instructions
* spell checked sources and documentation
------------------------------------------
Version 1.1.0 (31 July 2007)
* stxxl is now hosted on SourceForge: http://stxxl.sourceforge.net/
* Restructured the source layout:
- includes moves to include/
- introduced some public headers:
stxxl.h, stxxl/algorithm, stxxl/bits, stxxl/deque, stxxl/io, stxxl/ksort, stxxl/mallocstats, stxxl/map, stxxl/mng, stxxl/priority_queue, stxxl/queue, stxxl/random, stxxl/scan, stxxl/sort, stxxl/stable_ksort, stxxl/stack, stxxl/stream, stxxl/timer, stxxl/vector
- the header "stxxl" is no longer available, please use "stxxl.h" instead
- the use of any other (internal) header is discouraged, additional public headers can be added as the need arises
* Overhauled the build system:
- merged configuration files, simplified option tuning
- support object files and binaries with and without mcstl support existing in parallel
- the library build creates stxxl.mk which can be included in an applications Makefile to set the correct compiler/linker switches for stxxl
- similarly mcstxxl.mk is created for a stxxl compiled with mcstl support
- add dependency tracking and improve parallelism during build
* compiler support matrix: (for an up-to-date list, please see the doxygen documentation)
compiler | stxxl stxxl + mcstl
--------------+------------------------
GCC 4.3 | x x
GCC 4.2 | x x
GCC 4.1 | x n/a
GCC 4.0 | x n/a
GCC 3.4 | x n/a
GCC 3.3 | o n/a
GCC 2.95 | - n/a
ICPC 9.1.051 | x x¹
ICPC 10.0.025 | x x¹
MSVC 2005 8.0 | x n/a
x = full support o = partial support - = unsupported
n/a = compiler does not support OpenMP which is needed by MCSTL
¹ = does not work with STL GCC 4.2.0 (ICPC bug), workaround:
the first include in the program must be
"stxxl/bits/common/intel_compatibility.h"
* pipelined stream::sort, stream::runs_creator and stream::runs_merger are parallelized using MCSTL
* obsolete files removed
* fixed include dependencies
* fixed lots of warnings
* fixed lots of small bugs
* add header compilation tests
* stxxl::vector: implemented some more functions
* const char* stxxl::get_version_string(): new function
* comparators inherit from std::binary_function<>
* cleanup, reformat the code to a consistent format (Thanks, uncrustify!)
------------------------------------------
Version 1.0e (4 June 2007)
* Bugfix: for objects with the destructors, memory block were allocated in a non-aligned fashion
* Internal CPU efficiency of Stxxl priority queue is improved (loser trees in external mergers are integrated)
* Fixed bug with conversion of const/non-const iterators, implemented comparison and difference operations on const/non-const iterators (for vector, map, and deque)
* Added operator[] to vector and deque iterators
* stxxl::random_shuffle added
* improved Makefile structure (thanx to Andreas Beckmann)
* Allow parallel build for g++
------------------------------------------
Version 1.0d (16 January 2007)
* Support of Visual Studio 2005 Express (VC++ 8.0)
* Algorithms and data structures of Stxxl can now use more than 4GB of main memory on 64-bit processors/compilers
* Support of error reporting using the C++ exception mechanism
-------------------------------------------
Version 1.0c (21 September 2006)
* An implementation of an I/O-efficient deque
* STXXL uses MCSTL library (optional) to improve the performance of stxxl::sort and pipelined sort on SMP and multicore processors.
-------------------------------------------
Version 0.99 (22 March 2006)
* Better compiler support: g++ (versions 3.3.x-4.0.x) and Microsoft Visual C++ 7.1 (.NET)
* New B+Tree-based implementation of map (compatible with all listed above compilers): I/O-efficient map
------------------------------------------
Version 0.9 (9 August 2005)
* STXXL has been ported to Windows. It now can be run under Windows XP and Windows 2000
* STXXL can be compiled now by g++ (versions 3.0.x-3.4.x, 4.0.x) and Microsoft Visual C++ 7.1 (.NET)
* New data structure: I/O efficient FIFO queue
------------------------------------------
Version 0.77 (24 March 2005)
* An implementation of queue is available
------------------------------------------
Version 0.75 (23 March 2005)
* An implementation of map based on B+tree is available
------------------------------------------
Version 0.7 (25 January 2005)
* The implementation of pipelining is extended and improved
------------------------------------------
Version 0.6 (5 September 2004)
* Tested implementation of the stream package (aka pipelining) is available
------------------------------------------
Version 0.5 (21 November 2003)
* The first implementation of the stream package (aka pipelining) is available
* Priority queue is available
------------------------------------------
Version 0.2 (Summer 2003)
* The first public release
* Vectors, stacks, sorting, scanning are available