Petr Machata 657e0b6
TBB 4.0 Update 4
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 4.0 Update 3):
Petr Machata 657e0b6

Petr Machata 657e0b6
- The TBB memory allocator transparently supports large pages on Linux.
Petr Machata 657e0b6
- A new flow_graph example, logic_sim, was added.
Petr Machata 657e0b6
- Support for DirectX* 9 was added to GUI examples.
Petr Machata 657e0b6

Petr Machata 657e0b6
Community Preview Features:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added: aggregator, a new concurrency control mechanism.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- The abort operation on concurrent_bounded_queue now leaves the queue
Petr Machata 657e0b6
    in a reusable state. If a bad_alloc or bad_last_alloc exception is
Petr Machata 657e0b6
    thrown while the queue is recovering from an abort, that exception
Petr Machata 657e0b6
    will be reported instead of user_abort on the thread on which it
Petr Machata 657e0b6
    occurred, and the queue will not be reusable.
Petr Machata 657e0b6
- Steal limiting heuristic fixed to avoid premature stealing disabling
Petr Machata 657e0b6
    when large amount of __thread data is allocated on thread stack.
Petr Machata 657e0b6
- Fixed a low-probability leak of arenas in the task scheduler.
Petr Machata 657e0b6
- In STL-compatible allocator classes, the method construct() was fixed
Petr Machata 657e0b6
    to comply with C++11 requirements.
Petr Machata 657e0b6
- Fixed a bug that prevented creation of fixed-size memory pools
Petr Machata 657e0b6
    smaller than 2M.
Petr Machata 657e0b6
- Significantly reduced the amount of warnings from various compilers.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Multiple improvements by Raf Schietekat.
Petr Machata 657e0b6
- Basic support for Clang on Mac OS X* by Blas Rodriguez Somoza.
Petr Machata 657e0b6
- Fixes for warnings and corner-case bugs by Blas Rodriguez Somoza
Petr Machata 657e0b6
    and Edward Lam.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 4.0 Update 3
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 4.0 Update 2):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Modifications to the low-level API for memory pools:
Petr Machata 657e0b6
    added support for aligned allocations;
Petr Machata 657e0b6
    pool policies reworked to allow backward-compatible extensions;
Petr Machata 657e0b6
    added a policy to not return memory space till destruction;
Petr Machata 657e0b6
    pool_reset() does not return memory space anymore.
Petr Machata 657e0b6
- Class tbb::flow::graph_iterator added to iterate over all nodes
Petr Machata 657e0b6
    registered with a graph instance.
Petr Machata 657e0b6
- multioutput_function_node has been renamed multifunction_node.
Petr Machata 657e0b6
    multifunction_node and split_node are now fully-supported features.
Petr Machata 657e0b6
- For the tagged join node, the policy for try_put of an item with
Petr Machata 657e0b6
    already existing tag has been defined: the item will be rejected.
Petr Machata 657e0b6
- Matching the behavior on Windows, on other platforms the optional
Petr Machata 657e0b6
    shared libraries (libtbbmalloc, libirml) now are also searched
Petr Machata 657e0b6
    only in the directory where libtbb is located.
Petr Machata 657e0b6
- The platform isolation layer based on GCC built-ins is extended.
Petr Machata 657e0b6

Petr Machata 657e0b6
Backward-incompatible API changes:
Petr Machata 657e0b6

Petr Machata 657e0b6
- a graph reference parameter is now required to be passed to the
Petr Machata 657e0b6
    constructors of the following flow graph nodes: overwrite_node, 
Petr Machata 657e0b6
    write_once_node, broadcast_node, and the CPF or_node.
Petr Machata 657e0b6
- the following tbb::flow node methods and typedefs have been renamed:
Petr Machata 657e0b6
       Old                             New
Petr Machata 657e0b6
    join_node and or_node:
Petr Machata 657e0b6
       inputs()                 ->     input_ports()
Petr Machata 657e0b6
       input_ports_tuple_type   ->     input_ports_type
Petr Machata 657e0b6
    multifunction_node and split_node:
Petr Machata 657e0b6
       ports_type               ->     output_ports_type
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Not all logical processors were utilized on systems with more than
Petr Machata 657e0b6
    64 cores split by Windows into several processor groups.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 4.0 Update 2 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 4.0 Update 1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- concurrent_bounded_queue now has an abort() operation that releases 
Petr Machata 657e0b6
    threads involved in pending push or pop operations. The released 
Petr Machata 657e0b6
    threads will receive a tbb::user_abort exception.
Petr Machata 657e0b6
- Added Community Preview Feature:  concurrent_lru_cache container, 
Petr Machata 657e0b6
    a concurrent implementation of LRU (least-recently-used) cache.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- fixed a race condition in the TBB scalable allocator.
Petr Machata 657e0b6
- concurrent_queue counter wraparound bug was fixed, which occurred when
Petr Machata 657e0b6
    the number of push and pop operations exceeded ~>4 billion on IA32.
Petr Machata 657e0b6
- fixed races in the TBB scheduler that could put workers asleep too
Petr Machata 657e0b6
    early, especially in presense of affinitized tasks.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 4.0 Update 1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 4.0 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Memory leaks fixed in binpack example.
Petr Machata 657e0b6
- Improvements and fixes in the TBB allocator.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 4.0 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 8 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- concurrent_priority_queue is now a fully supported feature.
Petr Machata 657e0b6
    Capacity control methods were removed.
Petr Machata 657e0b6
- Flow graph is now a fully supported feature.
Petr Machata 657e0b6
- A new memory backend has been implemented in the TBB allocator.
Petr Machata 657e0b6
    It can reuse freed memory for both small and large objects, and
Petr Machata 657e0b6
    returns unused memory blocks to the OS more actively.
Petr Machata 657e0b6
- Improved partitioning algorithms for parallel_for and parallel_reduce
Petr Machata 657e0b6
    to better handle load imbalance.
Petr Machata 657e0b6
- The convex_hull example has been refactored for reproducible
Petr Machata 657e0b6
    performance results.
Petr Machata 657e0b6
- The major interface version has changed from 5 to 6.
Petr Machata 657e0b6
    Deprecated interfaces might be removed in future releases.
Petr Machata 657e0b6

Petr Machata 657e0b6
Community Preview Features:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added: serial subset, i.e. sequential implementations of TBB generic
Petr Machata 657e0b6
    algorithms (currently, only provided for parallel_for).
Petr Machata 657e0b6
- Preview of new flow graph nodes:
Petr Machata 657e0b6
    or_node (accepts multiple inputs, forwards each input separately
Petr Machata 657e0b6
      to all successors),
Petr Machata 657e0b6
    split_node (accepts tuples, and forwards each element of a tuple
Petr Machata 657e0b6
      to a corresponding successor), and
Petr Machata 657e0b6
    multioutput_function_node (accepts one input, and passes the input
Petr Machata 657e0b6
    and a tuple of output ports to the function body to support outputs
Petr Machata 657e0b6
    to multiple successors).
Petr Machata 657e0b6
- Added: memory pools for more control on memory source, grouping,
Petr Machata 657e0b6
    and collective deallocation.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 8 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 7 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Task priorities become an official feature of TBB,
Petr Machata 657e0b6
    not community preview as before.
Petr Machata 657e0b6
- Atomics API extended, and implementation refactored.
Petr Machata 657e0b6
- Added task::set_parent() method.
Petr Machata 657e0b6
- Added concurrent_unordered_set container.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- PowerPC support by Raf Schietekat.
Petr Machata 657e0b6
- Fix of potential task pool overrun and other improvements
Petr Machata 657e0b6
    in the task scheduler by Raf Schietekat.
Petr Machata 657e0b6
- Fix in parallel_for_each to work with std::set in Visual* C++ 2010.
Petr Machata 657e0b6

Petr Machata 657e0b6
Community Preview Features:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Graph community preview feature was renamed to flow graph.
Petr Machata 657e0b6
    Multiple improvements in the implementation.
Petr Machata 657e0b6
    Binpack example was added for the feature.
Petr Machata 657e0b6
- A number of improvements to concurrent_priority_queue.
Petr Machata 657e0b6
    Shortpath example was added for the feature.
Petr Machata 657e0b6
- TBB runtime loaded functionality was added (Windows*-only).
Petr Machata 657e0b6
    It allows to specify which versions of TBB should be used,
Petr Machata 657e0b6
    as well as to set directories for the library search.
Petr Machata 657e0b6
- parallel_deterministic_reduce template function was added.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 7 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 6 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added implementation of the platform isolation layer based on 
Petr Machata 657e0b6
    GCC atomic built-ins; it is supposed to work on any platform 
Petr Machata 657e0b6
    where GCC has these built-ins.
Petr Machata 657e0b6

Petr Machata 657e0b6
Community Preview Features:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Graph's dining_philosophers example added.
Petr Machata 657e0b6
- A number of improvements to graph and concurrent_priority_queue.
Petr Machata 657e0b6

Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 6 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 5 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added Community Preview feature: task and task group priority, and
Petr Machata 657e0b6
    Fractal example demonstrating it.
Petr Machata 657e0b6
- parallel_pipeline optimized for data items of small and large sizes.
Petr Machata 657e0b6
- Graph's join_node is now parametrized with a tuple of up to 10 types.
Petr Machata 657e0b6
- Improved performance of concurrent_priority_queue.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Initial NetBSD support by Aleksej Saushev.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Failure to enable interoperability with Intel(R) Cilk(tm) Plus runtime
Petr Machata 657e0b6
    library, and a crash caused by invoking the interoperability layer
Petr Machata 657e0b6
    after one of the libraries was unloaded.
Petr Machata 657e0b6
- Data race that could result in concurrent_unordered_map structure
Petr Machata 657e0b6
    corruption after call to clear() method.
Petr Machata 657e0b6
- Stack corruption caused by PIC version of 64-bit CAS compiled by Intel
Petr Machata 657e0b6
    compiler on Linux.
Petr Machata 657e0b6
- Inconsistency of exception propagation mode possible when application
Petr Machata 657e0b6
    built with Microsoft* Visual Studio* 2008 or earlier uses TBB built
Petr Machata 657e0b6
    with Microsoft* Visual Studio* 2010.
Petr Machata 657e0b6
- Affinitizing master thread to a subset of available CPUs after TBB
Petr Machata 657e0b6
    scheduler was initialized tied all worker threads to the same CPUs.
Petr Machata 657e0b6
- Method is_stolen_task() always returned 'false' for affinitized tasks.
Petr Machata 657e0b6
- write_once_node and overwrite_node did not immediately send buffered
Petr Machata 657e0b6
    items to successors
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 5 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 4 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added Community Preview feature: graph.
Petr Machata 657e0b6
- Added automatic propagation of master thread FPU settings to
Petr Machata 657e0b6
    TBB worker threads.
Petr Machata 657e0b6
- Added a public function to perform a sequentially consistent full 
Petr Machata 657e0b6
    memory fence: tbb::atomic_fence() in tbb/atomic.h.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Data race that could result in scheduler data structures corruption
Petr Machata 657e0b6
    when using fire-and-forget tasks.
Petr Machata 657e0b6
- Potential referencing of destroyed concurrent_hash_map element after
Petr Machata 657e0b6
    using erase(accessor&A) method with A acquired as const_accessor.
Petr Machata 657e0b6
- Fixed a correctness bug in the convex hull example.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Patch for calls to internal::atomic_do_once() by Andrey Semashev.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 4 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 3 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added Community Preview feature: concurrent_priority_queue.
Petr Machata 657e0b6
- Fixed library loading to avoid possibility for remote code execution,
Petr Machata 657e0b6
    see http://www.microsoft.com/technet/security/advisory/2269637.mspx.
Petr Machata 657e0b6
- Added support of more than 64 cores for appropriate Microsoft* 
Petr Machata 657e0b6
    Windows* versions. For more details, see 
Petr Machata 657e0b6
    http://msdn.microsoft.com/en-us/library/dd405503.aspx.
Petr Machata 657e0b6
- Default number of worker threads is adjusted in accordance with 
Petr Machata 657e0b6
    process affinity mask.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Calls of scalable_* functions from inside the allocator library 
Petr Machata 657e0b6
    caused issues if the functions were overridden by another module.
Petr Machata 657e0b6
- A crash occurred if methods run() and wait() were called concurrently
Petr Machata 657e0b6
    for an empty tbb::task_group (1736).
Petr Machata 657e0b6
- The tachyon example exhibited build problems associated with 
Petr Machata 657e0b6
    bug 554339 on Microsoft* Visual Studio* 2010. Project files were
Petr Machata 657e0b6
    modified as a partial workaround to overcome the problem. See 
Petr Machata 657e0b6
    http://connect.microsoft.com/VisualStudio/feedback/details/554339.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 3 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- cache_aligned_allocator class reworked to use scalable_aligned_malloc.
Petr Machata 657e0b6
- Improved performance of count() and equal_range() methods
Petr Machata 657e0b6
    in concurrent_unordered_map.
Petr Machata 657e0b6
- Improved implementation of 64-bit atomic loads and stores on 32-bit
Petr Machata 657e0b6
    platforms, including compilation with VC 7.1.
Petr Machata 657e0b6
- Added implementation of atomic operations on top of OSAtomic API
Petr Machata 657e0b6
    provided by Mac OS* X.
Petr Machata 657e0b6
- Removed gratuitous try/catch blocks surrounding thread function calls
Petr Machata 657e0b6
  in tbb_thread.
Petr Machata 657e0b6
- Xcode* projects were added for sudoku and game_of_life examples.
Petr Machata 657e0b6
- Xcode* projects were updated to work without TBB framework.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fixed a data race in task scheduler destruction that on rare occasion
Petr Machata 657e0b6
    could result in memory corruption.
Petr Machata 657e0b6
- Fixed idle spinning in thread bound filters in tbb::pipeline (1670).
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- MinGW-64 basic support by brsomoza (partially).
Petr Machata 657e0b6
- Patch for atomic.h by Andrey Semashev.
Petr Machata 657e0b6
- Support for AIX & GCC on PowerPC by Giannis Papadopoulos.
Petr Machata 657e0b6
- Various improvements by Raf Schietekat.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 2 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 Update 1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Destructor of tbb::task_group class throws missing_wait exception
Petr Machata 657e0b6
    if there are tasks running when it is invoked.
Petr Machata 657e0b6
- Interoperability layer with Intel Cilk Plus runtime library added
Petr Machata 657e0b6
    to protect TBB TLS in case of nested usage with Intel Cilk Plus.
Petr Machata 657e0b6
- Compilation fix for dependent template names in concurrent_queue.
Petr Machata 657e0b6
- Memory allocator code refactored to ease development and maintenance.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Improved interoperability with other Intel software tools on Linux in
Petr Machata 657e0b6
    case of dynamic replacement of memory allocator (1700)
Petr Machata 657e0b6
- Fixed install issues that prevented installation on
Petr Machata 657e0b6
    Mac OS* X 10.6.4 (1711).
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 Update 1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 3.0 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Decreased memory fragmentation by allocations bigger than 8K.
Petr Machata 657e0b6
- Lazily allocate worker threads, to avoid creating unnecessary stacks.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- TBB allocator used much more memory than malloc (1703) - see above.
Petr Machata 657e0b6
- Deadlocks happened in some specific initialization scenarios
Petr Machata 657e0b6
    of the TBB allocator (1701, 1704).
Petr Machata 657e0b6
- Regression in enumerable_thread_specific: excessive requirements
Petr Machata 657e0b6
    for object constructors.
Petr Machata 657e0b6
- A bug in construction of parallel_pipeline filters when body instance
Petr Machata 657e0b6
    was a temporary object.
Petr Machata 657e0b6
- Incorrect usage of memory fences on PowerPC and XBOX360 platforms.
Petr Machata 657e0b6
- A subtle issue in task group context binding that could result
Petr Machata 657e0b6
    in cancelation signal being missed by nested task groups.
Petr Machata 657e0b6
- Incorrect construction of concurrent_unordered_map if specified
Petr Machata 657e0b6
    number of buckets is not power of two.
Petr Machata 657e0b6
- Broken count() and equal_range() of concurrent_unordered_map.
Petr Machata 657e0b6
- Return type of postfix form of operator++ for hash map's iterators.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 3.0 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 Update 3 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- All open-source-release changes down to TBB 2.2 U3 below
Petr Machata 657e0b6
    were incorporated into this release.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20100406 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. 20100310 open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added support for Microsoft* Visual Studio* 2010, including binaries.
Petr Machata 657e0b6
- Added a PDF file with recommended Design Patterns for TBB.
Petr Machata 657e0b6
- Added parallel_pipeline function and companion classes and functions
Petr Machata 657e0b6
    that provide a strongly typed lambda-friendly pipeline interface.
Petr Machata 657e0b6
- Reworked enumerable_thread_specific to use a custom implementation of
Petr Machata 657e0b6
    hash map that is more efficient for ETS usage models.
Petr Machata 657e0b6
- Added example for class task_group; see examples/task_group/sudoku.
Petr Machata 657e0b6
- Removed two examples, as they were long outdated and superceded:
Petr Machata 657e0b6
    pipeline/text_filter (use pipeline/square);
Petr Machata 657e0b6
    parallel_while/parallel_preorder (use parallel_do/parallel_preorder).
Petr Machata 657e0b6
- PDF documentation updated.
Petr Machata 657e0b6
- Other fixes and changes in code, tests, and examples.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Eliminated build errors with MinGW32.
Petr Machata 657e0b6
- Fixed post-build step and other issues in VS projects for examples.
Petr Machata 657e0b6
- Fixed discrepancy between scalable_realloc and scalable_msize that
Petr Machata 657e0b6
    caused crashes with malloc replacement on Windows.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20100310 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 Update 3 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Version macros changed in anticipation of a future release.
Petr Machata 657e0b6
- Directory structure aligned with Intel(R) C++ Compiler;
Petr Machata 657e0b6
    now TBB binaries reside in <arch>/<os_key>/[bin|lib]
Petr Machata 657e0b6
    (in TBB 2.x, it was [bin|lib]/<arch>/<os_key>).
Petr Machata 657e0b6
- Visual Studio projects changed for examples: instead of separate set
Petr Machata 657e0b6
    of files for each VS version, now there is single 'msvs' directory
Petr Machata 657e0b6
    that contains workspaces for MS C++ compiler (<example>_cl.sln) and
Petr Machata 657e0b6
    Intel C++ compiler (<example>_icl.sln). Works with VS 2005 and above.
Petr Machata 657e0b6
- The name versioning scheme for backward compatibility was improved;
Petr Machata 657e0b6
    now compatibility-breaking changes are done in a separate namespace.
Petr Machata 657e0b6
- Added concurrent_unordered_map implementation based on a prototype
Petr Machata 657e0b6
    developed in Microsoft for a future version of PPL.
Petr Machata 657e0b6
- Added PPL-compatible writer-preference RW lock (reader_writer_lock).
Petr Machata 657e0b6
- Added TBB_IMPLEMENT_CPP0X macro to control injection of C++0x names
Petr Machata 657e0b6
    implemented in TBB into namespace std.
Petr Machata 657e0b6
- Added almost-C++0x-compatible std::condition_variable, plus a bunch
Petr Machata 657e0b6
    of other C++0x classes required by condition_variable.
Petr Machata 657e0b6
- With TBB_IMPLEMENT_CPP0X, tbb_thread can be also used as std::thread.
Petr Machata 657e0b6
- task.cpp was split into several translation units to structure
Petr Machata 657e0b6
    TBB scheduler sources layout. Static data layout and library
Petr Machata 657e0b6
    initialization logic were also updated.
Petr Machata 657e0b6
- TBB scheduler reworked to prevent master threads from stealing
Petr Machata 657e0b6
    work belonging to other masters.
Petr Machata 657e0b6
- Class task was extended with enqueue() method, and slightly changed
Petr Machata 657e0b6
    semantics of methods spawn() and destroy(). For exact semantics,
Petr Machata 657e0b6
    refer to TBB Reference manual.
Petr Machata 657e0b6
- task_group_context now allows for destruction by non-owner threads.
Petr Machata 657e0b6
- Added TBB_USE_EXCEPTIONS macro to control use of exceptions in TBB
Petr Machata 657e0b6
    headers. It turns off (i.e. sets to 0) automatically if specified
Petr Machata 657e0b6
    compiler options disable exception handling.
Petr Machata 657e0b6
- TBB is enabled to run on top of Microsoft's Concurrency Runtime
Petr Machata 657e0b6
    on Windows* 7 (via our worker dispatcher known as RML).
Petr Machata 657e0b6
- Removed old unused busy-waiting code in concurrent_queue.
Petr Machata 657e0b6
- Described the advanced build & test options in src/index.html.
Petr Machata 657e0b6
- Warning level for GCC raised with -Wextra and a few other options.
Petr Machata 657e0b6
- Multiple fixes and improvements in code, tests, examples, and docs.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Xbox support by Roman Lut (Deep Shadows), though further changes are
Petr Machata 657e0b6
    required to make it working; e.g. post-2.1 entry points are missing.
Petr Machata 657e0b6
- "Eventcount" by Dmitry Vyukov evolved into concurrent_monitor,
Petr Machata 657e0b6
    an internal class used in the implementation of concurrent_queue.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.2 Update 3 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 Update 2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- PDF documentation updated.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- concurrent_hash_map compatibility issue exposed on Linux in case
Petr Machata 657e0b6
    two versions of the container were used by different modules.
Petr Machata 657e0b6
- enforce 16 byte stack alignment for consistence with GCC; required
Petr Machata 657e0b6
    to work correctly with 128-bit variables processed by SSE.
Petr Machata 657e0b6
- construct() methods of allocator classes now use global operator new.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.2 Update 2 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 Update 1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- parallel_invoke and parallel_for_each now take function objects
Petr Machata 657e0b6
    by const reference, not by value.
Petr Machata 657e0b6
- Building TBB with /MT is supported, to avoid dependency on particular
Petr Machata 657e0b6
    versions of Visual C++* runtime DLLs. TBB DLLs built with /MT
Petr Machata 657e0b6
    are located in vc_mt directory.
Petr Machata 657e0b6
- Class critical_section introduced.
Petr Machata 657e0b6
- Improvements in exception support: new exception classes introduced,
Petr Machata 657e0b6
    all exceptions are thrown via an out-of-line internal method.
Petr Machata 657e0b6
- Improvements and fixes in the TBB allocator and malloc replacement,
Petr Machata 657e0b6
    including robust memory identification, and more reliable dynamic
Petr Machata 657e0b6
    function substitution on Windows*.
Petr Machata 657e0b6
- Method swap() added to class tbb_thread.
Petr Machata 657e0b6
- Methods rehash() and bucket_count() added to concurrent_hash_map.
Petr Machata 657e0b6
- Added support for Visual Studio* 2010 Beta2. No special binaries
Petr Machata 657e0b6
    provided, but CRT-independent DLLs (vc_mt) should work.
Petr Machata 657e0b6
- Other fixes and improvements in code, tests, examples, and docs.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- The fix to build 32-bit TBB on Mac OS* X 10.6.
Petr Machata 657e0b6
- GCC-based port for SPARC Solaris by Michailo Matijkiw, with use of
Petr Machata 657e0b6
    earlier work by Raf Schietekat.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 159 - TBB build for PowerPC* running Mac OS* X.
Petr Machata 657e0b6
- 160 - IBM* Java segfault if used with TBB allocator.
Petr Machata 657e0b6
- crash in concurrent_queue<char> (1616).
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.2 Update 1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Incorporates all changes from open-source releases below.
Petr Machata 657e0b6
- Documentation was updated.
Petr Machata 657e0b6
- TBB scheduler auto-initialization now covers all possible use cases.
Petr Machata 657e0b6
- concurrent_queue: made argument types of sizeof used in paddings
Petr Machata 657e0b6
  consistent with those actually used.
Petr Machata 657e0b6
- Memory allocator was improved: supported corner case of user's malloc
Petr Machata 657e0b6
    calling scalable_malloc (non-Windows), corrected processing of
Petr Machata 657e0b6
    memory allocation requests during tbb memory allocator startup
Petr Machata 657e0b6
    (Linux).
Petr Machata 657e0b6
- Windows malloc replacement has got better support for static objects.
Petr Machata 657e0b6
- In pipeline setups that do not allow actual parallelism, execution
Petr Machata 657e0b6
    by a single thread is guaranteed, idle spinning eliminated, and
Petr Machata 657e0b6
    performance improved.
Petr Machata 657e0b6
- RML refactoring and clean-up.
Petr Machata 657e0b6
- New constructor for concurrent_hash_map allows reserving space for
Petr Machata 657e0b6
    a number of items.
Petr Machata 657e0b6
- Operator delete() added to the TBB exception classes.
Petr Machata 657e0b6
- Lambda support was improved in parallel_reduce.
Petr Machata 657e0b6
- gcc 4.3 warnings were fixed for concurrent_queue.
Petr Machata 657e0b6
- Fixed possible initialization deadlock in modules using TBB entities
Petr Machata 657e0b6
    during construction of global static objects.
Petr Machata 657e0b6
- Copy constructor in concurrent_hash_map was fixed.
Petr Machata 657e0b6
- Fixed a couple of rare crashes in the scheduler possible before
Petr Machata 657e0b6
    in very specific use cases.
Petr Machata 657e0b6
- Fixed a rare crash in the TBB allocator running out of memory.
Petr Machata 657e0b6
- New tests were implemented, including test_lambda.cpp that checks
Petr Machata 657e0b6
    support for lambda expressions.
Petr Machata 657e0b6
- A few other small changes in code, tests, and documentation.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20090809 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fixed known exception safety issues in concurrent_vector.
Petr Machata 657e0b6
- Better concurrency of simultaneous grow requests in concurrent_vector.
Petr Machata 657e0b6
- TBB allocator further improves performance of large object allocation.
Petr Machata 657e0b6
- Problem with source of text relocations was fixed on Linux
Petr Machata 657e0b6
- Fixed bugs related to malloc replacement under Windows
Petr Machata 657e0b6
- A few other small changes in code and documentation.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.2 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.1 U4 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Incorporates all changes from open-source releases below.
Petr Machata 657e0b6
- Architecture folders renamed from em64t to intel64 and from itanium
Petr Machata 657e0b6
    to ia64.
Petr Machata 657e0b6
- Major Interface version changed from 3 to 4. Deprecated interfaces
Petr Machata 657e0b6
    might be removed in future releases.
Petr Machata 657e0b6
- Parallel algorithms that use partitioners have switched to use
Petr Machata 657e0b6
    the auto_partitioner by default.
Petr Machata 657e0b6
- Improved memory allocator performance for allocations bigger than 8K.
Petr Machata 657e0b6
- Added new thread-bound filters functionality for pipeline.
Petr Machata 657e0b6
- New implementation of concurrent_hash_map that improves performance
Petr Machata 657e0b6
    significantly.
Petr Machata 657e0b6
- A few other small changes in code and documentation.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20090511 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Basic support for MinGW32 development kit.
Petr Machata 657e0b6
- Added tbb::zero_allocator class that initializes memory with zeros.
Petr Machata 657e0b6
    It can be used as an adaptor to any STL-compatible allocator class.
Petr Machata 657e0b6
- Added tbb::parallel_for_each template function as alias to parallel_do.
Petr Machata 657e0b6
- Added more overloads for tbb::parallel_for.
Petr Machata 657e0b6
- Added support for exact exception propagation (can only be used with
Petr Machata 657e0b6
    compilers that support C++0x std::exception_ptr).
Petr Machata 657e0b6
- tbb::atomic template class can be used with enumerations.
Petr Machata 657e0b6
- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended
Petr Machata 657e0b6
    with explicit lock/unlock methods.
Petr Machata 657e0b6
- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector
Petr Machata 657e0b6
    to provide space allocation guarantees. More methods added for
Petr Machata 657e0b6
    compatibility with std::vector, including some from C++0x.
Petr Machata 657e0b6
- Preview of a lambda-friendly interface for low-level use of tasks.
Petr Machata 657e0b6
- scalable_msize function added to the scalable allocator (Windows only).
Petr Machata 657e0b6
- Rationalized internal auxiliary functions for spin-waiting and backoff.
Petr Machata 657e0b6
- Several tests undergo decent refactoring.
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes affecting backward compatibility:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Improvements in concurrent_queue, including limited API changes.
Petr Machata 657e0b6
    The previous version is deprecated; its functionality is accessible
Petr Machata 657e0b6
    via methods of the new tbb::concurrent_bounded_queue class.
Petr Machata 657e0b6
- grow* and push_back methods of concurrent_vector changed to return
Petr Machata 657e0b6
    iterators; old semantics is deprecated.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.1 Update 4 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.1 U3 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added tests for aligned memory allocations and malloc replacement.
Petr Machata 657e0b6
- Several improvements for better bundling with Intel(R) C++ Compiler.
Petr Machata 657e0b6
- A few other small changes in code and documentaion.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 150 - request to build TBB examples with debug info in release mode.
Petr Machata 657e0b6
- backward compatibility issue with concurrent_queue on Windows.
Petr Machata 657e0b6
- dependency on VS 2005 SP1 runtime libraries removed.
Petr Machata 657e0b6
- compilation of GUI examples under Xcode* 3.1 (1577).
Petr Machata 657e0b6
- On Windows, TBB allocator classes can be instantiated with const types
Petr Machata 657e0b6
    for compatibility with MS implementation of STL containers (1566).
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20090313 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. 20081109 open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Includes all changes introduced in TBB 2.1 Update 2 & Update 3
Petr Machata 657e0b6
    commercial-aligned releases (see below for details).
Petr Machata 657e0b6
- Added tbb::parallel_invoke template function. It runs up to 10
Petr Machata 657e0b6
    user-defined functions in parallel and waits for them to complete.
Petr Machata 657e0b6
- Added a special library providing ability to replace the standard
Petr Machata 657e0b6
    memory allocation routines in Microsoft* C/C++ RTL (malloc/free,
Petr Machata 657e0b6
    global new/delete, etc.) with the TBB memory allocator.
Petr Machata 657e0b6
    Usage details are described in include/tbb/tbbmalloc_proxy.h file.
Petr Machata 657e0b6
- Task scheduler switched to use new implementation of its core
Petr Machata 657e0b6
    functionality (deque based task pool, new structure of arena slots).
Petr Machata 657e0b6
- Preview of Microsoft* Visual Studio* 2005 project files for
Petr Machata 657e0b6
    building the library is available in build/vsproject folder.
Petr Machata 657e0b6
- Added tests for aligned memory allocations and malloc replacement.
Petr Machata 657e0b6
- Added parallel_for/game_of_life.net example (for Windows only)
Petr Machata 657e0b6
    showing TBB usage in a .NET application.
Petr Machata 657e0b6
- A number of other fixes and improvements to code, tests, makefiles,
Petr Machata 657e0b6
    examples and documents.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- The same list as in TBB 2.1 Update 4 right above.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.1 Update 3 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.1 U2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added support for aligned allocations to the TBB memory allocator.
Petr Machata 657e0b6
- Added a special library to use with LD_PRELOAD on Linux* in order to
Petr Machata 657e0b6
    replace the standard memory allocation routines in C/C++ with the
Petr Machata 657e0b6
    TBB memory allocator.
Petr Machata 657e0b6
- Added null_mutex and null_rw_mutex: no-op classes interface-compliant
Petr Machata 657e0b6
    to other TBB mutexes.
Petr Machata 657e0b6
- Improved performance of parallel_sort, to close most of the serial gap
Petr Machata 657e0b6
    with std::sort, and beat it on 2 and more cores.
Petr Machata 657e0b6
- A few other small changes.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- the problem where parallel_for hanged after exception throw
Petr Machata 657e0b6
    if affinity_partitioner was used (1556).
Petr Machata 657e0b6
- get rid of VS warnings about mbstowcs deprecation (1560),
Petr Machata 657e0b6
    as well as some other warnings.
Petr Machata 657e0b6
- operator== for concurrent_vector::iterator fixed to work correctly
Petr Machata 657e0b6
    with different vector instances.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.1 Update 2 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.1 U1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Incorporates all open-source-release changes down to TBB 2.1 U1,
Petr Machata 657e0b6
    except for:
Petr Machata 657e0b6
    - 20081019 addition of enumerable_thread_specific;
Petr Machata 657e0b6
- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64;
Petr Machata 657e0b6
    warnings found on this level were cleaned or suppressed.
Petr Machata 657e0b6
- Added TBB_runtime_interface_version API function.
Petr Machata 657e0b6
- Added new example: pipeline/square.
Petr Machata 657e0b6
- Added exception handling and cancellation support
Petr Machata 657e0b6
    for parallel_do and pipeline.
Petr Machata 657e0b6
- Added copy constructor and [begin,end) constructor to concurrent_queue.
Petr Machata 657e0b6
- Added some support for beta version of Intel(R) Parallel Amplifier.
Petr Machata 657e0b6
- Added scripts to set environment for cross-compilation of 32-bit
Petr Machata 657e0b6
    applications on 64-bit Linux with Intel(R) C++ Compiler.
Petr Machata 657e0b6
- Fixed semantics of concurrent_vector::clear() to not deallocate
Petr Machata 657e0b6
    internal arrays. Fixed compact() to perform such deallocation later.
Petr Machata 657e0b6
- Fixed the issue with atomic<T*> when T is incomplete type.
Petr Machata 657e0b6
- Improved support for PowerPC* Macintosh*, including the fix
Petr Machata 657e0b6
    for a bug in masked compare-and-swap reported by a customer.
Petr Machata 657e0b6
- As usual, a number of other improvements everywhere.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20081109 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added new serial out of order filter for tbb::pipeline.
Petr Machata 657e0b6
- Fixed the issue with atomic<T*>::operator= reported at the forum.
Petr Machata 657e0b6
- Fixed the issue with using tbb::task::self() in task destructor
Petr Machata 657e0b6
    reported at the forum.
Petr Machata 657e0b6
- A number of other improvements to code, tests, makefiles, examples
Petr Machata 657e0b6
    and documents.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6
- Changes in the memory allocator were partially integrated.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20081019 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Introduced enumerable_thread_specific<T>.  This new class provides a
Petr Machata 657e0b6
    wrapper around native thread local storage as well as iterators and
Petr Machata 657e0b6
    ranges for accessing the thread local copies (1533).
Petr Machata 657e0b6
- Improved support for Intel(R) Threading Analysis Tools
Petr Machata 657e0b6
    on Intel(R) 64 architecture.
Petr Machata 657e0b6
- Dependency from Microsoft* CRT was integrated to the libraries using
Petr Machata 657e0b6
    manifests, to avoid issues if called from code that uses different
Petr Machata 657e0b6
    version of Visual C++* runtime than the library.
Petr Machata 657e0b6
- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
Petr Machata 657e0b6
    TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
Petr Machata 657e0b6
- A number of other improvements to code, tests, makefiles, examples
Petr Machata 657e0b6
    and documents.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- linker optimization: /incremental:no .
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080925 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1.
Petr Machata 657e0b6
- Improved support for lambda functions.
Petr Machata 657e0b6
- Fixed more concurrent_queue issues reported at the forum.
Petr Machata 657e0b6
- A number of other improvements to code, tests, makefiles, examples
Petr Machata 657e0b6
    and documents.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.1 Update 1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fixed small memory leak in the memory allocator.
Petr Machata 657e0b6
- Incorporates all open-source-release changes since TBB 2.1, except for:
Petr Machata 657e0b6
    - 20080825 changes for parallel_do;
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080825 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Added exception handling and cancellation support for parallel_do.
Petr Machata 657e0b6
- Added default HashCompare template argument for concurrent_hash_map.
Petr Machata 657e0b6
- Fixed concurrent_queue.clear() issues due to incorrect assumption
Petr Machata 657e0b6
    about clear() being private method.
Petr Machata 657e0b6
- Added the possibility to use TBB in applications that change
Petr Machata 657e0b6
    default calling conventions (Windows* only).
Petr Machata 657e0b6
- Many improvements to code, tests, examples, makefiles and documents.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 120, 130 - memset declaration missed in concurrent_hash_map.h
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080724 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Inline assembly for atomic operations improved for gcc 4.3
Petr Machata 657e0b6
- A few more improvements to the code.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080709 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- operator=() was added to the tbb_thread class according to
Petr Machata 657e0b6
    the current working draft for std::thread.
Petr Machata 657e0b6
- Recognizing SPARC* in makefiles for Linux* and Sun Solaris*.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 127 - concurrent_hash_map::range fixed to split correctly.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- fix_set_midpoint.diff by jyasskin
Petr Machata 657e0b6
- SPARC* support in makefiles by Raf Schietekat
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080622 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fixed a hang that rarely happened on Linux
Petr Machata 657e0b6
    during deinitialization of the TBB scheduler.
Petr Machata 657e0b6
- Improved support for Intel(R) Thread Checker.
Petr Machata 657e0b6
- A few more improvements to the code.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.0 U3 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- All open-source-release changes down to, and including, TBB 2.0 below,
Petr Machata 657e0b6
    were incorporated into this release.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080605 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Explicit control of exported symbols by version scripts added on Linux.
Petr Machata 657e0b6
- Interfaces polished for exception handling & algorithm cancellation.
Petr Machata 657e0b6
- Cache behavior improvements in the scalable allocator.
Petr Machata 657e0b6
- Improvements in text_filter, polygon_overlay, and other examples.
Petr Machata 657e0b6
- A lot of other stability improvements in code, tests, and makefiles.
Petr Machata 657e0b6
- First release where binary packages include headers/docs/examples, so
Petr Machata 657e0b6
    binary packages are now self-sufficient for using TBB.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- atomics patch (partially).
Petr Machata 657e0b6
- tick_count warning patch.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 118 - fix for boost compatibility.
Petr Machata 657e0b6
- 123 - fix for tbb_machine.h.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080512 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fixed a problem with backward binary compatibility
Petr Machata 657e0b6
    of debug Linux builds.
Petr Machata 657e0b6
- Sun* Studio* support added.
Petr Machata 657e0b6
- soname support added on Linux via linker script. To restore backward
Petr Machata 657e0b6
    binary compatibility, *.so -> *.so.2 softlinks should be created.
Petr Machata 657e0b6
- concurrent_hash_map improvements - added few new forms of insert()
Petr Machata 657e0b6
    method and fixed precondition and guarantees of erase() methods.
Petr Machata 657e0b6
    Added runtime warning reporting about bad hash function used for
Petr Machata 657e0b6
    the container. Various improvements for performance and concurrency.
Petr Machata 657e0b6
- Cancellation mechanism reworked so that it does not hurt scalability.
Petr Machata 657e0b6
- Algorithm parallel_do reworked. Requirement for Body::argument_type
Petr Machata 657e0b6
    definition removed, and work item argument type can be arbitrarily
Petr Machata 657e0b6
    cv-qualified.
Petr Machata 657e0b6
- polygon_overlay example added.
Petr Machata 657e0b6
- A few more improvements to code, tests, examples and Makefiles.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Soname support patch for Bugzilla #112.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 112 - fix for soname support.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.0 U3 commercial-aligned release (package 017, April 20, 2008)
Petr Machata 657e0b6

Petr Machata 657e0b6
Corresponds to commercial 019 (for Linux*, 020; for Mac OS* X, 018)
Petr Machata 657e0b6
packages.
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.0 U2 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Does not contain open-source-release changes below; this release is
Petr Machata 657e0b6
    only a minor update of TBB 2.0 U2.
Petr Machata 657e0b6
- Removed spin-waiting in pipeline and concurrent_queue.
Petr Machata 657e0b6
- A few more small bug fixes from open-source releases below.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080408 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- count_strings example reworked: new word generator implemented, hash
Petr Machata 657e0b6
    function replaced, and tbb_allocator is used with std::string class.
Petr Machata 657e0b6
- Static methods of spin_rw_mutex were replaced by normal member
Petr Machata 657e0b6
    functions, and the class name was versioned.
Petr Machata 657e0b6
- tacheon example was renamed to tachyon.
Petr Machata 657e0b6
- Improved support for Intel(R) Thread Checker.
Petr Machata 657e0b6
- A few more minor improvements.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Two sets of Sun patches for IA Solaris support.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080402 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Exception handling and cancellation support for tasks and algorithms
Petr Machata 657e0b6
    fully enabled.
Petr Machata 657e0b6
- Exception safety guaranties defined and fixed for all concurrent
Petr Machata 657e0b6
    containers.
Petr Machata 657e0b6
- User-defined memory allocator support added to all concurrent
Petr Machata 657e0b6
    containers.
Petr Machata 657e0b6
- Performance improvement of concurrent_hash_map, spin_rw_mutex.
Petr Machata 657e0b6
- Critical fix for a rare race condition during scheduler
Petr Machata 657e0b6
    initialization/de-initialization.
Petr Machata 657e0b6
- New methods added for concurrent containers to be closer to STL,
Petr Machata 657e0b6
    as well as automatic filters removal from pipeline
Petr Machata 657e0b6
    and __TBB_AtomicAND function.
Petr Machata 657e0b6
- The volatile keyword dropped from where it is not really needed.
Petr Machata 657e0b6
- A few more minor improvements.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080319 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Support for gcc version 4.3 was added.
Petr Machata 657e0b6
- tbb_thread class, near compatible with std::thread expected in C++0x,
Petr Machata 657e0b6
    was added.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 116 - fix for compilation issues with gcc version 4.2.1.
Petr Machata 657e0b6
- 120 - fix for compilation issues with gcc version 4.3.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080311 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- An enumerator added for pipeline filter types (serial vs. parallel).
Petr Machata 657e0b6
- New task_scheduler_observer class introduced, to observe when
Petr Machata 657e0b6
    threads start and finish interacting with the TBB task scheduler.
Petr Machata 657e0b6
- task_scheduler_init reverted to not use internal versioned class;
Petr Machata 657e0b6
    binary compatibility guaranteed with stable releases only.
Petr Machata 657e0b6
- Various improvements to code, tests, examples and Makefiles.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080304 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Task-to-thread affinity support, previously kept under a macro,
Petr Machata 657e0b6
    now fully legalized.
Petr Machata 657e0b6
- Work-in-progress on cache_aligned_allocator improvements.
Petr Machata 657e0b6
- Pipeline really supports parallel input stage; it's no more serialized.
Petr Machata 657e0b6
- Various improvements to code, tests, examples and Makefiles.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 119 - fix for scalable_malloc sometimes failing to return a big block.
Petr Machata 657e0b6
- TR575 - fixed a deadlock occurring on Windows in startup/shutdown
Petr Machata 657e0b6
    under some conditions.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080226 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Introduced tbb_allocator to select between standard allocator and
Petr Machata 657e0b6
    tbb::scalable_allocator when available.
Petr Machata 657e0b6
- Removed spin-waiting in pipeline and concurrent_queue.
Petr Machata 657e0b6
- Improved performance of concurrent_hash_map by using tbb_allocator.
Petr Machata 657e0b6
- Improved support for Intel(R) Thread Checker.
Petr Machata 657e0b6
- Various improvements to code, tests, examples and Makefiles.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.0 U2 commercial-aligned release (package 017, February 14, 2008)
Petr Machata 657e0b6

Petr Machata 657e0b6
Corresponds to commercial 017 (for Linux*, 018; for Mac OS* X, 016)
Petr Machata 657e0b6
packages.
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.0 U1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Does not contain open-source-release changes below; this release is
Petr Machata 657e0b6
    only a minor update of TBB 2.0 U1.
Petr Machata 657e0b6
- Add support for Microsoft* Visual Studio* 2008, including binary
Petr Machata 657e0b6
    libraries and VS2008 projects for examples.
Petr Machata 657e0b6
- Use SwitchToThread() not Sleep() to yield threads on Windows*.
Petr Machata 657e0b6
- Enhancements to Doxygen-readable comments in source code.
Petr Machata 657e0b6
- A few more small bug fixes from open-source releases below.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- TR569 - Memory leak in concurrent_queue.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080207 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Improvements and minor fixes in VS2008 projects for examples.
Petr Machata 657e0b6
- Improvements in code for gating worker threads that wait for work,
Petr Machata 657e0b6
  previously consolidated under #if IMPROVED_GATING, now legalized.
Petr Machata 657e0b6
- Cosmetic changes in code, examples, tests.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 113 - Iterators and ranges should be convertible to their const
Petr Machata 657e0b6
    counterparts.
Petr Machata 657e0b6
- TR569 - Memory leak in concurrent_queue.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080122 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Updated examples/parallel_for/seismic to improve the visuals and to
Petr Machata 657e0b6
    use the affinity_partitioner (20071127 and forward) for better
Petr Machata 657e0b6
    performance.
Petr Machata 657e0b6
- Minor improvements to unittests and performance tests.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20080115 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Cleanup, simplifications and enhancements to the Makefiles for
Petr Machata 657e0b6
    building the libraries (see build/index.html for high-level
Petr Machata 657e0b6
    changes) and the examples.
Petr Machata 657e0b6
- Use SwitchToThread() not Sleep() to yield threads on Windows*.
Petr Machata 657e0b6
- Engineering work-in-progress on exception safety/support.
Petr Machata 657e0b6
- Engineering work-in-progress on affinity_partitioner for
Petr Machata 657e0b6
    parallel_reduce.
Petr Machata 657e0b6
- Engineering work-in-progress on improved gating for worker threads
Petr Machata 657e0b6
    (idle workers now block in the OS instead of spinning).
Petr Machata 657e0b6
- Enhancements to Doxygen-readable comments in source code.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 102 - Support for parallel build with gmake -j
Petr Machata 657e0b6
- 114 - /Wp64 build warning on Windows*.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20071218 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Full support for Microsoft* Visual Studio* 2008 in open-source.
Petr Machata 657e0b6
    Binaries for vc9/ will be available in future stable releases.
Petr Machata 657e0b6
- New recursive_mutex class.
Petr Machata 657e0b6
- Full support for 32-bit PowerMac including export files for builds.
Petr Machata 657e0b6
- Improvements to parallel_do.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20071206 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Support for Microsoft* Visual Studio* 2008 in building libraries
Petr Machata 657e0b6
    from source as well as in vc9/ projects for examples.
Petr Machata 657e0b6
- Small fixes to the affinity_partitioner first introduced in 20071127.
Petr Machata 657e0b6
- Small fixes to the thread-stack size hook first introduced in 20071127.
Petr Machata 657e0b6
- Engineering work in progress on concurrent_vector.
Petr Machata 657e0b6
- Engineering work in progress on exception behavior.
Petr Machata 657e0b6
- Unittest improvements.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20071127 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Task-to-thread affinity support (affinity partitioner) first appears.
Petr Machata 657e0b6
- More work on concurrent_vector.
Petr Machata 657e0b6
- New parallel_do algorithm (function-style version of parallel while)
Petr Machata 657e0b6
    and parallel_do/parallel_preorder example.
Petr Machata 657e0b6
- New task_scheduler_init() hooks for getting default_num_threads() and
Petr Machata 657e0b6
    for setting thread stack size.
Petr Machata 657e0b6
- Support for weak memory consistency models in the code base.
Petr Machata 657e0b6
- Futex usage in the task scheduler (Linux).
Petr Machata 657e0b6
- Started adding 32-bit PowerMac support.
Petr Machata 657e0b6
- Intel(R) 9.1 compilers are now the base supported Intel(R) compiler
Petr Machata 657e0b6
    version.
Petr Machata 657e0b6
- TBB libraries added to link line automatically on Microsoft Windows*
Petr Machata 657e0b6
    systems via #pragma comment linker directives.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- FreeBSD platform support patches.
Petr Machata 657e0b6
- AIX weak memory model patch.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 108 - Removed broken affinity.h reference.
Petr Machata 657e0b6
- 101 - Does not build on Debian Lenny (replaced arch with uname -m).
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20071030 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. previous open-source release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- More work on concurrent_vector.
Petr Machata 657e0b6
- Better support for building with -Wall -Werror (or not) as desired.
Petr Machata 657e0b6
- A few fixes to eliminate extraneous warnings.
Petr Machata 657e0b6
- Begin introduction of versioning hooks so that the internal/API
Petr Machata 657e0b6
    version is tracked via TBB_INTERFACE_VERSION.  The newest binary
Petr Machata 657e0b6
    libraries should always work with previously-compiled code when-
Petr Machata 657e0b6
    ever possible.
Petr Machata 657e0b6
- Engineering work in progress on using futex inside the mutexes (Linux).
Petr Machata 657e0b6
- Engineering work in progress on exception behavior.
Petr Machata 657e0b6
- Engineering work in progress on a new parallel_do algorithm.
Petr Machata 657e0b6
- Unittest improvements.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20070927 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.0 U1 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Minor update to TBB 2.0 U1 below.
Petr Machata 657e0b6
- Begin introduction of new concurrent_vector interfaces not released
Petr Machata 657e0b6
    with TBB 2.0 U1.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.0 U1 commercial-aligned release (package 014, October 1, 2007)
Petr Machata 657e0b6

Petr Machata 657e0b6
Corresponds to commercial 014 (for Linux*, 016) packages.
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 2.0 commercial-aligned release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- All open-source-release changes down to, and including, TBB 2.0 below,
Petr Machata 657e0b6
    were incorporated into this release.
Petr Machata 657e0b6
- Made a number of changes to the officially supported OS list:
Petr Machata 657e0b6
    Added Linux* OSs:
Petr Machata 657e0b6
	Asianux* 3, Debian* 4.0, Fedora Core* 6, Fedora* 7,
Petr Machata 657e0b6
	Turbo Linux* 11, Ubuntu* 7.04;
Petr Machata 657e0b6
    Dropped Linux* OSs:
Petr Machata 657e0b6
	Asianux* 2, Fedora Core* 4, Haansoft* Linux 2006 Server,
Petr Machata 657e0b6
	Mandriva/Mandrake* 10.1, Miracle Linux* 4.0,
Petr Machata 657e0b6
	Red Flag* DC Server 5.0;
Petr Machata 657e0b6
    Only Mac OS* X 10.4.9 (and forward) and Xcode* tool suite 2.4.1 (and
Petr Machata 657e0b6
	forward) are now supported.
Petr Machata 657e0b6
- Commercial installers on Linux* fixed to recommend the correct
Petr Machata 657e0b6
    binaries to use in more cases, with less unnecessary warnings.
Petr Machata 657e0b6
- Changes to eliminate spurious build warnings.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Two small header guard macro patches; it also fixed bug #94.
Petr Machata 657e0b6
- New blocked_range3d class.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 93 - Removed misleading comments in task.h.
Petr Machata 657e0b6
- 94 - See above.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20070815 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Changes to eliminate spurious build warnings.
Petr Machata 657e0b6
- Engineering work in progress on concurrent_vector allocator behavior.
Petr Machata 657e0b6
- Added hooks to use the Intel(R) compiler code coverage tools.
Petr Machata 657e0b6

Petr Machata 657e0b6
Open-source contributions integrated:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Mac OS* X build warning patch.
Petr Machata 657e0b6

Petr Machata 657e0b6
Bugs fixed:
Petr Machata 657e0b6

Petr Machata 657e0b6
- 88 - Fixed TBB compilation errors if both VS2005 and Windows SDK are
Petr Machata 657e0b6
    installed.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
20070719 open-source release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Minor update to TBB 2.0 commercial-aligned release below.
Petr Machata 657e0b6
- Changes to eliminate spurious build warnings.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 2.0 commercial-aligned release (package 010, July 19, 2007)
Petr Machata 657e0b6

Petr Machata 657e0b6
Corresponds to commercial 010 (for Linux*, 012) packages.
Petr Machata 657e0b6

Petr Machata 657e0b6
- TBB open-source debut release.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 1.1 commercial release (April 10, 2007)
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 1.0 commercial release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- auto_partitioner which offered an automatic alternative to specifying
Petr Machata 657e0b6
    a grain size parameter to estimate the best granularity for tasks.
Petr Machata 657e0b6
- The release was added to the Intel(R) C++ Compiler 10.0 Pro.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 1.0 Update 2 commercial release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 1.0 Update 1 commercial release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Mac OS* X 64-bit support added.
Petr Machata 657e0b6
- Source packages for commercial releases introduced.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 1.0 Update 1 commercial-aligned release
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 1.0 commercial release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- Fix for critical package issue on Mac OS* X.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 1.0 commercial release (August 29, 2006)
Petr Machata 657e0b6

Petr Machata 657e0b6
Changes (w.r.t. TBB 1.0 beta commercial release):
Petr Machata 657e0b6

Petr Machata 657e0b6
- New namespace (and compatibility headers for old namespace).
Petr Machata 657e0b6
    Namespaces are tbb and tbb::internal and all classes are in the
Petr Machata 657e0b6
    underscore_style not the WindowsStyle.
Petr Machata 657e0b6
- New class: scalable_allocator (and cache_aligned_allocator using that
Petr Machata 657e0b6
    if it exists).
Petr Machata 657e0b6
- Added parallel_for/tacheon example.
Petr Machata 657e0b6
- Removed C-style casts from headers for better C++ compliance.
Petr Machata 657e0b6
- Bug fixes.
Petr Machata 657e0b6
- Documentation improvements.
Petr Machata 657e0b6
- Improved performance of the concurrent_hash_map class.
Petr Machata 657e0b6
- Upgraded parallel_sort() to support STL-style random-access iterators
Petr Machata 657e0b6
    instead of just pointers.
Petr Machata 657e0b6
- The Windows vs7_1 directories renamed to vs7.1 in examples.
Petr Machata 657e0b6
- New class: spin version of reader-writer lock.
Petr Machata 657e0b6
- Added push_back() interface to concurrent_vector().
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
TBB 1.0 beta commercial release
Petr Machata 657e0b6

Petr Machata 657e0b6
Initial release.
Petr Machata 657e0b6

Petr Machata 657e0b6
Features / APIs:
Petr Machata 657e0b6

Petr Machata 657e0b6
- Concurrent containers: ConcurrentHashTable, ConcurrentVector,
Petr Machata 657e0b6
    ConcurrentQueue.
Petr Machata 657e0b6
- Parallel algorithms: ParallelFor, ParallelReduce, ParallelScan,
Petr Machata 657e0b6
    ParallelWhile, Pipeline, ParallelSort.
Petr Machata 657e0b6
- Support: AlignedSpace, BlockedRange (i.e., 1D), BlockedRange2D
Petr Machata 657e0b6
- Task scheduler with multi-master support.
Petr Machata 657e0b6
- Atomics: read, write, fetch-and-store, fetch-and-add, compare-and-swap.
Petr Machata 657e0b6
- Locks: spin, reader-writer, queuing, OS-wrapper.
Petr Machata 657e0b6
- Memory allocation: STL-style memory allocator that avoids false
Petr Machata 657e0b6
    sharing.
Petr Machata 657e0b6
- Timers.
Petr Machata 657e0b6

Petr Machata 657e0b6
Tools Support:
Petr Machata 657e0b6
- Intel(R) Thread Checker 3.0.
Petr Machata 657e0b6
- Intel(R) Thread Profiler 3.0.
Petr Machata 657e0b6

Petr Machata 657e0b6
Documentation:
Petr Machata 657e0b6
- First Use Documents: README.txt, INSTALL.txt, Release_Notes.txt,
Petr Machata 657e0b6
    Doc_Index.html, Getting_Started.pdf, Tutorial.pdf, Reference.pdf.
Petr Machata 657e0b6
- Class hierarchy HTML pages (Doxygen).
Petr Machata 657e0b6
- Tree of index.html pages for navigating the installed package, esp.
Petr Machata 657e0b6
    for the examples.
Petr Machata 657e0b6

Petr Machata 657e0b6
Examples:
Petr Machata 657e0b6
- One for each of these TBB features: ConcurrentHashTable, ParallelFor,
Petr Machata 657e0b6
    ParallelReduce, ParallelWhile, Pipeline, Task.
Petr Machata 657e0b6
- Live copies of examples from Getting_Started.pdf.
Petr Machata 657e0b6
- TestAll example that exercises every class and header in the package
Petr Machata 657e0b6
    (i.e., a "liveness test").
Petr Machata 657e0b6
- Compilers: see Release_Notes.txt.
Petr Machata 657e0b6
- APIs: OpenMP, WinThreads, Pthreads.
Petr Machata 657e0b6

Petr Machata 657e0b6
Packaging:
Petr Machata 657e0b6
- Package for Windows installs IA-32 and EM64T bits.
Petr Machata 657e0b6
- Package for Linux installs IA-32, EM64T and IPF bits.
Petr Machata 657e0b6
- Package for Mac OS* X installs IA-32 bits.
Petr Machata 657e0b6
- All packages support Intel(R) software setup assistant (ISSA) and
Petr Machata 657e0b6
    install-time FLEXlm license checking.
Petr Machata 657e0b6
- ISSA support allows license file to be specified directly in case of
Petr Machata 657e0b6
    no Internet connection or problems with IRC or serial #s.
Petr Machata 657e0b6
- Linux installer allows root or non-root, RPM or non-RPM installs.
Petr Machata 657e0b6
- FLEXlm license servers (for those who need floating/counted licenses)
Petr Machata 657e0b6
    are provided separately on Intel(R) Premier.
Petr Machata 657e0b6

Petr Machata 657e0b6
------------------------------------------------------------------------
Petr Machata 657e0b6
Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its
Petr Machata 657e0b6
subsidiaries in the United States and other countries.
Petr Machata 657e0b6

Petr Machata 657e0b6
* Other names and brands may be claimed as the property of others.