Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Community » U++ community news and announcements » New Core
New Core [message #46381] Tue, 03 May 2016 16:17 Go to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
This week I am in the process to finally switching to "new" Core.

Right now, it is already in trunk and most things are fixed.

New Core is "C++11 only". Details of what is new/changed will be published later.

Anyway, as there is not a 100% compatibility maintained, the most important information is that the 'legacy' U++ will be available at svn://ultimatepp.org/upp/classic and perhaps maintained for some time to go...

Mirek
Re: New Core [message #46388 is a reply to message #46381] Wed, 04 May 2016 09:38 Go to previous messageGo to next message
koldo is currently offline  koldo
Messages: 3268
Registered: August 2008
Senior Veteran
Hello Mirek

What will be the improvements and where do you expect the compatibility problems may appear?


Best regards
IƱaki
Re: New Core [message #46391 is a reply to message #46388] Wed, 04 May 2016 14:55 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1400
Registered: September 2007
Ultimate Contributor
And what kind of changes are these? Superficial or deeper? Did you manage to clean up the weird more legacy stuff or is it just an update of containers for C++1x?

And speaking of C++14, this version supports 0b1111 like constants. Just today I needed them in CodeEditor. I will submit a patch for it if you think we should support it? Do you?

And if yes, the question is if you want me to add a:

HL_COLOR(INK_CONST_BIN, t_("Binary constant"), 1)

to the highlighting infrastructure or will we reuse some existing color?

Re: New Core [message #46401 is a reply to message #46388] Thu, 05 May 2016 09:26 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
koldo wrote on Wed, 04 May 2016 09:38
Hello Mirek

What will be the improvements and where do you expect the compatibility problems may appear?


I will detail changes soon (but mostly it is about C++11 and multithreading).

So far, apart for one or two minor changes, suprisingly the most compatibility problems are caused by new Core detecting subtle bugs.

It took me 5 minutes to fix those is my largest app.

Mirek
Re: New Core [message #46405 is a reply to message #46401] Fri, 06 May 2016 10:24 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1400
Registered: September 2007
Ultimate Contributor
mirek wrote on Thu, 05 May 2016 10:26
koldo wrote on Wed, 04 May 2016 09:38
Hello Mirek

What will be the improvements and where do you expect the compatibility problems may appear?


I will detail changes soon (but mostly it is about C++11 and multithreading).

So far, apart for one or two minor changes, suprisingly the most compatibility problems are caused by new Core detecting subtle bugs.

It took me 5 minutes to fix those is my largest app.

Mirek

Ah OK!

I shall wait then!

Honestly, I was hoping for a more substantial update to Core. Most classes are fine as they are, even great, but all the free functions are falling out of favor and considered sub-optimal design nowadays. As an example, all the file name related stuff could be grouped under a class called Path with static members and so on.

I help with remembering where everything goes and what names it has. I often know that there is a free function that solves my problem, but I'm not sure how it is called.

Today I've spent like 5 minutes trying to find the function that copies text to clipboard, only to find that in CtrlCore.h there are things like ClearClipboard and WriteClipboardUnicodeText. Things like this should really be Clipboard::Clear and Clipboard::Write.
Re: New Core [message #46406 is a reply to message #46405] Fri, 06 May 2016 13:10 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
cbpporter wrote on Fri, 06 May 2016 10:24

Today I've spent like 5 minutes trying to find the function that copies text to clipboard, only to find that in CtrlCore.h there are things like ClearClipboard and WriteClipboardUnicodeText. Things like this should really be Clipboard::Clear and Clipboard::Write.

[/quote]

Trouble with this is that Clipboard class is 'closed'. You can put some formats to it, but it is not extensible in another module.

Mirek
Re: New Core [message #46407 is a reply to message #46381] Fri, 06 May 2016 22:53 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1781
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

Hi Mirek,

I have updated the packaging to use C++11, but TheIDE build still fail. The error says DeepClone is not declared, you can see it in the build logs, e.g. for Debian Wheezy. Could you have a look at it, please?

Honza
Re: New Core [message #46409 is a reply to message #46407] Sun, 08 May 2016 06:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
dolik.rce wrote on Fri, 06 May 2016 22:53
Hi Mirek,

I have updated the packaging to use C++11, but TheIDE build still fail. The error says DeepClone is not declared, you can see it in the build logs, e.g. for Debian Wheezy. Could you have a look at it, please?

Honza


Most likely it is missing MT in main package config.
Re: New Core [message #46410 is a reply to message #46409] Sun, 08 May 2016 15:37 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1781
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Sun, 08 May 2016 06:31
Most likely it is missing MT in main package config.

Oh, right, I missed that it is necessary now.

So the situation is much better now. There is just few problems left:

Ubuntu 12.4 and ScientificLinux 6 both fail, because their compiler (GCC 4.6 and 4.7, respectively) is so old it doesn't even support the option -std=c++11. Also the compiler in Debian Wheezy (GCC 4.7) doesn't work. This one already knows c++11, but thread_local keyword is not implemented, so the compilation fails.

And the last problem is in ArchLinux packages where the compilation fails on conflicting declaration of abs(int64), which is already present in stdlib in C++11.

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).

Honza
Re: New Core [message #46411 is a reply to message #46381] Sun, 08 May 2016 18:08 Go to previous messageGo to next message
Zbych is currently offline  Zbych
Messages: 316
Registered: July 2009
Senior Member
I tried to compile last version (upp-x11-src-9809.tar.gz) from source but it failed with lack of std=c++11.
Where it should be added?
src/Makefile?
src/Makefile.in?
src/UMakefile?

Re: New Core [message #46414 is a reply to message #46410] Mon, 09 May 2016 11:23 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
dolik.rce wrote on Sun, 08 May 2016 15:37
mirek wrote on Sun, 08 May 2016 06:31
Most likely it is missing MT in main package config.

Oh, right, I missed that it is necessary now.

So the situation is much better now. There is just few problems left:

Ubuntu 12.4 and ScientificLinux 6 both fail, because their compiler (GCC 4.6 and 4.7, respectively) is so old it doesn't even support the option -std=c++11. Also the compiler in Debian Wheezy (GCC 4.7) doesn't work. This one already knows c++11, but thread_local keyword is not implemented, so the compilation fails.

And the last problem is in ArchLinux packages where the compilation fails on conflicting declaration of abs(int64), which is already present in stdlib in C++11.

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).

Honza


Perhaps we can switch it to 'classic'?

Mirek
Re: New Core [message #46415 is a reply to message #46411] Mon, 09 May 2016 11:23 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
Zbych wrote on Sun, 08 May 2016 18:08
I tried to compile last version (upp-x11-src-9809.tar.gz) from source but it failed with lack of std=c++11.
Where it should be added?
src/Makefile?
src/Makefile.in?
src/UMakefile?



Sorry, that is a bug in umk. Fixing it now.

Mirek
Re: New Core [message #46418 is a reply to message #46414] Mon, 09 May 2016 16:32 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1781
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Mon, 09 May 2016 11:23
dolik.rce wrote on Sun, 08 May 2016 15:37

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).


Perhaps we can switch it to 'classic'?


It could be done, if you package the 'classic' uppsrc into the nigthly tarball. I could then try to detect GCC version and set the assembly to classic version if the compiler is too old. It doesn't even need to be whole uppsrc, only packages that are necessary to build theide and umk.

Honza
Re: New Core [message #46419 is a reply to message #46418] Mon, 09 May 2016 17:25 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
dolik.rce wrote on Mon, 09 May 2016 16:32
mirek wrote on Mon, 09 May 2016 11:23
dolik.rce wrote on Sun, 08 May 2016 15:37

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).


Perhaps we can switch it to 'classic'?


It could be done, if you package the 'classic' uppsrc into the nigthly tarball.


Well, I do not. 'classic' is basically branch for systems not supporting C++11.

I perhaps could generate complete 'classic' tarball.

Mirek
Re: New Core [message #46420 is a reply to message #46419] Mon, 09 May 2016 20:51 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1781
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Mon, 09 May 2016 17:25
dolik.rce wrote on Mon, 09 May 2016 16:32
mirek wrote on Mon, 09 May 2016 11:23
dolik.rce wrote on Sun, 08 May 2016 15:37

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).


Perhaps we can switch it to 'classic'?


It could be done, if you package the 'classic' uppsrc into the nigthly tarball.


Well, I do not. 'classic' is basically branch for systems not supporting C++11.

I perhaps could generate complete 'classic' tarball.

I understand that it is a branch, but I think it could still be present in the tarball as a "fallback" for older systems. It would also be simpler for the users, because having two tarballs requires explaining them in great detail which one they should use...

Also it would save me a lot of work when packaging, because I wouldn't have to keep track of compiler version for each of the 15 distros and manually choose which one should be used. It would be especially troublesome for ubuntu and debian, where all 7 versions is currently built from the same package.

Honza
Re: New Core [message #46425 is a reply to message #46381] Tue, 10 May 2016 00:31 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 816
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor

Maybe the package should be left as is, and upp2 can be introduced? (like kde4 vs kde5 during transition period)
Or that's too complicated to maintain either?
Re: New Core [message #46433 is a reply to message #46425] Tue, 10 May 2016 18:46 Go to previous messageGo to next message
Mindtraveller is currently offline  Mindtraveller
Messages: 917
Registered: August 2007
Location: Russia, Moscow rgn.
Experienced Contributor

I'm afraid Web package is not compiled successfully with new Core. Compiling with MSC 14/15 fails on a number of files from Web package.
Re: New Core [message #46439 is a reply to message #46433] Wed, 11 May 2016 10:33 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
Web was planned to be removed. It was DEPRECATED years ago.

Is there anything in Web that you need? I guess I can still fix it...
Re: New Core [message #46440 is a reply to message #46425] Wed, 11 May 2016 10:34 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
mr_ped wrote on Tue, 10 May 2016 00:31
Maybe the package should be left as is, and upp2 can be introduced? (like kde4 vs kde5 during transition period)
Or that's too complicated to maintain either?


Is not that exactly what happened? 'classic' being left as it is and upp moved on to C++11?

Mirek
Re: New Core [message #46441 is a reply to message #46420] Wed, 11 May 2016 10:40 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 13428
Registered: November 2005
Ultimate Member
dolik.rce wrote on Mon, 09 May 2016 20:51
mirek wrote on Mon, 09 May 2016 17:25
dolik.rce wrote on Mon, 09 May 2016 16:32
mirek wrote on Mon, 09 May 2016 11:23
dolik.rce wrote on Sun, 08 May 2016 15:37

Is it safe to drop support for the old distros, even though they are still supported? Ubuntu 12.4 has end-of-life scheduled for April 2017, Debian Wheezy has LTS until May 2018 and ScientificLinux 6 even has full support until Q2 2017 (and then maintenance updates until November 2020).


Perhaps we can switch it to 'classic'?


It could be done, if you package the 'classic' uppsrc into the nigthly tarball.


Well, I do not. 'classic' is basically branch for systems not supporting C++11.

I perhaps could generate complete 'classic' tarball.

I understand that it is a branch, but I think it could still be present in the tarball as a "fallback" for older systems. It would also be simpler for the users, because having two tarballs requires explaining them in great detail which one they should use...
Honza


Not sure. For starters, it will complicate the tarball. Either I will have to include both source trees, or invent some patching.

I really would like to keep 'classic' as separate thing. Like gtk2-gtk3, KDE4/5 etc.. Those are not coming in single tarball, right? Smile
Previous Topic: Core: New String methods
Next Topic: ide: Optimal mode removed
Goto Forum:
  


Current Time: Sat Sep 25 09:10:27 CEST 2021

Total time taken to generate the page: 0.01518 seconds