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

2023.0.0

12.18 / 12180

April 2026

Release Notes

Yes

Layout changes

2022.3.0

12.17 / 12170

Oct 2025

Release Notes

Yes

New entry points

2022.2.0

12.16 / 12160

Jun 2025

Release Notes

No

No

2022.1.0

12.15 / 12150

Mar 2025

Release Notes

Yes

New entry points

2022.0.0

12.14 / 12140

Oct 2024

Release Notes

Yes

New entry points and layout changes

2021.13.0

12.13 / 12130

Jun 2024

Release Notes

Yes

No

2021.12.0

12.12 / 12120

Apr 2024

Release Notes

No

No

2021.11.0

12.11 / 12110

Nov 2023

Release Notes

No

No

2021.10.0

12.10 / 12100

Jul 2023

Release Notes

Yes

No

2021.9.0

12.9 / 12090

Apr 2023

Release Notes

Yes

No

2021.8.0

12.8 / 12080

Feb 2023

Release Notes

Yes

No

2021.7.0

12.7 / 12070

Oct 2022

Release Notes

No

No

2021.6.0

12.6 / 12060

Sep 2022

Release Notes

Yes

No

2021.5.0

12.5 / 12050

Dec 2021

Release Notes

Yes

No

2021.4.0

12.4 / 12040

Oct 2021

Release Notes

Yes

New entry points

2021.3.0

12.3 / 12030

Jun 2021

Release Notes

Yes

New entry points

2021.2.0

12.2 / 12020

Apr 2021

Release Notes

Yes

New entry points

2021.1.1

12.1 / 12010

Dec 2020

Release Notes

Initial oneTBB API

Initial oneTBB ABI

Release Details#

2023.0.0#

API Changes:

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:

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