Skip to content

Commit 816b4ad

Browse files
author
TSUNG-WEI HUANG
committed
updated compiler version information to support C++20 in v4
1 parent eca6dff commit 816b4ad

5 files changed

Lines changed: 34 additions & 39 deletions

File tree

‎doxygen/FAQ.dox‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ parallel decomposition strategies using task-based approaches.
1818
@subsection GeneralQuestion2 Q2: How do I use Taskflow in my projects?
1919

2020
%Taskflow is a header-only library with zero dependencies.
21-
The only thing you need is a C++17 compiler.
21+
The only thing you need is a C++20 compiler.
2222
To use %Taskflow, simply drop the folder @c taskflow/
2323
to your project and include taskflow.hpp.
2424

@@ -41,9 +41,9 @@ Each task has a method tf::Task::name(const std::string&) for user to assign a h
4141
to ease the debugging process. If a task is not assigned a name or is an internal node,
4242
its address value in the memory is used instead.
4343

44-
@subsection GeneralQuestion6 Q6: Does Taskflow have backward compatibility with C++03/98/11/14?
44+
@subsection GeneralQuestion6 Q6: Does Taskflow have backward compatibility with C++03/98/11/14/17?
4545

46-
Unfortunately, %Taskflow is heavily relying on modern C++17's features/idoms/STL
46+
Unfortunately, %Taskflow is heavily relying on modern C++20's features/idoms/STL
4747
and it is very difficult to provide a version that compiles under older C++ versions.
4848

4949
@subsection GeneralQuestion7 Q7: How does Taskflow schedule tasks?

‎doxygen/QuickStart.dox‎

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -289,22 +289,17 @@ taskflow.dump(std::cout);
289289

290290
@section SupportedCompilers Supported Compilers
291291

292-
To use %Taskflow, you only need a compiler that supports C++17:
292+
To use %Taskflow v4.0.0, you need a compiler that supports C++20:
293293

294-
@li GNU C++ Compiler at least v8.4 with -std=c++17
295-
@li Clang C++ Compiler at least v6.0 with -std=c++17
296-
@li Microsoft Visual Studio at least v19.14 with /std:c++17
297-
@li Apple Clang Xcode Version at least v12.0 with -std=c++17
298-
@li Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17
299-
@li Intel C++ Compiler at least v19.0.1 with -std=c++17
300-
@li Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17 and SYCL20
294+
@li GNU C++ Compiler at least v11.0 with -std=c++20
295+
@li Clang C++ Compiler at least v12.0 with -std=c++20
296+
@li Microsoft Visual Studio at least v19.29 (VS 2019) with /std:c++20
297+
@li Apple Clang (Xcode) at least v13.0 with -std=c++20
298+
@li NVIDIA CUDA Toolkit and Compiler (nvcc) at least v12.0 with host compiler supporting C++20
299+
@li Intel oneAPI DPC++/C++ Compiler at least v2022.0 with -std=c++20
301300

302301
%Taskflow works on Linux, Windows, and Mac OS X.
303302

304-
@attention
305-
Although %Taskflow supports primarily C++17, you can enable C++20 compilation
306-
through `-std=c++20` (or `/std:c++20` for MSVC) to achieve better performance due to new C++20 features.
307-
308303
@section QuickStartGetInvolved Get Involved
309304

310305
Visit our @ProjectWebsite and @ShowcasePresentation

‎doxygen/cookbook/static_tasking.dox‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ All tasks are created from tf::Taskflow, the class that manages a task dependenc
1717

1818
For example, the code below creates a taskflow.
1919
It first defines a placeholder task without assigned work, then creates a task directly from a given callable and obtains its task handle.
20-
Finally, it creates multiple tasks in one call using C++17 structured binding.
20+
Finally, it creates multiple tasks in one call using C++ structured binding.
2121

2222
@code{.cpp}
2323
tf::Taskflow taskflow;

‎doxygen/install/install.dox‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ We will also go through the building process of unit tests and examples.
99

1010
@section BAISupportedCompilers Supported Compilers
1111

12-
To use %Taskflow, you only need a compiler that supports C++17:
12+
To use %Taskflow v4.0.0, you need a compiler that supports C++20:
13+
14+
@li GNU C++ Compiler at least v11.0 with -std=c++20
15+
@li Clang C++ Compiler at least v12.0 with -std=c++20
16+
@li Microsoft Visual Studio at least v19.29 (VS 2019) with /std:c++20
17+
@li Apple Clang (Xcode) at least v13.0 with -std=c++20
18+
@li NVIDIA CUDA Toolkit and Compiler (nvcc) at least v12.0 with host compiler supporting C++20
19+
@li Intel oneAPI DPC++/C++ Compiler at least v2022.0 with -std=c++20
1320

14-
@li GNU C++ Compiler at least v8.4 with -std=c++17
15-
@li Clang C++ Compiler at least v6.0 with -std=c++17
16-
@li Microsoft Visual Studio at least v15.7 (MSVC++ 19.14)
17-
@li AppleClang Xcode Version at least v12.0 with -std=c++17
18-
@li Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17
19-
@li Intel C++ Compiler (icpc) at least v19.0.1 with -std=c++17
20-
@li Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17 and SYCL20
2121

2222
%Taskflow works on Linux, Windows, and Mac OS X.
2323

@@ -33,7 +33,7 @@ to your project.
3333
~$ cp -r taskflow myproject/include/
3434
@endcode
3535

36-
%Taskflow is written in C++17 and is built on top of
36+
%Taskflow is written in C++20 and is built on top of
3737
C++ standardized threading libraries to improve portability.
3838
To compile a %Taskflow program, say <tt>simple.cpp</tt>, you need to tell the compiler
3939
where to find the %Taskflow header files and link it through the system thread library

‎doxygen/releases/release-roadmap.dox‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ enhances the capability of %Taskflow.
1818
<div align="center">
1919
| Milestone | Release |
2020
| :-: | :-: |
21-
| Migrate the codebase to C++20 | v4.x |
22-
| Design a custom thread-creation interface | TBD |
23-
| Design a distributed tasking interface with scheduling | TBD |
24-
| Design a pipeline scheduling framework with token dependency | @ref release-3-7-0 |
25-
| Design a dynamic task graph model | @ref release-3-6-0 |
26-
| Design a pipeline scheduling framework | @ref release-3-3-0 |
27-
| Integrate thread sanitizer into the CI | @ref release-3-3-0 |
28-
| Integrate OpenCL and SYCL to tf::syclFlow | @ref release-3-1-0 |
29-
| Integrate @cuBLAS into tf::cudaFlow | @ref release-3-0-0 |
30-
| Support building %cudaFlow through stream capture | @ref release-3-0-0 |
31-
| Support profiling large data in tfprof | @ref release-3-0-0 |
32-
| Support cancelling %Taskflow | @ref release-3-0-0 |
33-
| Support limiting maximum concurrency | @ref release-3-0-0 |
34-
| Migrate the codebase to C++17 | @ref release-3-0-0 |
21+
| Migrated the codebase to C++20 | @ref release-4-0-0 |
22+
| Designed a custom thread-creation interface | @ref release-3-9-0 |
23+
| Designed a distributed tasking interface with scheduling | TBD |
24+
| Designed a pipeline scheduling framework with token dependency | @ref release-3-7-0 |
25+
| Designed a dynamic task graph model | @ref release-3-6-0 |
26+
| Designed a pipeline scheduling framework | @ref release-3-3-0 |
27+
| Integrated thread sanitizer into the CI | @ref release-3-3-0 |
28+
| Integrated OpenCL and SYCL to tf::syclFlow | @ref release-3-1-0 |
29+
| Integrated @cuBLAS into tf::cudaFlow | @ref release-3-0-0 |
30+
| Supported building %cudaFlow through stream capture | @ref release-3-0-0 |
31+
| Supported profiling large data in tfprof | @ref release-3-0-0 |
32+
| Supported cancelling %Taskflow | @ref release-3-0-0 |
33+
| Supported limiting maximum concurrency | @ref release-3-0-0 |
34+
| Migrated the codebase to C++17 | @ref release-3-0-0 |
3535
</div>
3636

3737
Along with the project development, we expect to have multiple releases

0 commit comments

Comments
 (0)