Quantcast

Some baseline thoughts

classic Classic list List threaded Threaded
3 messages Options
sberg sberg
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Some baseline thoughts

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".
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Miklos Vajna-4 Miklos Vajna-4
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Some baseline thoughts

Hi,

On Thu, Mar 16, 2017 at 12:20:54PM +0100, Stephan Bergmann <[hidden email]> wrote:
> *  GCC 4.7 (<https://cgit.freedesktop.org/libreoffice/core/commit/?id=e4b24c7399352642aeaeb412394d6230562d04d2>
> "configure: GCC 4.6 is no longer supported on master")

openSUSE stable/SLE still defaults to gcc-4.8 (4.8.5), so depending on
4.9 or newer is a bit uncomfortable for those users (including me).

> 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".

master-android$ grep -R THREADSAFE config_*/*.h
config_build/config_global.h:#define HAVE_THREADSAFE_STATICS 1
config_host/config_global.h:#define HAVE_THREADSAFE_STATICS 0

But this is not set in stone, quite possibly the Android toolchain (NDK,
which provides the C++ cross-compiler) can be updated to a newer
version, and then the problem will go away. (See
"with_android_ndk_toolchain_version=4.9" in configure.ac.)

Regards,

Miklos

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

signature.asc (188 bytes) Download Attachment
Jan-Marek Glogowski Jan-Marek Glogowski
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Some baseline thoughts

In reply to this post by sberg
Am 16.03.2017 um 12:20 schrieb Stephan Bergmann:

> 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.

Ubuntu LTS 14.04 has 4.8 as the default compiler. An update for 4.9 is
the maximum available compiler.

> *  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.

Someone / the wiki claimed 2017 is already working, which is a
difference to the previous 2015 bump, which apparently took some time to
fix the fallout of the update.

> *  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.)

Ubuntu doesn't have any official clang compiler, but provides a
clang-3.8 in the 14.04 repo, which I use for cross-checking.

I would just like to keep the 14.04 baseline because it makes backports
easier. We'll hopefully stay with 5.2 for a while, but I also thought so
about a 5.0 release, which was dropped.

JMG

P.S. 16.04 has gcc 5.3 as default and 5.4 as an update, clang still 3.8.
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Loading...