Re: [eigen] About dropping C++03 compatibility

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]




On Wed, Feb 20, 2019 at 3:52 PM Christoph Hertzberg <chtz@xxxxxxxxxxxxxxxxxxxxxxxx> wrote:


On 20/02/2019 08.04, Michael Hofmann wrote:
> [...]
>
> If you want a motivated base of people *maintaining and contributing
> to* Eigen, by all means, get the Eigen codebase modernized and greatly
> simplified in the progress! It makes a big difference.
> And it does seem to me that Eigen could use a more active community
> working on it. My personal impression of Eigen certainly has changed a
> bit in the last few years, as these obvious modernization tasks are
> not even attempted.

"Simplifying" the codebase by using C++14/17 would for many parts
essentially mean to rewrite them --> _May_ save work in the long run,
but not feasible or worth the effort for now.
Large parts of Eigen are complicated regardless of the standard we use.

without rewriting everything, many new features, bug fixes and improvements could have been implemented much more rapidly if c++11/14 could be used without bothering about c++03.
#if CXX11 guards are perfectly fine when the goal is to expose a specific feature that only exist with CPP11 and that does not interact with the rest of Eigen's code base. But for all other cases #if guards just make everything even more complicated.

Just one example, look at this mess:

https://bitbucket.org/eigen/eigen/src/fed0f93f7118b9eae028c9342ed5e3d7a735b17f/Eigen/src/Core/ArithmeticSequence.h#lines-17

and after moving to C++14:

https://pastebin.com/KWNfzdXJ

Believe me, I really don't want to make any additional change to ArithmeticSequence without cleaning it first!
 
> I have to admit I do not understand conservativism around moving a
> codebase along with the times. As someone else said before in this
> thread, older releases do not magically disappear! Anyone can still
> use them.

It is also an issue of having to maintain code bases which largely
diverged. Currently, many bug fixes can simply be grafted to the 3.3 branch..

yes, that's a real concerns I had too. So let's make 3.4 super robust ;)
 
> Without having data to back this up, [...]

Perhaps we should conduct some kind of survey about
  * Which Eigen versions are currently used (3.1??, 3.2, 3.3, default)
  * What CPU/OS/Compiler/C++-standard/...
  * What modules of Eigen/what kind of problems/...
  * Most concerning issues/wanted features/...
  * ...

Anyone willing to collect questions and set this up? (Maybe start
brainstorming questions in a new mail-thread)

It would be very nice if someone would set this up! I'd advise to keep the survey as short as possible with a focus on questions for which we really have no clue and of interest for the evolution of Eigen. For instance, the results on CPU/OS are very predictable and of little use IMO. On the other hand the compiler versions and maximal c++ versions (today and expected within, say, 3 years) are of utmost importance.

gael.


 


Christoph




--
  Dr.-Ing. Christoph Hertzberg

  Besuchsadresse der Nebengeschäftsstelle:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany

  Postadresse der Hauptgeschäftsstelle Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 1
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-4021
  Zentrale: +49 421 178 45-0
  E-Mail:   christoph.hertzberg@xxxxxxx

  Weitere Informationen: http://www.dfki.de/robotik
   -------------------------------------------------------------
   Deutsches Forschungszentrum für Künstliche Intelligenz GmbH
   Trippstadter Strasse 122, D-67663 Kaiserslautern, Germany

   Geschäftsführung:
   Prof. Dr. Jana Koehler (Vorsitzende)
   Dr. Walter Olthoff

   Vorsitzender des Aufsichtsrats:
   Prof. Dr. h.c. Hans A. Aukes
   Amtsgericht Kaiserslautern, HRB 2313
   -------------------------------------------------------------





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/