Hi Monty,

Thank you for the review. I will revise
https://github.com/MariaDB/server/pull/3966/ accordingly.

When it comes to the C++11 noexcept keyword, I believe that there was
a reason why -fno-exceptions was included in all the applicable build
scripts in the very first public revision of MySQL:
https://github.com/MariaDB/server/commit/84626f52fb1ca40ebe0175dfda8cc1a2931651c7.
I see that this GCC option is still present in the BUILD directory in
some scripts that are not being used on any CI system that I am aware
of. There is a check for __EXCEPTIONS in include/my_global.h, and both
GCC 15 and Clang 20 still define that symbol unless -fno-exceptions is
specified. But neither one defines the preprocessor symbol __GNUC; it
is __GNUC__. It looks like the check that you had implemented back in
2003 in 
https://github.com/MariaDB/server/commit/8dd439e751f908af22ebd11197fd56ade76aa5fa
has never worked as intended:

#if defined(__GNUC) && defined(__EXCEPTIONS)
#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile"
#endif

Max Kellermann pointed out in
https://github.com/MariaDB/server/pull/3529 that exceptions are not
disabled in MariaDB and showed that adding the noexcept keyword can
have a positive impact.

In 
https://stackoverflow.com/questions/16104057/does-noexcept-improve-performance
you can find some further evidence that using the noexcept keyword may
improve performance.

With best regards,

Marko Mäkelä
_______________________________________________
commits mailing list -- commits@lists.mariadb.org
To unsubscribe send an email to commits-le...@lists.mariadb.org

Reply via email to