Sunday, February 22, 2009

CDT 6.0 M5 is Available, BTW

I've been "nose to the grindstone" since the holiday break getting our Wind River Installer out the door, twice. But the good news is that the CDT contributors have been very busy working on CDT 6.0 while I wasn't looking very hard. I have been waiting for the C/C++ IDE Package for M5 to be built. In the meantime, we do have the bits up on the CDT Galileo update site for you to try. Just download the Eclipse Platform or SDK 3.5M5 and add the following URL as an update site:

http://download.eclipse.org/tools/cdt/releases/galileo

Most people will want the "Tools" feature in the "Main" group, which will give you everything you need to work with the gnu toolchain. And yes, the features say 5.1.0, but we're tricking the API tooling with that to keep track of API changes. We'll be 6.0 when we go out the door in June.

I've actually been using CDT 6 for some technical investigations I've been doing lately, the qemu source being one of them. One of the biggest issues with the CDT that we've been fighting forever has been taking projects that have been developed without an IDE, that don't have any real structure to them, bringing them into the CDT, and having our indexer parse and create useful search information for them. And this is especially bad if we can't figure out the include paths to find the header files needed to parse properly.

One common pattern we have noticed with the include path was where all the user specified include paths were actually folders in the workspace. Everything else came from the built-in include path. At the very least, if we could search the workspace when looking for header files that were unresolved, we could probably resolve them.

Well in CDT 6.0M5, that functionality if finally there (thanks, Markus!) and it works superbly! Many of the unresolved headers I saw in this one project I was looking at, which targeted many different OS's, were magically resolved, and features like Open Definition (F3) worked great. Sure, if you have multiple header files with the same name in your project, we may pick the wrong one to resolve, and there will still be issues if you don't specify external include paths, but it's huge step forward for CDT usability.

There are other interesting things in M5, including the Debug Services Framework which has moved from the Device Debugging project to the CDT and should become our "official" debug framework over time. You'll notice the major issue we have with having two debug frameworks when you go to launch (double the launch configs :( ), but we are working on a solution to that.

We're still making great improvements to the CDT as we go. Most of them are under the hood as the feature set we have is working quite well already. And there are still things to clean up, like our managed build system and the underlying build model and the need to integrate that with our debug models. But I know I'm a happy CDT customer myself, and I hope you get a chance to try out CDT 6.0 M5 and give us your feedback.

11 comments:

  1. Why doesn't CDT publish the New and Noteworthy like Platform and other project do?

    ReplyDelete
  2. Because no one has the time to do it.

    ReplyDelete
  3. We don't have new and noteworthy for milestones but it would be good to do one for the final release. We need to brag about all the cool new features in CDT 6!

    ReplyDelete
  4. Also a simple ChangeLog would be appreciated (is easy to organize other people time :) ).

    ReplyDelete
  5. Hi Doug,

    OT post:

    Not sure if you are interested, but the g++ is used as part of Rtools.exe. I use this for the build system on the CDT and it works well.

    http://www.murdoch-sutherland.com/Rtools/index.html

    regards,

    andrew.

    ReplyDelete
  6. I just have tried it today, but the indexer stop working (even disabling and enabling it again, code completion didn't worked). Maybe because I reused an existing project from the previous workspace?. I have downgraded to previous CDT and eclipse version and code completion works again.

    ReplyDelete
  7. Just tried the indexing feature in Galileo M-7. It rocks!. I was having 3 projects in my workspace and the main project has reference to other 2 project. I just defined the "Project References" for the main project and rebuild the index. I didn't see any warning for unresolved includes.

    Thanks for this great feature. I am waiting for "Static Analysis in CDT" feature. Will it be available in CDT 6.0?

    ReplyDelete
  8. [quote]I am waiting for "Static Analysis in CDT" feature.[/quote]
    You mean error checking while typing the code?
    This is the main reason I use Visual C++ 2010 beta.
    I was amazed to see that it exists and after that i wondered why I couldn't find another IDE which could do the same.
    Eclipse is not capable of this right now, am I wrong?

    ReplyDelete
  9. JDT can do it, but it's still a long term plan for CDT. The reason you don't see it is because it's hard to implement. Given the CDT is an open source project that generally doesn't compete with Visual Studio, no one (i.e. no company) is really working on it either.

    ReplyDelete
  10. It would also be great if you could change the hover text limit in debug mode since it truncates the variable info to 100 chars and misses the actual content of the variable very often.

    ReplyDelete
  11. Very cool -

    I also do a lot of work importing previously 'unstructured' projects into eclipse. One good example is the Linux kernel, or GNU Radio.

    Also, the new built-in support for cross-compiler projects is a bonus, although I haven't yet had time to try it out directly.

    Thanks Doug et al ;-)

    ReplyDelete