CLion 2018.2 EAP: argument selection defects inspection

Hi,

Please welcome CLion 2018.2 EAP (build 182.3569.10)!

As usual, a patch-update will be available shortly for those using the previous EAP build, and you can also use Toolbox app or snap packages (in the case of Ubuntu) to get this build. No license is required and the build is free to use, but it will expire within 30 days of the build date.

Download CLion 2018.2 EAP

New inspection: argument selection defects

With this new inspection CLion can detect situations when wrong arguments are passed to a function call (for example, the wrong order of the arguments of the same type). The algorithm relies on various heuristics and some description can be found here. If argument and parameter names are meaningful, the results can be really impressive and useful:
arguments_swap

The inspection settings are located in Settings/Preferences | Editor | Inspections | C/C++ | General | Argument selection defects:
arguments_settings

Other changes

Besides, this build brings the following improvements:

  • It fixes the issue with failing build with WSL due to whitespace in path.
  • It bundles CMake v3.12.
  • If the compilation database for the project you try to open in CLion includes some incorrect compile command, CLion now reports a corresponding error.

It’s also worth mentioning that previous EAP build enabled clangd as an additional C++ language engine in the experimental mode and your feedback and issue reports are very important at this stage.

Full release notes are available by the link.

Your CLion Team
JetBrains
The Drive to Develop

This entry was posted in Early Access Preview and tagged , , , . Bookmark the permalink.

11 Responses to CLion 2018.2 EAP: argument selection defects inspection

  1. Helge Penne says:

    There are lots of bugs, freezes and annoyances in CLion that are not getting fixed. I see little progress on this in the EAP builds. Bugs I’ve reported are have not been addressed. Instead, you keep adding new features. The product is now almost unusable for us due to freezes and bad performance. When to do plan to seriously address this? Should we keep waiting, or give up and move to some other IDE?

    • Victor Sergienko says:

      Curious, the critical bugs and slowdowns I reported were addressed in about 6 months.

      Of course, I reported some nice-to-haves which were never touched too, even though some of them seem to be easy and useful. But I honestly say those are really second priority. Well, maybe except the CPP-5766 feature request AKA OC-9763 (and 118 more), which is darn hard.

      (I’m not affiliated with JetBrains in any way)

      Are you sure you reported the problems clearly enough? This comment is very emotional, but lacks actual information – what problems, what issue IDs, did you report the slowdowns with a thread dumps? If the reports share the same style, they won’t be very helpful.

      A good ways to attract attention to issues that sometimes worked for me are to mention issue IDs here to get them more upvotes in the tracker; mention them on StackOverflow, if there is a relevant question; tweet to @clion_ide.

      • Helge Penne says:

        I’ve reported with full stack dumps. I have 60+ stack dumps just from yesterday on my machine (which is quite powerful by the way). Unfortunately, I can’t send them all because rules here dictate that I need to read through them all before I can send them.

        On the other hand, I think the CLion team has enough of them already. A quick search on the bug tracker shows 135 open CLion “freeze” bugs. Searching for “hangs” gets you 92 more hits in state “Open”. That is a lot, and seems like a sign of a product with quality problems.

        Mine are:
        https://youtrack.jetbrains.com/issue/CPP-13330
        https://youtrack.jetbrains.com/issue/CPP-13127

        We have had to skip 2018.1 and revert to 2017.3 due to these issues.

        That’s the important stuff. Then there are annoyances and half baked things like this that really need to be fixed:
        https://youtrack.jetbrains.com/issue/CPP-9623
        https://youtrack.jetbrains.com/issue/CPP-13265

        There is more.

        I like CLion a lot. It has been a great tool. However, I see signs that there is now too much focus on new features, when there should be more focus on fixing the bugs and annoyances that have been accumulating. I’m not blaming the developers. This is a matter of prioritizing the backlog.

        • Anastasia Kazakova says:

          Regarding the prioritizing, nearly half of the team efforts are now spend constantly on performance and freeze issues, we have a huge plan how to solve them and we work in this direction step by step. Unfortunately, the process can’t be finished soon and this will require some more time. But I can assure you that this has one of the highest priority for us now.

        • Anastasia Kazakova says:

          Regarding the particular issues, I hope the team will update soon in the comments to the issues, I’ve pinged them. Thanks.

        • Victor Sergienko says:

          Upvoted your issues.

          I got it – it’s 2018.1. I also had catastrophic freezes in 2018.1. I too had to roll back to 2017 at certain point, and made another pass as VSCode (didn’t like it without a working call hierarchy view for C++).

          Forgot about it because I’m on 2018.2 EAP, even though I have a license, because I’m curious and like new shiny stuff.

          In 2018.2 EAP, freezes were fixed! Well, for my projects. I’m still not happy about completion speed (I still type .c_str() faster then the completion pops up), and fans still kick up for a minute when I change a method signature, but this doesn’t cause freezes or major slowdowns.

          • Anastasia Kazakova says:

            Glad to know that 2018.2 EAP works good for you! We’ll continue our work in this direction in further versions, but it’s always good to know it works for our users.

      • Peter says:

        Just look at this list of code resolving issues and the creation dates of some of them:

        https://youtrack.jetbrains.com/issues/CPP?p=0&q=State:%20Submitted,%20Open,%20Reopened,%20%7BIn%20Progress%7D,%20%7BWait%20for%20Reply%7D%20Type:%20Bug%20Subsystem:%20%7BCode:%20Resolving%7D%20sort%20by:%20Votes&f=false

        Yes, some of the issues can can be considered as duplicates, but still – the amount is huge.

        Compare this list with what is done for this EAP. I can swap tens of code inspection/generation features for one fixed code resolving/navigation related issue.

        Do I really need to to fill the Internet with complaints about this and that to make things going?

        • Anastasia Kazakova says:

          From one side you are right – the amount is huge. From another, many of these are actually duplicates which might not be visible from the first look. Some of these are also outdated, but we just didn’t get to the point of rechecking them to update the status.

          Talking about report date, while indeed some issues exist for a long time (and we sincerely apologise for that), we try to avoid fixing issues w/o any order, just selecting by date. Our approach now is a bit more structured – we rewrite the logical part of the parser thus fixing several issues in one place.

          In the end, I just want to assure you that accuracy and correctness of the parser is our top priority, along with UI freezes fixes, which mean we put huge team efforts into it. But there are still some people left in the team who known other parts of the product better and they keep doing other things – adding dynamic analysis to CLion, implementing additional project models, etc.

    • Roman says:

      Clion is indeed unusable on slow PCs like laptops. But with high-end desktop it works quite well even on quite large projects.

    • Anastasia Kazakova says:

      We do address lots of issues with every build. And the performance/UI freezes as well. Quite many are already in 2018.2 EAP builds.
      https://youtrack.jetbrains.com/issue/CPP-13127 – please see my question in comments
      the others two – I’ve pinged the team to find out our plans on them. We’ll update in the tickets.

Leave a Reply

Your email address will not be published. Required fields are marked *