View Issue Details

IDProjectCategoryView StatusLast Update
0015211ScribusInternalpublic2020-11-07 14:52
Reporterale Assigned Tocbradney  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version1.5.4.svn 
Fixed in Version1.5.6.svn 
Summary0015211: c++ 11... 14... 17
Descriptioni think it's time to require c++ 11 for 1.5.x.

probably, we should go for c++ 14.

personally, i would go for c++ 17 as soon as it is well supported by Qt and VisualStudio / XCode.

why?

- personally, i feel much pain without auto, for (auto l: list), [](){...}... and a few other things i don't even notice.
- it's urgent to refactor parts of the scribus to allow new developer to grok the code.
- scribus should move away from the Qt data structures for the code that does not need them (Effective Qt (2017 edition): https://www.youtube.com/watch?v=uZ68dX1-sVc)

the only reason i know of, not to require c++11 is that it makes impossible to support windows xp but:

- people on windows xp should really migrate to something else now! (and even more at the time scribus 1.6 will be out)
- people on windows xp who need the support for complex scripts can use 1.5.3, the first (and last?) version to support it. that should be enough (... or, of course, one of the 1.5.4svn snapshots).
TagsNo tags attached.
PatchNo

Activities

jghali

2018-03-21 11:03

administrator   ~0045069

Last edited: 2018-03-21 11:04

>> the only reason i know of, not to require c++11 is that it makes impossible to support windows xp

No, that's not correct. The reason not to require c++11 is that we still support Qt 5.5 and 5.6 which do not require a c++11 compiler. The first Qt version which makes a c++11 compiler mandatory is Qt 5.7.

ale

2018-03-21 13:33

manager   ~0045070

even if qt 5.5 and 5.6 do not require c++11, scribus can require c++11 or not?

iirc, there was an issue on getting the "older" Qt binaries compiled with c++11 ... but i guess this is only an issue for craig and you for creating the mac and windows binaries.
and you both can easily get c++ 11 binaries for Qt 5.7. or not?

people who are using homebrew to compile scribus on mac, should be able to get the latest Qt.
and as far as i know, nobody else than you is compiling scribus on windows.

i'm not aware of issues with modern desktop linux and c++11.
i think that all "latest" releases of all distributions should default to c++11 and should then provide Qt 5 compiled with it.
i checked, debian stable has qt 5.7...

and for the time when scribus 1.6 will be out, i really hope that c++11 support will be obvious everywhere.

please make scribus depend on c++11 or better c++14 .

jghali

2018-03-21 13:48

administrator   ~0045071

>> even if qt 5.5 and 5.6 do not require c++11, scribus can require c++11 or not?

No. There are ABI incompatibilities between C++98 and C++11. So if Qt is compiled without c++11, we must not use c++11 either.

> you both can easily get c++ 11 binaries for Qt 5.7. or not

Yes and no. Windows XP support requires me to use Qt 5.6 max. However 1.5.4 will be the last release which will support Windows XP and Vista. We will be able to change the supported Qt version after 1.5.4 release.

ale

2018-03-21 14:49

manager   ~0045072

>> >> even if qt 5.5 and 5.6 do not require c++11, scribus can require c++11 or not?

>> No. There are ABI incompatibilities between C++98 and C++11. So if Qt is compiled without c++11, we must not use c++11 either.

yep, i was aware of that. but i don't see who is affected by it.

>> However 1.5.4 will be the last release which will support Windows XP and Vista.

i'm fine if 1.5.4 is released very soon.

otherwise, please think about revising the plans and requiring C++11 as soon as possible.

i mean: it can take one or two years until 1.5.4 is released...
you can easily state that a specific snapshot is the last one for XP and Vista. I don't think that it will make much different for the users.

i'm trying to finish up a few things for scribus, and the missing support for C++11 will delay the inclusion without much (or any) real advantage for other parts concerned.
(and, no, i won't make my plugins C++98 compatible, that's way too much work. they will wait for inclusion until C++11 (or C++14) will be required.)

cbradney

2020-09-01 21:06

administrator   ~0048016

c++11 has been required since 1.5.5.svn with CPP14/17 as optional arguments for CMake. 11 is our current minimum.

Issue History

Date Modified Username Field Change
2018-03-21 10:35 ale New Issue
2018-03-21 10:53 jghali Category - => Internal
2018-03-21 11:03 jghali Note Added: 0045069
2018-03-21 11:04 jghali Note Edited: 0045069
2018-03-21 13:33 ale Note Added: 0045070
2018-03-21 13:48 jghali Note Added: 0045071
2018-03-21 14:49 ale Note Added: 0045072
2020-09-01 21:06 cbradney Assigned To => cbradney
2020-09-01 21:06 cbradney Status new => resolved
2020-09-01 21:06 cbradney Resolution open => fixed
2020-09-01 21:06 cbradney Fixed in Version => 1.5.6.svn
2020-09-01 21:06 cbradney Note Added: 0048016
2020-11-07 14:52 cbradney Status resolved => closed