On Fri, Jun 27, 2014, at 03:48 PM, Johan Engelen wrote:
You mean to #ifdef the hell out of it? I am very much against this. We already have this in our code, and it is terrible. For me "using C++11" means we require it, full stop.
Well... some is more using typedef, rather than #ifdef. A bit of #ifdef does come in... but "the hell out of it" is probably to the degree we want to avoid.
We are still going to need at least some judicious #ifdef to keep cross-platform and cross-OS support working. However we do want to keep it to a minimum. Explicitly defining what is "too old" will help both users and devs.
The secondary question is *which* parts of C++ 11 we can require, and which we have to defer. I believe last time I checked things for the day job included versions of gcc had only about 40% C++ 11 coverage. We also will need to take care to differentiate between C++ 11 features that are present versus those that function correctly. :-)
So we'll need to add a chart of which compilers we need to stay compatible with. Then we can cross-reference with the Apache page and quickly update our chart.
This is what this page is about: http://wiki.inkscape.org/wiki/index.php/C%2B%2B11
OK. That can be a good start. However we are missing the other info... namely which version of which OS's are and are not supported, and which compilers they have.
Ubuntu is pretty good for defining their support lifetimes, but slightly poor with which compilers & libs are in which versions. So we just need a little legwork to sync from that.
I'd say the main question will be for the enterprise distros. CentOS/RHEL, Scientific and SUSE might cover the bases. RHEL 5.x is still in production for a few more years, so we might want to consider that. RHEL 6.x could replace it as a baseline target. Some end-user research on this specific point would be good.
For the record my computer is currently stuck with gcc 4.2.1 since the hardware itself (32-bit CPU) is limited to OSX 10.6 and that does not have newer.
I hope you realize that this is not really tenable for Inkscape to keep compatible with such old compilers... (7 years is not that old in human terms, but it is a lot in computer terms)
Yes. However we need to keep in mind that compatibility with older hardware is a key selling point for many in their decision to use open source software.
I am open, however, to being declared to be on "ancient" hardware. As long as we make an informed explicit decision we should be good.