What's been happening with AJDT lately? It may seem like the AJDT team has been quiet for the last little while. But actually, we've been quite busy revamping the internals of AJDT. We've been optimizing the build, especially in multi-project settings. (See bugs 249216, 246476, 245566, 243376, and 249881. http://www.eclipse.org/ajdt/bugs.php )
We are therefore pleased to announce the AJDT 1.6.1 release candidate. You can grab it from the update site: http://download.eclipse.org/tools/ajdt/34/dev/update Many of you will find your builds getting a bit more peppy after you upgrade. Details below... As always (but in particular before a release) we appreciate community feedback. If you want to contribute to making AJDT and AspectJ better, please upgrade to the release candidate and send any questions, comments or bugs to one of these mailing lists or to create a bug on bugzilla ( http://bugs.eclipse.org ). Now, the details of what's new in this release: *Crosscutting model enhancements* In this release, AJDT's internal representation of the crosscutting model has been made redundant and has been removed. The old way of doing things was that AJDT maintained its own copy of the model AspectJ was using internally for builds. And it was recreated from scratch after each successful build (both full and incremental builds, even if there were no changes!). The AJDT copy was more suitable for AJDT to work with when creating markers, populating views, etc. However, with some changes to AspectJ, the compiler's internal model has been modified to suit AJDT's needs directly--thereby removing any need for a duplicate model and saving memory and computation. There is a significant speed-up and memory-use reduction here. I will post numbers with the official release. Unfortunately, in order to implement this improvement, we had to disable the crosscutting comparisons view, because it requires AJDT's specific crosscutting model. Our understanding is that this view was not used often, but if there is enough community interest, we will re-enable the feature. Our goal is to optimize for the common use case - and we believe that 90% of the time users will be doing quick edit/save/build cycles, rather than using views like the crosscutting comparisons view. *Incremental build optimizations* The second major improvement in this release has been improved performance during incremental builds. There is now more fine-grained communication between AJDT and AspectJ before incremental builds. Previously AspectJ did comprehensive analysis of the classpath, inpath, aspectpath, etc.--in order to determine what needed to be compiled. Even though AJDT already has precise knowledge of what the user had changed, there was no communications interface between AJDT and the compiler to transfer this information. Now before an incremental build, AJDT instead provides the compiler with specific information about what state has changed since the last successful build. And the compiler will then only do appropriate analysis. This leads to a significant speed up for incremental builds (SIGNIFICANT!). I will post numbers later. *Multi-threaded builds* The final major improvement in this release is a multi-threaded build. Now, the essential part of the build (compilation) occurs in a single thread, and the more peripheral post build jobs (updating of gutter markers, and displaying error and warning messages) occur in separate threads. This frees the UI from sluggish builds and gives the user more control over the workspace. We hope you find these improvements worthwhile. Please contact us with any bugs so that we can improve AJDT for 1.6.1 final. sincerely, the AJDT team _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
