123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <!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>
|