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 release 2024 "alpha phase"
New release 2024 "alpha phase" [message #60780] Sun, 08 September 2024 21:21 Go to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
2024 (rev. >17373) (Sep 2024)

Upcoming release

Core

First release of U++ that requires C++17
Moveable concept redesigned with C++17 features. U++ now allows non-moveable types to be stored in Vector flavor of containers (using Upp::is_upp_guest). PODs are automatically moveable (aka trivially relocatable)
Upp::Tuple now supports structured binding
GetFileTime, GetFileLength, FileExists, DirectoryExists and FileMapping refactored
Stream::GetAll now invokes LoadError on negative count
ValueCache limits setting methods are simplified
Value now directly supports 'float' type
Some iffy code now made more C++ compliant (e.g. always using memcpy for unaligned data)
AsXML had new XML_ESCAPELF

plugin/Zip

zip64 support

Draw

UHD image now can serve as source for SD image
New S3 .iml image flag - the images are drawn supersampled 3x, usually without antialiasing, and only downsampled at runtime

Painter

Multithreaded rendering further optimised
New image filtering parameter - so far, rendering image was always with bilinear filtering, new parameter allows other Image filter like Lanczos 3

CtrlCore

Horizontal mouse scroll wheel support
CtrlMapper now provides operator()(Ctrl, T, const T& factor) for simple unit conversions
gtk backend improvements, XWayland mouse cursor bug workaround

CtrlLib

CtrlMapper now provides operator()(Ctrl, T, const T& factor) for simple unit conversions

ide

Icon Designer refactored and optimised, new tools added, S3 flag support added
Alt-M now goes to special scratchpad file of the same type as is current file, this is helpful e.g. for temporary storing and editing parts of .iml images that are then composed to the final image.
Output directory in assembly definition now can be left empty and defaults to reasonable path.
Hexadecimal view is now much faster
Fixed further corner case Assist++ problems
Layout designer text field, used with e.g. Labels, now has Qtf button to edit text with RichEdit
Git file history now goes through renames
Compare with menu now suggests files in Download folder too
Main package configuration dialog improved

plugin upgrades

plugin/sqlite3: 3.46.0
plugin/lzma: 24.6
plugin/zstd: 1.5.6
Core: LZ4 1.9.4
plugin/z: 1.3.1
plugin/png: 1.6.46
plugin/tif: 4.6.0
plugin/jpeg: 9f

Win32

OpenSSL upgraded to3.2.1
Clang compiler upgraded to 18.1.5
Re: New release 2024 "alpha phase" [message #60781 is a reply to message #60780] Sun, 08 September 2024 21:23 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
This is long overdue, I was a bit too busy in the first half of year...

Please use this thread to alert me of anything serious that should eventually be addressed before the release!
Re: New release 2024 "alpha phase" [message #60782 is a reply to message #60781] Sun, 08 September 2024 23:22 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1099
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Mirek,

It's good to hear that the new release is on the radar. For the C++17 I repeated it many times that we should adopt it. Probably starting in 2020, but finally we have it Smile

Threads with C++17:
- https://www.ultimatepp.org/forums/index.php?t=msg&th=111 41&goto=54751&
- https://www.ultimatepp.org/forums/index.php?t=msg&th=117 72&goto=58266&#msg_58266

Klugier


U++ - one framework to rule them all.
Re: New release 2024 "alpha phase" [message #60783 is a reply to message #60782] Sun, 08 September 2024 23:38 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Klugier wrote on Sun, 08 September 2024 23:22
Hello Mirek,

It's good to hear that the new release is on the radar. For the C++17 I repeated it many times that we should adopt it. Probably starting in 2020, but finally we have it Smile

Threads with C++17:
- https://www.ultimatepp.org/forums/index.php?t=msg&th=111 41&goto=54751&
- https://www.ultimatepp.org/forums/index.php?t=msg&th=117 72&goto=58266&#msg_58266

Klugier


But there is a logic to it. It is complicated to produce working binary of your application on 10 years old distro if it uses c++ 17, which unfortunatly, believe or not, some consumers require... What C++17 adds is good, but does not fundamentally change the way we are using C++ (unlike C++11/14). Makes sense to lag a bit.
Re: New release 2024 "alpha phase" [message #60784 is a reply to message #60780] Mon, 09 September 2024 00:30 Go to previous messageGo to next message
dodobar is currently offline  dodobar
Messages: 19
Registered: April 2023
Location: Germany
Promising Member
Awesome, thanks for putting the time into another release.

looks like Christmas is coming early... Shocked


Curt
Re: New release 2024 "alpha phase" [message #60785 is a reply to message #60780] Mon, 09 September 2024 07:59 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
Hi Mirek,

Looking forward to the release... Smile

Meanwhile, can you take a look at the MSC compilation (MSBT22x64 in my case):
C:\upp-git\upp.src\uppsrc\Core\Topt.h(168): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Topt.h(172): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(170): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(174): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(179): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Complex.h(58): error C7525: inline variables require at least '/std:c++17'


EDIT: Adding '/std:c++17' to Common options in build methods for MSC helped here.

Best regards,

Tom

[Updated on: Mon, 09 September 2024 08:09]

Report message to a moderator

Re: New release 2024 "alpha phase" [message #60787 is a reply to message #60785] Mon, 09 September 2024 09:50 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Tom1 wrote on Mon, 09 September 2024 07:59
Hi Mirek,

Looking forward to the release... Smile

Meanwhile, can you take a look at the MSC compilation (MSBT22x64 in my case):
C:\upp-git\upp.src\uppsrc\Core\Topt.h(168): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Topt.h(172): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(170): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(174): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Tuple.h(179): error C7525: inline variables require at least '/std:c++17'
C:\upp-git\upp.src\uppsrc\Core\Complex.h(58): error C7525: inline variables require at least '/std:c++17'


EDIT: Adding '/std:c++17' to Common options in build methods for MSC helped here.

Best regards,

Tom


Added to instant setup, existing installation has to be fixed by adding it to build method C++ options.

Mirek
Re: New release 2024 "alpha phase" [message #60789 is a reply to message #60787] Mon, 09 September 2024 10:54 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
Thanks Mirek,

Works fine now. I'll keep on testing.

Best regards,

Tom
Re: New release 2024 "alpha phase" [message #60791 is a reply to message #60789] Mon, 09 September 2024 15:07 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
A compiler warning popped up on 32-bit MSBT22:

C:\upp-git\upp.src\uppsrc\Core\FileMapping.h (18): warning C4244: 'argument': conversion from 'Upp::int64' to 'size_t', possible loss of data

BTW: which condition flags should I use to include specific libraries only for 64-bit targets in TheIDE Package organizer? E.g. WIN64 or _WIN64 does not seem to work here.

Best regards,

Tom
Re: New release 2024 "alpha phase" [message #60793 is a reply to message #60791] Tue, 10 September 2024 14:40 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Tom1 wrote on Mon, 09 September 2024 15:07
A compiler warning popped up on 32-bit MSBT22:

C:\upp-git\upp.src\uppsrc\Core\FileMapping.h (18): warning C4244: 'argument': conversion from 'Upp::int64' to 'size_t', possible loss of data


Thanks, fixed.

Quote:

BTW: which condition flags should I use to include specific libraries only for 64-bit targets in TheIDE Package organizer? E.g. WIN64 or _WIN64 does not seem to work here.

Best regards,

Tom


That is suprisingly complicated problem... Build method actually does not really know / care about that. And frankly, so far, there were no specific library names for 64-bit, usually in win32, they are just placed to different folders.

If you think this is really worth fixing, the simple way is to put something into Common fixed flags in the build method. I can do that in automatic build method setup... I guess placing "M32" to 32-bit build methods should do the job.

Mirek
Re: New release 2024 "alpha phase" [message #60795 is a reply to message #60793] Tue, 10 September 2024 17:15 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
mirek wrote on Tue, 10 September 2024 15:40
Tom1 wrote on Mon, 09 September 2024 15:07
A compiler warning popped up on 32-bit MSBT22:

C:\upp-git\upp.src\uppsrc\Core\FileMapping.h (18): warning C4244: 'argument': conversion from 'Upp::int64' to 'size_t', possible loss of data


Thanks, fixed.

Quote:

BTW: which condition flags should I use to include specific libraries only for 64-bit targets in TheIDE Package organizer? E.g. WIN64 or _WIN64 does not seem to work here.

Best regards,

Tom


That is suprisingly complicated problem... Build method actually does not really know / care about that. And frankly, so far, there were no specific library names for 64-bit, usually in win32, they are just placed to different folders.

If you think this is really worth fixing, the simple way is to put something into Common fixed flags in the build method. I can do that in automatic build method setup... I guess placing "M32" to 32-bit build methods should do the job.

Mirek

Hi,

Some external libraries (and DLLs) I use come with just different names for 32/64 bit variants. It would be helpful to have a way to use e.g. "WIN32 M32" or "WIN32 !M32" to link with the correct variant and avoid linking errors.

Best regards,

Tom
Re: New release 2024 "alpha phase" [message #60796 is a reply to message #60795] Wed, 11 September 2024 10:48 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
Tom1 wrote on Tue, 10 September 2024 18:15
mirek wrote on Tue, 10 September 2024 15:40
Tom1 wrote on Mon, 09 September 2024 15:07
A compiler warning popped up on 32-bit MSBT22:

C:\upp-git\upp.src\uppsrc\Core\FileMapping.h (18): warning C4244: 'argument': conversion from 'Upp::int64' to 'size_t', possible loss of data


Thanks, fixed.

Quote:

BTW: which condition flags should I use to include specific libraries only for 64-bit targets in TheIDE Package organizer? E.g. WIN64 or _WIN64 does not seem to work here.

Best regards,

Tom


That is suprisingly complicated problem... Build method actually does not really know / care about that. And frankly, so far, there were no specific library names for 64-bit, usually in win32, they are just placed to different folders.

If you think this is really worth fixing, the simple way is to put something into Common fixed flags in the build method. I can do that in automatic build method setup... I guess placing "M32" to 32-bit build methods should do the job.

Mirek

Hi,

Some external libraries (and DLLs) I use come with just different names for 32/64 bit variants. It would be helpful to have a way to use e.g. "WIN32 M32" or "WIN32 !M32" to link with the correct variant and avoid linking errors.

Best regards,

Tom

Thanks for the advise Mirek. Adding a 'M32' in 'Common fixed flags' for 32-bit CLANG allowed using condition 'WIN32 !M32' for a 64-bit DLL to prevent the linking error. It probably would not hurt to have a M32 and/or M64 flags pre-defined for the corresponding builders to make this work out of the box.

Best regards,

Tom
Re: New release 2024 "alpha phase" [message #60797 is a reply to message #60796] Wed, 11 September 2024 11:36 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
Mirek,

I started to have trouble seeing some of the TheIDE packages' names properly. Then I noticed that the Dark theme coloring has changed.
index.php?t=getfile&id=6962&private=0
Especially Draw, PdfDraw and all <aux> packages are really hard to read for me. The screenshot is from Linux Mint using dark theme, but I'm having the same issue on Windows dark theme too, although the darker background helps there a little bit.

(I must remind you that I have red-green colorblindness, like 8 % of European men do. Not sure if this contributes to the issue I'm having now with those texts. To simulate red-green colorblindness to the people with normal color perception, try to flatten your red color channel to something like 0.. 10 % of the original and see how your GUI looks. Might be a good idea to do this test with any GUI design to ensure accessibility for guys like me.)

Best regards,

Tom

EDIT: Sorry, I seem to have misplaced this posting... Just found there's a thread for this at https://www.ultimatepp.org/forums/index.php?t=msg&th=123 29&goto=60794&#msg_60794 , so feel free to move this posting to that thread.

[Updated on: Wed, 11 September 2024 12:13]

Report message to a moderator

Re: New release 2024 "alpha phase" [message #60798 is a reply to message #60797] Thu, 12 September 2024 10:57 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Tom1 wrote on Wed, 11 September 2024 11:36
Mirek,

I started to have trouble seeing some of the TheIDE packages' names properly. Then I noticed that the Dark theme coloring has changed.
index.php?t=getfile&id=6962&private=0
Especially Draw, PdfDraw and all <aux> packages are really hard to read for me. The screenshot is from Linux Mint using dark theme, but I'm having the same issue on Windows dark theme too, although the darker background helps there a little bit.

(I must remind you that I have red-green colorblindness, like 8 % of European men do. Not sure if this contributes to the issue I'm having now with those texts. To simulate red-green colorblindness to the people with normal color perception, try to flatten your red color channel to something like 0.. 10 % of the original and see how your GUI looks. Might be a good idea to do this test with any GUI design to ensure accessibility for guys like me.)

Best regards,

Tom

EDIT: Sorry, I seem to have misplaced this posting... Just found there's a thread for this at https://www.ultimatepp.org/forums/index.php?t=msg&th=123 29&goto=60794&#msg_60794 , so feel free to move this posting to that thread.


For now, the changed to DarkTheme are rolled back. It will need some more research I guess...
Re: New release 2024 "alpha phase" [message #60799 is a reply to message #60796] Thu, 12 September 2024 10:59 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Quote:

It probably would not hurt to have a M32 and/or M64 flags pre-defined for the corresponding builders to make this work out of the box.


Done, but in the end I decided to change it to CPU_32.

Mirek
Re: New release 2024 "alpha phase" [message #60800 is a reply to message #60798] Thu, 12 September 2024 11:28 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
mirek wrote on Thu, 12 September 2024 11:57
...

For now, the changed to DarkTheme are rolled back. It will need some more research I guess...

Still cannot see them well. I looked at the old (2020) code and the values (in old coding style) were:
double DarkTheme_c[3] = { 0.3, 0.5, 0.2 };
int    DarkTheme_middle = 155;

Those I can see well on the dark background.

Best regards,

Tom
Re: New release 2024 "alpha phase" [message #60801 is a reply to message #60800] Thu, 12 September 2024 11:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14260
Registered: November 2005
Ultimate Member
Ah, sorry, proper rollback pushed.
Re: New release 2024 "alpha phase" [message #60802 is a reply to message #60799] Thu, 12 September 2024 11:45 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
mirek wrote on Thu, 12 September 2024 11:59
Quote:

It probably would not hurt to have a M32 and/or M64 flags pre-defined for the corresponding builders to make this work out of the box.


Done, but in the end I decided to change it to CPU_32.

Mirek

Thanks! Works fine, although having it change the output directory to include CPU32 is not needed nor desired.

// Tom
Re: New release 2024 "alpha phase" [message #60803 is a reply to message #60802] Thu, 12 September 2024 11:48 Go to previous messageGo to next message
Tom1
Messages: 1303
Registered: March 2007
Ultimate Contributor
Another issue... On Linux Mint and UHD 4k display the console output (when compiling) is using a very tiny little font... And even if I zoom it in using Ctrl+Wheel, on next startup of TheIDE it has shrinked again back. All other panels in TheIDE seem to follow the UHD sizing.

// Tom
Re: New release 2024 "alpha phase" [message #60805 is a reply to message #60803] Thu, 12 September 2024 13:53 Go to previous messageGo to previous message
omari is currently offline  omari
Messages: 276
Registered: March 2010
Experienced Member
Nightly build is stopped.

it seams that the builder host need update in order to use C++17

Thanks.


regards
omari.
Previous Topic: Flatpak 2023.2.1 hotfix release
Next Topic: Win32 openssl updated to 3.2.1 version
Goto Forum:
  


Current Time: Tue Jun 03 09:40:02 CEST 2025

Total time taken to generate the page: 0.02624 seconds