diff --git a/VERSIONING.md b/VERSIONING.md index a3856a3cb6..8b461a04a0 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -107,3 +107,26 @@ Rules for the `d` namespace include: - If the layout of public class X is changed incompatibly, the “d” namespace number should be incremented. - If there are existing entry points using the current version of class X, the old version of X should be kept in the previous “d” namespace. + +## API and ABI changes by release + +| Library Version | Binary Version | Date | Release Notes | API Changes | ABI Changes | Notes | +|---------|--------|------|---------------|-------------|-------------|-------| +| 2022.3.0 | 12.17 | Oct 2025 | *Release Notes TBD* | [task_arena enqueue and wait_for specific task_group](https://github.com/uxlfoundation/oneTBB/tree/master/rfcs/proposed/task_arena_waiting), [custom assertion handler support](https://github.com/uxlfoundation/oneTBB/tree/master/rfcs/supported/assertion_handler), [preview of dynamic task graph](https://github.com/uxlfoundation/oneTBB/tree/master/rfcs/proposed/task_group_dynamic_dependencies) | set/get_assertion_handler, current_task_ptr | 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 | 12.16 | Jun 2025 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-1) | No API changes | No ABI changes | - | +| 2022.1.0 | 12.15 | Mar 2025 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-2) | [Added explicit deduction guides for blocked_nd_range](https://github.com/uxlfoundation/oneTBB/tree/master/rfcs/experimental/blocked_nd_range_ctad), [preview of parallel phase](https://github.com/uxlfoundation/oneTBB/tree/master/rfcs/experimental/parallel_phase_for_task_arena) | enter/exit_parallel_phase | enter/exit_parallel_phase is only used by preview of parallel phase. *WARNING: there was temporary, inadvertant change that made the [unsafe_wait](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/task_scheduler/scheduling_controls/task_scheduler_handle_cls) exception local for this release only.* | +| 2022.0.0 | 12.14 | Oct 2024 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-3) | [Preview of flow graph try_put_and_wait](https://github.com/uxlfoundation/oneTBB/pull/1513) | get_thread_reference_vertex, execution_slot | [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)](https://github.com/uxlfoundation/oneTBB/discussions/1371). get_thread_reference_vertex and execution_slot added for scalability improvements. | +| 2021.13.0 | 12.13 | Jun 2024 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-4) | [Better rvalues support for parallel_reduce and parallel_deterministic_reduce functional API](https://github.com/uxlfoundation/oneTBB/pull/1307) | No ABI changes | - | +| 2021.12.0 | 12.12 | Apr 2024 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-6) | No API changes | No ABI changes | - | +| 2021.11.0 | 12.11 | Nov 2023 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-7) | No API changes | No ABI changes | Thread Composability Manager support introduced. It can be enabled by setting “TCM_ENABLE” environmental variable to 1 | +| 2021.10.0 | 12.10 | Jul 2023 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-8) | [parallel algorithms and Flow Graph nodes allowed to accept pointers to the member functions and member objects as the user-provided callables](https://github.com/uxlfoundation/oneTBB/pull/880). [Added missed member functions, such as assignment operators and swap function, to the concurrent_queue and concurrent_bounded_queue containers](https://github.com/uxlfoundation/oneTBB/pull/1033) | No ABI changes | - | +| 2021.9.0 | 12.9 | Apr 2023 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-9) | [Hybrid core type constraints are fully supported and no longer guarded by preview macro](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/v1.2-rev-1/elements/onetbb/source/task_scheduler/task_arena/task_arena_cls#_CPPv4N11constraints9core_typeE) | No ABI changes | Hybrid CPU support is now production features, including use of symbols introduced in 2021.2.0 | +| 2021.8.0 | 12.8 | Feb 2023 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-10) | [Fixed concurrent_bounded_queue return type to match specification](https://github.com/uxlfoundation/oneTBB/issues/807) | No ABI changes | - | +| 2021.7.0 | 12.7 | Oct 2022 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-11) | No API changes | No ABI changes | - | +| 2021.6.0 | 12.6 | Sep 2022 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-12) | [Improved support and use of the latest C++ standards for parallel_sort that allows using this algorithm with user-defined and standard library-defined objects with modern semantics](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/v1.2-rev-1/elements/onetbb/source/algorithms/functions/parallel_sort_func). The following features are now fully functional: [task_arena extensions](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/v1.2-rev-1/elements/onetbb/source/task_scheduler/task_arena/task_arena_cls), [collaborative_call_once](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/algorithms/functions/collaborative_call_once_func), heterogeneous overloads for concurrent_hash_map, and [task_scheduler_handle](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/v1.2-rev-1/elements/onetbb/source/task_scheduler/scheduling_controls/task_scheduler_handle_cls). | No ABI changes | - | +| 2021.5.0 | 12.5 | Dec 2021 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-13) | Preview of task_group interface with a new run_and_wait overload to accept task_handle | No ABI changes | - | +| 2021.4.0 | 12.4 | Oct 2021 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-14) | Preview of collaborative_call_once algorithm | notify_waiters | - | +| 2021.3.0 | 12.3 | Jun 2021 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-15) | 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. | 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 | 12.2 | Apr 2021 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-16) | Three-way comparison operators for concurrent ordered containers and concurrent_vector. Preview of Hybrid core type constraints. | core_type_count, fill_core_type_indices, constraints_threads_per_core, constraints_default_concurrency | New symbols used by preview of Hybrid CPU support (entered production in 2021.9). | +| 2021.1.1 | 12.1 | Dec 2020 | [Release Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-threading-building-blocks-release-notes.html#inpage-nav-17) | [Initial modernized oneTBB API](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/v1.0-rev-3/elements/onetbb/source/nested-index#onetbb-section) | Initial oneTBB ABI | - | +