-
-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate Properties to QList and Some Refactoring #858
Conversation
I will merge this short after the upcoming release. |
@ra3xdh Hi, this PR became a Properties migration to QList. |
982c62d
to
aceb064
Compare
there is bugs somewhere I don't find. I tested bjt noise example in latest snapshot build no problem but this PR release gives this in ngspice console I manually stop in macos because normally it run 1-2 sec.
|
I will look at this. I am planning to start to review the refactoring PRs in a few days after the release. Is only BJT-noise example failing, or all parameter sweep simulations affected? |
Probably something in |
if I open BJT.sch and BJT_swp.sch app crashed normally don't crash. somewhere in the code broken |
Bugs in component:load method for BJT.sch |
Some devices (at least Diode) use custom |
I found a fix for crash loading BTJ.sch for equations section call Props.insert method and QList sometimes moves List to another memory location and this happend p1 iterator null and not valid below code is the solution. if (Props.size() < (counts >> 1)) {
int index = std::distance(Props.begin(), p1);
Props.insert(index + 1, new Property("y", "1", true));
p1 = Props.begin() + index;
} |
finally i fixed parameter sweep. |
It's need to compare netlists from old and new versions. It seems some device entry is wrong formatted. |
How I do this? |
Save the both netlists from before/after and use some software like |
24.3
this PR
|
Yes, I see now that the last property of Transformer is not loaded. I guess all library devices may be affected. |
p=0.99 is it correct I think not |
Yes, the property name |
@ra3xdh Hi, I recently push 2 commits. fixed build natively Qt 6.8 beta 2 with MSVC(VLAs not supported) and refactoring cmake file to switch c++20 and enable warning only for debug build. Btw MSVC build not ok. I didn't test old version built with MSVC but this PR built with MSVC not working component drag or click crashed app or reload schematic also crashed app but no sense in debugger shows the crashed line maybe it's related Qt 6.8 beta 2, I'll switch 6.7.2 and looks any difference. |
Be careful with the latest C++ extensions. The Ubuntu-22.04 is not EOL and need to be supported till 2027. This distribution may not support some C++20 features. Need to check if this compiles and works using Ubuntu-22.04. But I have recently dropped support for Ubunutu-20.04 which is EOL next year.
MSVC support may be dropped. If this will work with MSYS2+GCC/Clang this will be sufficient. |
ubuntu 22.04 has gcc-11.4 and it support c++20 and can be install gcc-12.3. Maybe I will test MSVC Clang(Clang-cl). we can check qt version and it's greater than 6.7 then enable c++20 or c++17 |
- cmake files refactored for different compiler and only enable warnings for debug build. - switch c++17 to c++20 so recent Qt version support C++20.
I remove latest 2 commit and rebase with current. |
I have finished with redesign of the |
Redesign ComponentDialog::slotApplyInput
it seems everythings works fine after your PR. |
I have found another crash while testing this PR. See #845 (comment) for context. The most probably it is related to #845 and not related to new |
yes latest snapshot also has this issue and so it's not related to this PR. |
@dsm, Please apply the following patch on
|
I think ,netlist method has the same issue |
Yes, Qucsator shows warning on |
I didn't find any further problems with this PR and I am merging this. @dsm, Please stay in connection if something related will appear. |
Hi, This PR migrate Properties to QList #748 , getFirst and getLast method name in Q3PtrList to front and back so QList, std::vector etc. has front and back so this changes will reduce refactoring effort.
we should test to ensure stability of this PR.