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  |
 |
mirek
Messages: 14290 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 #60785 is a reply to message #60780] |
Mon, 09 September 2024 07:59   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
Looking forward to the release... 
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 #60791 is a reply to message #60789] |
Mon, 09 September 2024 15:07   |
Tom1
Messages: 1319 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   |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
Tom1 wrote on Mon, 09 September 2024 15:07A 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   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 10 September 2024 15:40Tom1 wrote on Mon, 09 September 2024 15:07A 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   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Tom1 wrote on Tue, 10 September 2024 18:15mirek wrote on Tue, 10 September 2024 15:40Tom1 wrote on Mon, 09 September 2024 15:07A 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   |
Tom1
Messages: 1319 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.

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   |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
Tom1 wrote on Wed, 11 September 2024 11:36Mirek,
I started to have trouble seeing some of the TheIDE packages' names properly. Then I noticed that the Dark theme coloring has changed.

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 #60800 is a reply to message #60798] |
Thu, 12 September 2024 11:28   |
Tom1
Messages: 1319 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 #60802 is a reply to message #60799] |
Thu, 12 September 2024 11:45   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Thu, 12 September 2024 11:59Quote:
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   |
Tom1
Messages: 1319 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 #60807 is a reply to message #60803] |
Fri, 13 September 2024 19:42   |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
Tom1 wrote on Thu, 12 September 2024 11:48Another 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
What is in Setup/Settings? (Maybe screenshot...)
Also, TheIDE font sizes are set once on the very first start. Perhaps you started in HD and only later switched to UHD ?
[Updated on: Fri, 13 September 2024 19:44] Report message to a moderator
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60808 is a reply to message #60807] |
Fri, 13 September 2024 20:54   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Fri, 13 September 2024 20:42Tom1 wrote on Thu, 12 September 2024 11:48Another 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
What is in Setup/Settings? (Maybe screenshot...)
Also, TheIDE font sizes are set once on the very first start. Perhaps you started in HD and only later switched to UHD ?
It's entirely possible that it was mixed up on the very first start. Cannot check right now as the issue surfaced at the office. My home installation seems to work just fine. Also, I did not know that changing console font by Ctrl+Wheel is not persistent. (In the code editor it seems to be.)
I guess this can be considered solved. I will let you know next week if this is not the case once I check my office setup.
Thanks and best regards,
Tom
|
|
|
|
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60817 is a reply to message #60808] |
Mon, 16 September 2024 10:21   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Tom1 wrote on Fri, 13 September 2024 21:54mirek wrote on Fri, 13 September 2024 20:42Tom1 wrote on Thu, 12 September 2024 11:48Another 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
What is in Setup/Settings? (Maybe screenshot...)
Also, TheIDE font sizes are set once on the very first start. Perhaps you started in HD and only later switched to UHD ?
It's entirely possible that it was mixed up on the very first start. Cannot check right now as the issue surfaced at the office. My home installation seems to work just fine. Also, I did not know that changing console font by Ctrl+Wheel is not persistent. (In the code editor it seems to be.)
I guess this can be considered solved. I will let you know next week if this is not the case once I check my office setup.
Thanks and best regards,
Tom
Hi,
Settings were showing small font size for all but the 'Normal', which I had probably changed by Ctlr+Wheel. So I must have initially started in HD mode.
First I tried to fix it by using 'Restore defaults' and then 'Close'. This caused TheIDE to crash on every attempt. Then I selected the same font sizes manually and the values were successfully updated after close. So, there must be some issue with 'Restore defaults'.
Anyway, now I have the correct UHD font sizes.
Thanks and best regards,
Tom
|
|
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60823 is a reply to message #60821] |
Tue, 17 September 2024 10:43   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 17 September 2024 10:10Tom1 wrote on Mon, 16 September 2024 10:21First I tried to fix it by using 'Restore defaults' and then 'Close'. This caused TheIDE to crash on every attempt. Then I selected the same font sizes manually and the values were successfully updated after close. So, there must be some issue with 'Restore defaults'.
Tom
Should be now fixed.
Thanks!
// Tom
|
|
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60831 is a reply to message #60825] |
Wed, 18 September 2024 11:44   |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Tue, 17 September 2024 17:34Thank you mirek for all the hard work!
I have a question. In CoWork.h, line 186, etc,
void Do(Function&& f, Args&&... args) { co.Do([=]() { ret = f(args...); }); }
shouldn't it be something like
void Do(Function&& f, Args&&... args) { co.Do([=]() { ret = f(std::forward<Args>(args)...); }); }
for perfect forwarding to actually work?
Interestingly, does not work.
#include <Core/Core.h>
using namespace Upp;
CONSOLE_APP_MAIN
{
auto a = Async([](int n) -> double {
double f = 1;
for(int i = 2; i <= n; i++)
f *= i;
return f;
}, 100);
}
is compile time error with std_forward. Not sure why, but for now have to revert the change.
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60832 is a reply to message #60825] |
Wed, 18 September 2024 11:49   |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Tue, 17 September 2024 17:34
The current upp codebase works fine with std=c++20, except the warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture] issue. This can be fixed without much effort and without affecting the aimed standard of c++17. I was wondering if you would consider accepting it if I make a pull request for that.
Nope, cannot do that with C++17. Requires [=, this], which is C++20 feature. And, frankly, while [=] capturing 'this' is perhaps confusing, everybody is used to it by now so to require longer code for the same thing is at this point is kind of pointless... But when we go C++20, we shall do it anyway. In 3 years...
|
|
|
|
|
|
|
|
| Re: New release 2024 "alpha phase" [message #60838 is a reply to message #60832] |
Wed, 18 September 2024 18:08   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
mirek wrote on Wed, 18 September 2024 05:49Lance wrote on Tue, 17 September 2024 17:34
The current upp codebase works fine with std=c++20, except the warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture] issue. This can be fixed without much effort and without affecting the aimed standard of c++17. I was wondering if you would consider accepting it if I make a pull request for that.
Nope, cannot do that with C++17. Requires [=, this], which is C++20 feature. And, frankly, while [=] capturing 'this' is perhaps confusing, everybody is used to it by now so to require longer code for the same thing is at this point is kind of pointless... But when we go C++20, we shall do it anyway. In 3 years...
Thank you for the feedback. At least it doesn't affect my using c++20. For now, I will just suppress the warnings.
We can predict moving to c++20 is going to be really smooth in the future. c++23 however will break many String interfaces. That's something we won't need to worry in like 6 years
[Updated on: Wed, 18 September 2024 18:09] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Sun May 03 16:08:34 GMT+2 2026
Total time taken to generate the page: 0.01413 seconds
|