| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <html> <head> |
| <title>AspectJ 1.6.2 Readme</title> |
| <style type="text/css"> |
| <!-- |
| P { margin-left: 20px; } |
| PRE { margin-left: 20px; } |
| LI { margin-left: 20px; } |
| H4 { margin-left: 20px; } |
| H3 { margin-left: 10px; } |
| --> |
| </style> |
| </head> |
| |
| <body> |
| <div align="right"><small> |
| © Copyright 2008 Contributors. |
| All rights reserved. |
| </small></div> |
| |
| <h1>AspectJ 1.6.2 Readme</h1> |
| |
| <p>The main theme of AspectJ1.6.2 was improved IDE incremental performance and a number of changes |
| have gone in to improve how AspectJ and AJDT communicate - greatly reducing the time taken |
| to perform an incremental compile (more details below). 1.6.2 also includes a number of fixes |
| and enhancements covering areas such as: |
| <ul> |
| <li>better support for generics and intertype declarations |
| <li>better support for annotation style syntax |
| <li>improvements to ajdoc |
| <li>bringing the AspectJ structure model more in line with the JDT model |
| </ul> |
| <p>Many thanks to all the users that helped diagnose problems, provide testcases and contribute fixes. In particular: |
| <ul> |
| <li>Dave Whittaker - for generics and intertype declaration testing and testcases |
| <li>Jason Naylor, Arturo Salazar - for ajdoc testcases, fixes and design input |
| <li>Andrew Eisenberg - for helping shape the AJDT/AspectJ interface and improving incremental |
| </ul> |
| |
| <p>The complete list of issues resolved for AspectJ 1.6.2 (more than 60) can be found with |
| this bugzilla query: |
| <ul> |
| <li><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.6.2&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Bugs resolved</a> |
| </ul> |
| |
| <hr> |
| |
| <h2>Incremental compilation (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=247742">bug 247742</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=245566">bug 245566</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=243376">bug 243376</a>)</h2> |
| |
| <p>Two main changes in this area. |
| <ul> |
| <li>Better communication between AJDT and AspectJ. The interface between the two has been modified so that AJDT can give more input |
| to AspectJ about what needs to be done for an incremental compile, rather than having AspectJ discover it each time. |
| <li>Structure model changes. The AspectJ structure model (of types in a project and the weaving amongst them) allows handles to be created |
| for every node, as a lightweight reference to the elements of the model. These handles were similar to those that JDT uses for references to |
| elements of a project but not identical. Many many fixes have gone in to bring the handle formats closer and closer. For example including src folders |
| as elements in the AspectJ model and using the fully correct set of JDT delimiters throughout each handle. This means there is no longer an expensive |
| transformation cost in going from an AspectJ element to its related JDT element and no need for AJDT to maintain a more JDT like version of the |
| AspectJ structure model. The imminent development builds of AJDT will utilise these changes. |
| </ul> |
| |
| <p><i>What difference does it make?</i> |
| <p>For every kind of build there are two numbers to take into account. Firstly there is the time spent in the compiler (time spent compiling and weaving), |
| secondly there is the time spent in AJDT (time spent communicating what happened back to the user via the problems view, gutter annotations). Values |
| for these times can be seen by opening the 'AJDT Event Trace View' in eclipse. The changes within AspectJ obviously effect the time spent in the compiler |
| and that is described as 'time spent in AJDE' within the event trace view (AJDE being the compiler wrapper invoked by AJDT). |
| <p>For a 1000 source file AspectJ project, the times spent in AJDE have changed as follows for a single whitespace change and save operation: |
| <ul> |
| <li>For a sourcefile unaffected by aspects. Was 1828ms, now 75ms. |
| <li>For a sourcefile affected by some advice. Was 1844ms, now 90ms. |
| <li>For a sourcefile affected by lots of advice. Was 1937ms, now 188ms. |
| </ul> |
| <p>The AspectJ changes are done to support this, but we are still bedding them down in AJDT. If you want to see numbers like those above you need to |
| install the latest AJDT dev builds for Eclipse 3.4 (an AJDT 1.6.1 dev build from the dev update site: http://download.eclipse.org/tools/ajdt/34/dev/update ) |
| and then after starting Eclipse, select 'Window>Preferences' and in the AspectJ tab select 'Incremental Compiler Optimizations'. Let us know how you get |
| on! When it has had enough testing it will be made the default and then is likely to be back ported to Eclipse 3.3 AJDT. |
| <p> |
| <hr> |
| <!-- ============================== --> |
| </body> |
| </html> |