|
|
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 |
|
mirek
Messages: 14155 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 #60102 is a reply to message #60098] |
Thu, 31 August 2023 23:17 |
Oblivion
Messages: 1139 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
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Thu, 31 August 2023 23:17] Report message to a moderator
|
|
|
|
|
|
Re: U++ 2023.1 "pre-alpha" [message #60114 is a reply to message #60110] |
Tue, 05 September 2023 22:07 |
jjacksonRIAB
Messages: 225 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 |
|
mirek
Messages: 14155 Registered: November 2005
|
Ultimate Member |
|
|
jjacksonRIAB wrote on Tue, 05 September 2023 22:07Mirek,
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.2 "pre-alpha" [message #60121 is a reply to message #60098] |
Thu, 07 September 2023 22:42 |
luoganda
Messages: 205 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 |
|
mirek
Messages: 14155 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.2 "pre-alpha" [message #60126 is a reply to message #60123] |
Sat, 09 September 2023 10:49 |
luoganda
Messages: 205 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 #60131 is a reply to message #60130] |
Mon, 11 September 2023 15:38 |
Tom1
Messages: 1279 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
|
|
|
|
|
Goto Forum:
Current Time: Wed Dec 04 16:40:10 CET 2024
Total time taken to generate the page: 0.01816 seconds
|
|
|