No longer open syscall files with O_SYNC|O_DSYNC|O_RSYNC by default when
doing direct I/O, to avoid a write performance decrease starting with Linux
kernel version 2.6.32.
A stxxl::file::SYNC flag has been added to allow forcing the O_*SYNC flags
when opening files.
Lock files by default (if implemented for this file type), can by disabled
via stxxl::file::NO_LOCK.
block_prefetcher now takes a completion_handler instead of a raw function
pointer. Furthermore, the completion_handler is already executed after the
read operation completes, not only when the issuer waits for it to
complete. The I/O thread issues the call to the completion_handler, so for
multiple disks, this may happen concurrently.
Internal changes, not user-visible
Change handling of (empty) filler elements in typed_block to fix
mismatching struct size in nested blocks.
Removed debugmon which was very limited and disabled for a long time.
Bugfixes
Allow prefetch schedule computation of vectors that are bound to a file.
Fix race growing files during concurrent block allocation.
Allow reading a block that spans over end-of-file, fill remainder with
zeroes.
Crash at program termination when using global stxxl containers.
Enable syscall_file to read/write >=2GiB of data in a single I/O operation.
New public headers: stxxl/stats, stxxl/request
Parallel mode can be switched on for internal STXXL computation selectively
(i.e. without enabling it for the non-stxxl part of an application), by
setting USE_PARALLEL_MODE=yes in make.settings.local.
Platform Support
add ICPC 12.0, works with both MCSTL (needs libstdc++ from GCC 4.2) and
parallel mode (needs libstdc++ from GCC 4.3 (not 4.4/4.5))
add CLANG++ 2.8
add MSVC 2010/Windows 7
allow the library name generated by MSVC to be changed by setting LIBNAME
and redefining STXXL_LIBNAME (defaults to "stxxl")
Under-the-hood improvements
code cleanup
I/O-layer: renaming and reorganization of the request implementation