- Enhanced structure model support.
- *Incremental* structure model support written and tested (currently switched off, see incModelTests.xml)
- -showWeaveInfo compiler option
- existence of a 'runtimetest' surfaced through relationships
- UI can determine if errors/warnings came from DEOWs.
- Code to enable type mungers to remember source locations written (currently switched off)
Lazy instantiation of thisJoinPoint
Speed-ups of 10-100X are measured even when running a small test case with minimal GC issues.
The actual feature implemented is that thisJoinPoint objects are only created just before calling the method for advice that requires them. To take advantage of this feature you must use an if PCD or some other dynamic test that occurs in the PCD not the advice body to guard the expensive creation of the thisJoinPoint object.
-XlazyTjp flag must be passed to compiler to enable this feature.
If any around advice is present on the joinpoint then lazy instantiation
will be disabled. An Xlint warning will be displayed in this case.
As a related optimization, several helper methods were added to
Factory.makeJP to reduce the code size when thisJoinPoint is used.
38717: ".lst" file parsing errors should include sourceline information
- Fixed with George. ".lst" file errors now have proper source locations that the IDEs can seek (fyi no line info, just file info).
------
40194: error handling during build config parsing
- Fixed with George. IDEs now report ".lst" file parsing errors.
This problem occurred when a command line compile did not specify a "-classpath" option. In that case BuildArgParser loaded System.getProperty("java.class.path"). However, in the launch script aspectjtools.jar is already added to the VM's classpath. We remove all occurrences of "aspectjtools.jar" from the detected classpath. This should enable bootstrapping ajc.
- special-casing -help to avoid printing usage twice
- guarding usage against loading eclipse message,
which it did if called before some instance loaded the
bundle (which should probably be loaded in a
static initializer)
- XLint handled in two if legs?
- corrected error messages
- pushed handling of -incremental down
- using handler rather than printing to System.out (per !!! comment)
- permitting both .zip and .jar suffixes in
outjar, injar, and aspectpath
- requires sourceroots to be readable
- added incremental and incrementalFile
(even though caller should handle?)
- did not remove options no longer supported in 1.1?
(bootclasspath and extdirs)