API and ABI Change Log#
This document tracks API and ABI changes across oneTBB releases. Each release may introduce new APIs, modify existing ones, or add new symbols to the binary interface. Generally, we strive to maintain backward compatibility, but some releases may include changes that require attention when upgrading. If a release adds new entry points to the binary library, this is a backwards compatible change, since applications compiled with an older set of headers will not be affected by the presence of new symbols in the library. However, if a release includes layout changes to classes defined in the headers, this can lead to compatibility issues for applications that are partially recompiled with a mix of use of new and old headers. In such cases, it is recommended to recompile the entire application with the new version of oneTBB to ensure compatibility.
Through the most recent oneTBB release, we have maintained backwards compatibility. However, there have been layout changes in the 2023.0.0 and 2022.0.0 releases, which can lead to compatibility issues for applications that are partially recompiled with different versions of the library headers. We therefore increased the major version number for those releases to highlight the potential for compatibility issues and to encourage users to recompile their entire application and any plugins when upgrading to those versions.
Summary Table#
Release Version |
Binary Version / Interface Version |
Date |
Release Notes |
API Changes |
ABI Changes |
|---|---|---|---|---|---|
12.18 / 12180 |
April 2026 |
Yes |
Layout changes |
||
12.17 / 12170 |
Oct 2025 |
Yes |
New entry points |
||
12.16 / 12160 |
Jun 2025 |
No |
No |
||
12.15 / 12150 |
Mar 2025 |
Yes |
New entry points |
||
12.14 / 12140 |
Oct 2024 |
Yes |
New entry points and layout changes |
||
12.13 / 12130 |
Jun 2024 |
Yes |
No |
||
12.12 / 12120 |
Apr 2024 |
No |
No |
||
12.11 / 12110 |
Nov 2023 |
No |
No |
||
12.10 / 12100 |
Jul 2023 |
Yes |
No |
||
12.9 / 12090 |
Apr 2023 |
Yes |
No |
||
12.8 / 12080 |
Feb 2023 |
Yes |
No |
||
12.7 / 12070 |
Oct 2022 |
No |
No |
||
12.6 / 12060 |
Sep 2022 |
Yes |
No |
||
12.5 / 12050 |
Dec 2021 |
Yes |
No |
||
12.4 / 12040 |
Oct 2021 |
Yes |
New entry points |
||
12.3 / 12030 |
Jun 2021 |
Yes |
New entry points |
||
12.2 / 12020 |
Apr 2021 |
Yes |
New entry points |
||
12.1 / 12010 |
Dec 2020 |
Initial oneTBB API |
Initial oneTBB ABI |
Release Details#
2023.0.0#
API Changes:
Function create_numa_task_arenas introduced to create a set of NUMA bound arenas
flow graph indexer_node and join_node now support 10 or more input ports
Preview Feature: wait for single task in task_group
Preview Feature: resource_limited_node and resource_limiter classes
Preview Feature: global control parameter for default block time behavior
ABI Changes:
ordered container layout changes for scalability improvements that impact concurrent_map, concurrent_multimap, concurrent_set, and concurrent_multiset
Notes:
The ABI is backwards compatible but issues can arise for partial recomplilation cases when objects with modified layouts are passed across compilation units built against headers with the older layout.
2022.3.0#
API Changes:
ABI Changes:
set/get_assertion_handler
current_task_ptr
Notes:
set/get_assertion_handler symbols are used by custom assertion handler support, current_task_ptr is used by preview of task_group dependencies
2022.2.0#
No API or ABI changes in this release.
2022.1.0#
API Changes:
ABI Changes:
enter/exit_parallel_phase
Notes:
enter/exit_parallel_phase is only used by preview of parallel phase. WARNING: there was temporary, inadvertent change that made the unsafe_wait exception local for this release only.
2022.0.0#
API Changes:
ABI Changes:
get_thread_reference_vertex
execution_slot
Notes:
The layouts of task_group and flow::graph were changed to improve scalability. The binary library is backwards compatible but issues can arise for partial recomplilation cases (see linked discussion). get_thread_reference_vertex and execution_slot added for scalability improvements.
2021.13.0#
API Changes:
ABI Changes:
No ABI changes in this release.
2021.12.0#
No API or ABI changes in this release.
2021.11.0#
No API or ABI changes in this release.
Notes:
Thread Composability Manager support introduced. It can be enabled by setting “TCM_ENABLE” environmental variable to 1
2021.10.0#
API Changes:
ABI Changes:
No ABI changes in this release.
2021.9.0#
API Changes:
ABI Changes:
No ABI changes in this release.
Notes:
Hybrid CPU support is now production features, including use of symbols introduced in 2021.2.0
2021.8.0#
API Changes:
ABI Changes:
No ABI changes in this release.
2021.7.0#
No API or ABI changes in this release.
2021.6.0#
API Changes:
The following features are now fully functional: task_arena extensions, collaborative_call_once, heterogeneous overloads for concurrent_hash_map, and task_scheduler_handle
ABI Changes:
No ABI changes in this release.
2021.5.0#
API Changes:
Preview of task_group interface with a new run_and_wait overload to accept task_handle
ABI Changes:
No ABI changes in this release.
2021.4.0#
API Changes:
Preview of collaborative_call_once algorithm
ABI Changes:
notify_waiters
2021.3.0#
API Changes:
Extended the high-level task API to simplify migration from TBB to oneTBB
Added mutex and rw_mutex that are suitable for long critical sections and resistant to high contention
Added ability to customize the concurrent_hash_map mutex type
Added heterogeneous lookup, erase, and insert operations to concurrent_hash_map
ABI Changes:
enqueue(d1::task&, d1::task_group_context&, d1::task_arena_base*)
is_writer for queuing_rw_mutex
wait_on_address
notify_by_address/address_all/address_one
2021.2.0#
API Changes:
Three-way comparison operators for concurrent ordered containers and concurrent_vector
Preview of Hybrid core type constraints
ABI Changes:
core_type_count
fill_core_type_indices
constraints_threads_per_core
constraints_default_concurrency
Notes:
New symbols used by preview of Hybrid CPU support (entered production in 2021.9).
2021.1.1#
API Changes:
ABI Changes:
Initial oneTBB ABI