Fix typos regarding FindPython3 CMake module hint.
[alexxy/gromacs.git] / docs / release-notes / 2021 / major / portability.rst
1 Portability
2 ^^^^^^^^^^^
3
4 Python environment
5 """"""""""""""""""
6
7 Where Python is required,
8 `CPython <https://www.python.org>`__ versions 3.6 to 3.8 are supported.
9
10 CMake now detects Python using
11 `FindPython3 <https://cmake.org/cmake/help/v3.13/module/FindPython3.html>`__.
12 If you previously used ``PYTHON_EXECUTABLE`` to hint the location of the Python
13 interpreter, you should instead specify the Python "root" or "prefix" path
14 (the directory containing ``./bin/python3``) with CMake variable
15 ``Python3_ROOT_DIR`` or ``CMAKE_PREFIX_PATH``. As other infrastructure evolves,
16 ``PYTHON_EXECUTABLE`` may cease to have the desired effect without warning.
17
18 .. Note to developers!
19    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
20    otherwise the formatting on the webpage is messed up.
21    Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
22    a space between the colon and number!
23
24 CMake
25 """""
26
27 Updated required CMake version to 3.13.
28
29 C++ standard
30 """"""""""""
31
32 |Gromacs| has updated the required C++ standards compliance from C++14 to C++17,
33 and requires 2017 standard library features. See the install guide for details.
34
35 Cygwin
36 """"""
37
38 |Gromacs| now builds on Cygwin with both gcc and clang compilers.
39
40 Windows
41 """""""
42
43 |Gromacs| now builds correctly on Windows with MSVC even when the path
44 to the source or build directory has a space in it.
45
46 Builds with MSVC 2019 correctly detect the proper static linking setup
47 during CMake configuration.
48
49 RDTSCP usage and reporting
50 """"""""""""""""""""""""""
51
52 |Gromacs| now defaults always on x86 to use the RDTSCP machine
53 instruction for lower latency timing. Very old machines might need to
54 configure with ``GMX_USE_RDTSCP=off``. Non-x86 platforms are
55 unaffected, except that they will no longer report that RDTSCP is
56 disabled (because that is self-evident).
57
58 armv8+sve support (ARM_SVE)
59 """""""""""""""""""""""""""
60 Support for ARM Scalable Vector Extensions (SVE) has been added.
61 |Gromacs| supports SVE vector length fixed at CMake configure time
62 (typically via the -msve-vector-bits=<len> compiler option),
63 which is at the time of the release supported in GNU GCC 10 and later,
64 and will supported soon by LLVM 12 and compilers based on this.
65 The default is to detect the default vector length at CMake configure time,
66 and that can be changed with the ``GMX_SIMD_ARM_SVE_LENGTH=<bits>`` option.
67 Supported values are 128, 256, 512 and 1024. Note that the nonbonded
68 kernels have not been optimized for ARM_SVE as of yet.
69 ARM_SVE support is contributed by the Research Organization for Science Information and Technology (RIST)