Some baseline thoughts
Stephan Bergmann
sbergman at redhat.com
Thu Mar 16 11:20:54 UTC 2017
Some of our baselines on current master (towards LO 5.4) are as follows:
* GCC 4.7
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=e4b24c7399352642aeaeb412394d6230562d04d2>
"configure: GCC 4.6 is no longer supported on master")
The latest version is GCC 6. Noteworthy C++ conformance we would gain
with a bump (according to
<http://en.cppreference.com/w/cpp/compiler_support>) would be:
** GCC 4.8.1:
*** inheriting constructors
*** ref-qualifiers
** GCC 4.9:
*** decltype(auto), return type deduction for normal functions
*** generic lambdas
*** deprecated attribute
*** single quote as digit separator
** GCC 5:
*** variable templates
*** user-defined literals for <chrono> and <string>
The question is what old versions of GCC are required exactly by the
various builds.
* MSVC 2015 Update 3
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=84b36c704d73362d4d86dc9e9c0efa0625958347>
"Drop support for MSVC 2013")
Bumping this to MSVC 2017 is unlikely to happen anytime soon, given we
bumped to MSVC 2015 Update 3 only recently.
* For --enable-compiler-plugins, Clang 3.4
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=733198de1b7fc3907609217147704f493f6146e6>
"Remove support for Clang < 3.4")
The latest version is Clang 4 (just released the other day). Bumping
this would allow to clean up some #ifdefs across compilerplugins/clang/.
The question is what old versions of Clang are required exactly by
people building with --enable-compiler-plugins.
(For our C++ conformance, the oldest supported Clang version is rarely
the limiting factor.)
* macOS 10.8
(<https://wiki.documentfoundation.org/index.php?title=ReleaseNotes/4.4&oldid=99539#Mac_OS_X>)
Bumping this to macOS 10.9 would get rid of the last known case of
!HAVE_THREADSAFE_STATICS (cf.
<https://cgit.freedesktop.org/libreoffice/core/commit/?id=aa2fbfc4faa24cf7ee5aa9afdafddbd536ac4fec>
"Found out that Mac OS X 10.9 has working threadsafe statics"). What is
unknown however is the status on Android and iOS. Having
HAVE_THREADSAFE_STATICS everywhere would allow to clean up code, see
e.g. <https://gerrit.libreoffice.org/#/c/35258/> "replace
double-checked-locking with C++11 static initializer".
More information about the LibreOffice
mailing list