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 » U++ 2023.2 "pre-alpha"
U++ 2023.2 "pre-alpha" [message #60098] Tue, 29 August 2023 14:29 Go to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Hi,

having reached end of my personal todo whishlist for theide, I thing it a good opportunity to make another release. Please make a note here if you feel like there is something important to FIX for 2023.1.

What is new so far:

ide:

- New C++ sources indexer mode - previoualy, after each file change, all depended files were reindexed. That often resulted in very heavy CPU load after each header change. In the new mode, only the changed file is being reindexed - while less accurate, real problems in this new mode are actually rare and it makes for much more responsive experience using theide.

- Many Assist cornercases fixed

- Result lists of Find in Files and Usage now have "Replace" button which effectively brings the "rename the entity" functionality (e.g. to rename method, find its Usage and then use Replace)

- Bottom pane was redesigned allowing for more Find in Files and Usage result lists.

- Many improvements in source comparsions
"Show git history of file" now allows for choosing branches
"Compare with" now suggests files with the same name from other upp nests
"Compare directories" now allows comparison with git commit

- Various windows like comparisons are now non-modal. It is now e.g. possible to open multiple e.g. Directory comparison windows

- Merge nests function got ability to specify target folder. Default mode is now to "import" packages missing in the first nest to "imported" subfolder of the first nest. The idea is to create an assembly of first nest and its "imported" subfolder to have imported packages fixed, while still allowing the use of the very same packages from original sources with another assembly.

- Visual improvements, UHD versions of many icons

- C++ Language standard for assist (e.g. C++ 17) can now be selected in Assist setup

- Flow breaking commands (return, break, continue, goto, co_return, throw) now have specific syntax highlighting

- TheIDE now displays out-of-page function/class headers in the first line of editor. This is helpful for quick orientation when jumping into long function body.

- External changes for files now getting proper undo records (previously undo history was lost when file was edited outside of ide session)

- Repo sync git pull mode changed to "merge" (from "rebase")

- U++ Builder now defines bmGIT_HASH (with git hash of first nests HEAD, if it is git repo).

umk:

- -h option to automatically download missing packages from UppHub if possible

RichEdit, RichText:

- "Paste without formatting"
- Clipboard 'HTML format' support
- GetPlainText allow_tabs parameter; CtrlLib Prompt now sometimes uses '\t' to separate table cells.

Draw, CtrlLib:

- StdDisplay (if CtrlLib is present) now supports \1 qtf escape code

Core:

- CParser::ReadDoubleNoE (to ignore E part of double)
- CParser::ReadIdh (with '-' in id), RichText: EncodeHTML strikeout support

[Updated on: Tue, 05 September 2023 13:16]

Report message to a moderator

Re: U++ 2023.1 "pre-alpha" [message #60100 is a reply to message #60098] Thu, 31 August 2023 18:09 Go to previous messageGo to next message
omari is currently offline  omari
Messages: 265
Registered: March 2010
Experienced Member
You mean 2023.2

please consider investigating this issue: PostgreSql does not handle BOOL correctly

and thise feature:[FEATURE REQUEST] Add Jsonize() to S_ structs

Many thanks!


regards
omari.
icon14.gif  Re: U++ 2023.1 "pre-alpha" [message #60101 is a reply to message #60098] Thu, 31 August 2023 20:22 Go to previous messageGo to next message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
Very well done Mirek.

My personal wishlist right now is only to fix the bug that causes TheIDE to occasionally erase the entire undo history and go back to the top of an edited document when building a program. It sometimes happens 10-15 times during a session now. It's making me want to use a separate editor since I can't confidently test new changes to a program without worrying that they'll become permanent because a bug kills the undo buffer.
Re: U++ 2023.1 "pre-alpha" [message #60102 is a reply to message #60098] Thu, 31 August 2023 23:17 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1093
Registered: August 2007
Senior Contributor
Quote:
My personal wishlist right now is only to fix the bug that causes TheIDE to occasionally erase the entire undo history and go back to the top of an edited document when building a program. It sometimes happens 10-15 times during a session now. It's making me want to use a separate editor since I can't confidently test new changes to a program without worrying that they'll become permanent because a bug kills the undo buffer.


I agree. This is probably the most annoying, persistent and hard to catch bug in TheIDE.
It happens randomly (from the user POV, at least) when build starts and sometimes leave you with a half undo-ed, broken source code.


Best regards,
Oblivion


[Updated on: Thu, 31 August 2023 23:17]

Report message to a moderator

Re: U++ 2023.1 "pre-alpha" [message #60104 is a reply to message #60101] Sat, 02 September 2023 21:20 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1076
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello jjacksonRIAB,

jjacksonRIAB wrote on Thu, 31 August 2023 20:22
Very well done Mirek.

My personal wishlist right now is only to fix the bug that causes TheIDE to occasionally erase the entire undo history and go back to the top of an edited document when building a program. It sometimes happens 10-15 times during a session now. It's making me want to use a separate editor since I can't confidently test new changes to a program without worrying that they'll become permanent because a bug kills the undo buffer.


The occasional undo history overwrites was fixed by this commit. It fixes the issue when you open licenses and statistics dialog. This will be the part of the next release. If you can provide reproduction scenario we will be grateful. You can also look for "ClearClipboard()" and "AppendClipboard()" usage within U++ code base and especially TheIDE (ide packages) and tell us if you are using one of options that are calling this function.

-------
Mirek good work on the next release. It should be 2023.2 not 2023.1.

Klugier


U++ - one framework to rule them all.
Re: U++ 2023.1 "pre-alpha" [message #60105 is a reply to message #60104] Sun, 03 September 2023 00:54 Go to previous messageGo to next message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
Klugier wrote on Sat, 02 September 2023 21:20
Hello jjacksonRIAB,

jjacksonRIAB wrote on Thu, 31 August 2023 20:22
Very well done Mirek.

My personal wishlist right now is only to fix the bug that causes TheIDE to occasionally erase the entire undo history and go back to the top of an edited document when building a program. It sometimes happens 10-15 times during a session now. It's making me want to use a separate editor since I can't confidently test new changes to a program without worrying that they'll become permanent because a bug kills the undo buffer.


The occasional undo history overwrites was fixed by this commit. It fixes the issue when you open licenses and statistics dialog. This will be the part of the next release. If you can provide reproduction scenario we will be grateful. You can also look for "ClearClipboard()" and "AppendClipboard()" usage within U++ code base and especially TheIDE (ide packages) and tell us if you are using one of options that are calling this function.

-------
Mirek good work on the next release. It should be 2023.2 not 2023.1.

Klugier


Klugier,
I think we're talking about two different issues. I noticed that the stats dialog was fixed so it doesn't overwrite the copy/paste buffer without pressing the button now, thanks for doing that.
Re: U++ 2023.1 "pre-alpha" [message #60110 is a reply to message #60101] Tue, 05 September 2023 13:19 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
jjacksonRIAB wrote on Thu, 31 August 2023 20:22
Very well done Mirek.

My personal wishlist right now is only to fix the bug that causes TheIDE to occasionally erase the entire undo history and go back to the top of an edited document when building a program. It sometimes happens 10-15 times during a session now. It's making me want to use a separate editor since I can't confidently test new changes to a program without worrying that they'll become permanent because a bug kills the undo buffer.


Well, I would be happy to help, but it does not happen to me AT ALL.

Which means that you must be doing something that I am not. Any clues?

Mirek
Re: U++ 2023.1 "pre-alpha" [message #60114 is a reply to message #60110] Tue, 05 September 2023 22:07 Go to previous messageGo to next message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
Mirek,

It happens to me in Linux Mint, Arch Linux and FreeBSD with two different computers, three different filesystems (ext4, ext3, zfs). I don't use Windows much anymore so I cannot confirm its existence there. I don't see what I could be doing different, I just press build and after the build is done boom - edit window refreshes, latest changes disappear, undo/redo buffer is erased, cursor is moved to the top of the document. This happens with both clang and gcc. I cannot reproduce it on fresh projects, it appears to manifest on larger projects particularly after theIDE has been open for a while and when quick changes to a document have been made in succession.

It's as if theIDE is losing sync with the files/timestamps on disk, letting you continue working on an unsynced ghost copy of the file and then reloading the last saved version during build but I cannot be entirely sure what's going on, being unable to reliably reproduce it. I don't know if any of this information helps.

I kind of wonder whether the autosave routine is failing to flush to disk or losing track of the handles and timestamps it is observing.

[Updated on: Tue, 05 September 2023 22:25]

Report message to a moderator

Re: U++ 2023.1 "pre-alpha" [message #60116 is a reply to message #60114] Wed, 06 September 2023 14:16 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
jjacksonRIAB wrote on Tue, 05 September 2023 22:07
Mirek,

It happens to me in Linux Mint, Arch Linux and FreeBSD with two different computers, three different filesystems (ext4, ext3, zfs). I don't use Windows much anymore so I cannot confirm its existence there. I don't see what I could be doing different, I just press build and after the build is done boom - edit window refreshes, latest changes disappear, undo/redo buffer is erased, cursor is moved to the top of the document. This happens with both clang and gcc. I cannot reproduce it on fresh projects, it appears to manifest on larger projects particularly after theIDE has been open for a while and when quick changes to a document have been made in succession.

It's as if theIDE is losing sync with the files/timestamps on disk, letting you continue working on an unsynced ghost copy of the file and then reloading the last saved version during build but I cannot be entirely sure what's going on, being unable to reliably reproduce it. I don't know if any of this information helps.

I kind of wonder whether the autosave routine is failing to flush to disk or losing track of the handles and timestamps it is observing.


Is this a new problem with current master or was it doing that in say 2022 versions too? (There is a new logic intended to add unco records when files changes outside of theide which could be related, but it is just in master, since ~ 6/2023).

Do you edit files after starting the build?

To what point files revert?

Mirek
Re: U++ 2023.1 "pre-alpha" [message #60117 is a reply to message #60116] Wed, 06 September 2023 15:11 Go to previous messageGo to next message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
mirek wrote on Wed, 06 September 2023 14:16

Is this a new problem with current master or was it doing that in say 2022 versions too? (There is a new logic intended to add unco records when files changes outside of theide which could be related, but it is just in master, since ~ 6/2023).


Well that's why I'm a bit confused. I brought it up in 2022
https://www.ultimatepp.org/forums/index.php?t=msg&goto=5 8303&#msg_58303
and you said you have the same problem Laughing

It's never been solved and it's gotten more frequent since theIDE started using a more resources to accommodate the new autocomplete.

Quote:

Do you edit files after starting the build?


Nope, it typically happens right after the build is finished. I can just leave it there doing nothing and right after build has completed I experience an immediate loss of changes - and the changes weren't built into the program, if one was built at all. It usually fails to build because I'm making a fixing change which gets lost.

Quote:

To what point files revert?


That one is harder to quantify because I don't know when the last autosave occurred or how deep the undo buffer has gotten. I noticed theide is set up to reload on losing focus so I'd have to count things like that to know when it stopped tracking.

So all I'm left with is mainly frustrating symptoms and guesses.
Re: U++ 2023.1 "pre-alpha" [message #60119 is a reply to message #60116] Thu, 07 September 2023 06:54 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1093
Registered: August 2007
Senior Contributor
Hi Mirek,

This is not a new issue. To my knowledge, the problem is there since at least ~2020.
The only two reliable patterns I get is that (1) it happens when I start the build, but this buggy behavior seems completely random, so I can't predict exactly when (on which build, I mean) it'll happen. (2) This happens when theIDE is running for a long time.

The editor sometimes removes the last changes to the source code completely, or in some cases removes the changes partially and renders the source code in a broken and truncated state.

This happens on Linux.

Best regards,

Oblivion


[Updated on: Thu, 07 September 2023 07:11]

Report message to a moderator

Re: U++ 2023.1 "pre-alpha" [message #60120 is a reply to message #60119] Thu, 07 September 2023 08:36 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
I think I have found possible culprit, I mean error that is quite consistent with what we see:

https://github.com/ultimatepp/ultimatepp/commit/b16e199ae61a 3290d5e4cb53206d502eb98c4700

Please recompile theide and check...

Mirek
Re: U++ 2023.2 "pre-alpha" [message #60121 is a reply to message #60098] Thu, 07 September 2023 22:42 Go to previous messageGo to next message
luoganda is currently offline  luoganda
Messages: 196
Registered: November 2016
Experienced Member
...this is somehow an extension to this post.

Quote:
- New C++ sources indexer mode - previoualy, after each file change, all depended files were reindexed. That often resulted in very heavy CPU load after each header change. In the new mode, only the changed file is being reindexed - while less accurate, real problems in this new mode are actually rare and it makes for much more responsive experience using theide.

I think i see your point here, altough the thing is far from perfect(checked both included clang on w7 and msbt17 and no go).
But i think you forgot to see both point of view:
* from developing upp point of view it's probably better(since new mode recompiles "needed" - mostly developing "system" header sources faster),
* from consumer point of view(just using the ide out of the box for a quick project) - original is magic - it works!
Speed even on slow computers is not bad at all.
It works out of the box also what concerns Navigator window - it affects it. In an attached img it's obvious what i mean,
this is why i have proposed Navwnd in the first place(you don't get that from Navigator bar) - in the pic is what i mean with "panoramic view"(example is simple Ctrl).
With "panoramic view" here - i mean having all parsed structs/etc handy at hand all the time(eg to quickly check it's sources,usage,etc).
Of course - new indexer could use on demand "TriggerIndexer" to show that Ctrl thing - but i think this is out of the scope of this msg.

With this i incline that original and new modes of indexer should be selectable in Settings,
original mode is a must for people who want: "do it's thing at opening project and then just use it",
for "consumer" usage - this will always be better(from just using theide - also for just a quick project).
Even on old computer like mine, original indexer is pretty fast(from "consumer" point of view)
mostly doing it's thing when a project is opened(with this i mostly mean constant system headers), more problems what concerns speed are quite slow compilers.
(in my oppinion c++11 is an absolute must - all new features c++23/etc should be optimized to not become an bloatWare).

Note: this was written after testing v16969.

By the way, personally - i don't know why borland(now embarcadero) has
used new llvm infrastructure - because old bcc compiler with it's turbolinker was quite fast.

By the way2:
where is an example(or doc) using customCompiler
in BuilderSettings since i once used it and it worked out of the box?

[Updated on: Thu, 07 September 2023 23:15]

Report message to a moderator

Re: U++ 2023.2 "pre-alpha" [message #60123 is a reply to message #60121] Fri, 08 September 2023 08:58 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
luoganda wrote on Thu, 07 September 2023 22:42
...this is somehow an extension to this post.

Quote:
- New C++ sources indexer mode - previoualy, after each file change, all depended files were reindexed. That often resulted in very heavy CPU load after each header change. In the new mode, only the changed file is being reindexed - while less accurate, real problems in this new mode are actually rare and it makes for much more responsive experience using theide.

I think i see your point here, altough the thing is far from perfect(checked both included clang on w7 and msbt17 and no go).
But i think you forgot to see both point of view:
* from developing upp point of view it's probably better(since new mode recompiles "needed" - mostly developing "system" header sources faster),
* from consumer point of view(just using the ide out of the box for a quick project) - original is magic - it works!


Now I am not sure whether whether you are speaking about pre-libclang homegrown parser or about difference between 2023.1 and 2023.2. If about later, I can tell you that from consumer point of view, "precise behaviour" was problematic - any change to deep header in large project choked CPU for minute. Pretty bad if you edit header and source simultanously.


Quote:

With this i incline that original and new modes of indexer should be selectable in Settings,


If you are speaking about new indexer mode introduced since 2023.1, the yes, it is selectable.

Quote:

original mode is a must for people who want: "do it's thing at opening project and then just use it",


But it does not seem so... Maintaining both old heuristic home-brew parser and libclang is far beyond our resources, sorry. libclang provides some new features that I find quite essential (as in "how could I live without Usage for so long"), so there is no way back.

I am more interested with users that have 12+ core CPUs and 32+GB of RAM (e.g. "me")...
Re: U++ 2023.1 "pre-alpha" [message #60124 is a reply to message #60120] Fri, 08 September 2023 09:01 Go to previous messageGo to next message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
mirek wrote on Thu, 07 September 2023 08:36
I think I have found possible culprit, I mean error that is quite consistent with what we see:

https://github.com/ultimatepp/ultimatepp/commit/b16e199ae61a 3290d5e4cb53206d502eb98c4700

Please recompile theide and check...

Mirek


I've been trying it for a day and no problems to report yet. Will let you know if that changes. Thanks, Mirek!
Re: U++ 2023.2 "pre-alpha" [message #60126 is a reply to message #60123] Sat, 09 September 2023 10:49 Go to previous messageGo to next message
luoganda is currently offline  luoganda
Messages: 196
Registered: November 2016
Experienced Member
Quote:
Now I am not sure whether whether you are speaking about pre-libclang homegrown parser or about difference between 2023.1 and 2023.2.

I meant pre-clang(homegrown) parser - since it's probably the only one who had "panoramic view" of all classes in Navwnd at hand all the time.

I tested latest upp-win-16974 on w7 - both clang and msbt17 and no go.

12+ cores?
hah, if anything does not work well with 4 - you can throw it away right away...

Ok, if there will be changes about this i'll post it in TheIDE forum.

[Updated on: Sun, 10 September 2023 10:07]

Report message to a moderator

Re: U++ 2023.2 "pre-alpha" [message #60130 is a reply to message #60098] Mon, 11 September 2023 15:33 Go to previous messageGo to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
Hi Mirek!

Looks good. Smile

Can you change the 'Main configuration' drop list to not grab keyboard focus. After changing the Main configuration, trying to start compiling with F7 will not work until I click the code editor area. This issue was introduced in 2023.1, I think, but I discovered it only after release...

Best regards,

Tom
Re: U++ 2023.2 "pre-alpha" [message #60131 is a reply to message #60130] Mon, 11 September 2023 15:38 Go to previous messageGo to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
And another thing...

When using "Show git history for file..." for "plugin/tif/tifupp.cpp" and comparing the previous and current version, very large region of code seems to be changed at the first glance. However, in reality, the comparison function does not match the lines very well and there are just few changes to display. Please take a look.

Best regards,

Tom

Re: U++ 2023.2 "pre-alpha" [message #60132 is a reply to message #60098] Mon, 11 September 2023 20:00 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 114
Registered: April 2006
Location: Czech Republic
Experienced Member
Hi,

When I execute TheIde from the cmd, I can see
/usr/bin/valgrind
output when I exit TheIde.

OS: Ubuntu 20.04

BR, Radek
Re: U++ 2023.1 "pre-alpha" [message #60135 is a reply to message #60119] Wed, 13 September 2023 09:13 Go to previous messageGo to previous message
jjacksonRIAB is currently offline  jjacksonRIAB
Messages: 220
Registered: June 2011
Experienced Member
Oblivion,

It looks like Mirek really squashed it this time with his latest bugfix. I've been running it for several days now without a single issue but it would be nice to have a second confirmation when you have time.
Previous Topic: ide: Flow breaking statements now have different highlighting
Next Topic: ide: Now showing out of page function / class headers
Goto Forum:
  


Current Time: Mon Apr 29 05:15:58 CEST 2024

Total time taken to generate the page: 0.02427 seconds