diff options
author | wisberg <wisberg> | 2003-03-13 18:19:28 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2003-03-13 18:19:28 +0000 |
commit | 21f9d5a71fa19792e0268a97955efdb8bf5d7916 (patch) | |
tree | 6903feda7cfcd180719dd9864465a3e8d743ad65 | |
parent | 8d24b9102691a3cd0a14a28f0689b7d6332c8663 (diff) | |
download | aspectj-21f9d5a71fa19792e0268a97955efdb8bf5d7916.tar.gz aspectj-21f9d5a71fa19792e0268a97955efdb8bf5d7916.zip |
Updated for 1.1rc1:
- removed "No exception checking during weaving" as fixed
- removed promise of support for
- XtargetNearSource
- incremental mode in Ajbrowser
(did NOT add uses-pointcut limitation for ajbrowser)
- removed text polling for complaints wrt language changes
- added as limitation: only one .. permitted in args
- added limitation wrt error/warning source context
- inlining of around advice now on by default
-rw-r--r-- | build/products/tools/dist/README-11.html | 136 |
1 files changed, 65 insertions, 71 deletions
diff --git a/build/products/tools/dist/README-11.html b/build/products/tools/dist/README-11.html index 83af45f98..ece88a1c5 100644 --- a/build/products/tools/dist/README-11.html +++ b/build/products/tools/dist/README-11.html @@ -29,6 +29,19 @@ functionality of the tools. </p> <p> This document is intended to completely describe the 1.1 language and tools in relation to AspectJ 1.0.6. +For the most up-to-date information about known issues in AspectJ 1.1, +see the bug database at + <a href="http://dev.eclipse.org/bugs">http://dev.eclipse.org/bugs</a>, +especially the open bugs for the +<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> + compiler</a>, +<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=IDE&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> + IDE support</a>, +<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Doc&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> + documentation</a>, and +<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Ant&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> + Ant tasks</a>. + </p> <p>The information in this document has been folded into the semantics @@ -74,7 +87,8 @@ are now part of a single downloadable distribution from <a href="http://aspectj4emacs.sourceforge.net/">Emacs</a>, <a href="http://aspectj4netbean.sourceforge.net/">NetBeans</a> and <a href="http://aspectj4jbuildr.sourceforge.net/">JBuilder</a> are now -individual SourceForge projects. </p> +individual SourceForge projects, and their 1.1 releases may trail +the main AspectJ release. </p> <!-- ============================== --> <hr> @@ -159,32 +173,34 @@ individual SourceForge projects. </p> <p><a name="NEW_LIMITATIONS">There</a> are a couple of language limitations for things that are rarely used that make the - implementation simpler. If no one speaks up in defense of these, - they will probably become official simplifications of the language. - If defenders speak up, then they will be listed as limitations of - the current compiler implementation. </p> + implementation simpler, so we have restricted the language accordingly. + </p> <ul> <li><a href="#VOID_FIELD_SET">Field set join points now have a <code>void</code> return type.</a> This will require porting of code that uses the <code>set</code> PCD in conjunction - with after-returning or around advice.</li> + with after-returning or around advice.<p></p></li> <li>'declare soft: TYPE: POINTCUT;' In 1.0 a TYPE_PATTERN was allowed rather than a TYPE. This limitation makes declare soft - much easier to implement efficiently.</li> + much easier to implement efficiently.<p></p></li> <li>Inter-type field declarations only allow a single field per line, i.e. this is now illegal 'int C.field1, D.field2;' This must - instead be, 'int C.field1; int D.field2;'</li> + instead be, 'int C.field1; int D.field2;'<p></p></li> + + <li>We did not implement the handling of more than one + <code>..</code> wildcard in args PCDs (rarely encountered in the + wild) because we didn't have the time. This might be available + in later releases if there is significant outcry.</li> + </ul> - <p>Finally, we did not implement the handling of multiple - <code>..</code> wildcards in args PCDs (rarely encountered in the - wild) because we didn't have the time. It should be available in - 1.1rc1. Also, we did not implement the <a href="#PER_TYPE">new + <p>Finally, + we did not implement the <a href="#PER_TYPE">new pertype aspect specifier</a>. It has been taken off the table for - 1.1rc, though it may well be in a future release.</p> + 1.1, though it may well be in a future release.</p> <!-- ============================== --> @@ -240,21 +256,20 @@ individual SourceForge projects. </p> 1.1 compiler supports incremental compilation. </li> </ul> - <p> Some other features we plan to support for 1.1, but did not make - it into this beta release: </p> + <p> Some other features we wanted to support for 1.1, but did not make + it into this release: </p> <ul> - <li><a href="#EXCEPTION_CHECKING">Exception checking is not - handled completely during weaving</a></li> - <li><a href="#ERROR_MESSAGES">Error messages will sometimes be scary</a></li> + <li><a href="#MESSAGE_CONTEXT">Source code context is not shown + for errors and warnings detected during bytecode weaving</a></li> </ul> <p> But some features of the 1.0 compiler are not supported in the 1.1 compiler: </p> <ul> - <li><a href="#NO_SOURCE">Source-specific options</a>: The -source, + <li><a href="#NO_SOURCE">Source-specific options</a>: The -preprocess, -usejavac, -nocomment and -workingdir options are no longer supported</li> @@ -279,7 +294,9 @@ individual SourceForge projects. </p> </ul> <p> A short description of the options ajc accepts is available with - "<code>ajc -help</code>". </p> + "<code>ajc -help</code>". + Longer descriptions are available in the Development Environment Guide + section on ajc. </p> <p> </p> <!-- ============================== --> @@ -294,8 +311,8 @@ individual SourceForge projects. </p> </p> <p>This release does not include <code>ajdoc</code>, the - documentation tool for AspectJ sources, and its 1.1 release looks - doubtful. Ajdoc is deeply dependent on the + documentation tool for AspectJ sources. + Ajdoc is deeply dependent on the abstract syntax tree classes from the old compiler, so it needs a bottom-up rewrite. We think it best to use this opportunity to implement more general API's for publishing and rendering static @@ -337,10 +354,10 @@ individual SourceForge projects. </p> distributed from Sourceforge, AJDE for JBuilder, AJDE for Netbeans, and AJDE for Emacs haven't changed much either. They use the batch-build mode of the new compiler. Incremental building and - bytecode weaving are not available in the AJDE tools in the beta - release, but might be in a future release.</p> + bytecode weaving are not available in the AJDE tools in this release, + but might be in a future release.</p> - <p> Of note for the beta is that NetBeans 3.4 is supported, and there is now + <p> Of note is that NetBeans 3.4 is supported, and there is now better integration for the compiler messages output window.</p> <!-- ============================== --> @@ -940,19 +957,14 @@ individual SourceForge projects. </p> <h3><a name="INCREMENTAL">Incremental compilation</a></h3> <p> The AspectJ 1.1 compiler now supports incremental compilation. - For the final release, this will work from the various IDE plugins we - ship, but for the beta release, it is only supported on the - command-line compiler. - </p> - - <p> When ajc is called with the -incremental option, it must also be + When ajc is called with the -incremental option, it must also be passed a -sourceroots option specifying a directory to incrementally compile. Once the initial compile is done, ajc waits for console input. Every time it reads a new line (i.e., every time the user hits return) ajc recompiles those input files that need recompiling. </p> - <h4>Limitations for beta</h4> + <h4>Limitations</h4> <p> This new functionality is still only lightly tested. </p> @@ -1127,19 +1139,15 @@ individual SourceForge projects. </p> </p> <ul> - <li>-XOcodeSize: Though the beta does not turn - <a href="#NO_AROUND_OPTIMIZATION">inlining of around advice</a> - on, we expect that it will be on by default in the final, and so - <code>-XOcodeSize</code> is no longer necessary. We will be - supporting its inverse, - <a href="#XNOINLINE"><code>-XnoInline</code></a> in the final. + <li>-XOcodeSize: This is no longer necessary because inlining + of around advice is on by default. We support its inverse, + <a href="#XNOINLINE"><code>-XnoInline</code></a>. </li> <li><a href="#XNOWEAVE">-XnoWeave, a compiler option to suppress weaving</a></li> - <li>-XtargetNearSource: Not supported in 1.1beta5, may not be - supported in 1.1 final. </li> + <li>-XtargetNearSource: Not supported in this release. </li> <li>-XserializableAspects: Supported. </li> @@ -1151,8 +1159,7 @@ individual SourceForge projects. </p> options</a>. </li> </ul> - <h3><a name="ERROR_MESSAGES">Some confusing error messages in - 1.1beta</a></h3> + <h3><a name="ERROR_MESSAGES">Some confusing error messages</a></h3> <p>Building on the eclipse compiler has given us access to a very sophisticated problem reporting system as well as highly optimized @@ -1164,28 +1171,17 @@ individual SourceForge projects. </p> bugs.</p> - <h3><a name="EXCEPTION_CHECKING">No exception checking during - weaving in 1.1beta5</a></h3> - - <p>Advice that has an explicit throws clause needs to have that - throws clause checked during weaving for each join point that is - matched. This checking is not implemented in 1.1beta5 which can - lead to checked exceptions being thrown from places they are not - allowed by the Java language.</p> + <h3><a name="MESSAGE_CONTEXT">Source code context is not shown + for errors and warnings detected during bytecode weaving</a></h3> - <pre> before() throws IOException : execution (void m()) { - InputStream s = new FileInputStream("m.out"); - ... - } - ... - public void m() { ... } - </pre> + <p>For compiler errors and warnings detected during bytecode weaving, + source code context will not be displayed. In particular, for declare + error and declare warning statements, the compiler now only emits the + file and line. We are investigating ways to overcome this in cases + where the source code is available; in cases where source code is + not available, we might specify the signature of the offending code. + For more information, see bug 31724.</p> - <p>This code should result in a link-time weaving error that the - throws clause in the advice is incompatible with the checked - exceptions which can be legally thrown from the matched join - point. In beta5 this will just silently weave in the advice and - it will be possible for an IOException to be thrown from m().</p> <h3><a name="XLINT">The -Xlint option</a></h3> @@ -1198,17 +1194,17 @@ individual SourceForge projects. </p> <code>org/aspectj/weaver/XlintDefault.properties</code> for the default behavior and a template to copy. </p> - <p> Though more <code>-Xlint</code> warnings are supported in - 1.1beta5 than previously, we expect even more to be supported in - 1.1final. Because the configurability allows users to turn off - warnings, we will also be able to warn about more potentially + <p> More <code>-Xlint</code> warnings are supported now, and + we may add disabled warnings in subsequent bug-fix releases of 1.1. + Because the configurability allows users to turn off + warnings, we will be able to warn about more potentially dangerous situations, such as the potentially unsafe casts used by very polymorphic uses of proceed in around advice. </p> <h3><a name="NO_SOURCE">Source-specific options</a></h3> - <p> Because AspectJ 1.1beta5 does not generate source code after - weaving, the source-code-specific options -source, -usejavac, + <p> Because AspectJ 1.1 does not generate source code after + weaving, the source-code-specific options -preprocess, -usejavac, -nocomment and -workingdir options are meaningless and so not supported. </p> @@ -1360,9 +1356,7 @@ individual SourceForge projects. </p> <p> So, because it's easier to implement, and because we believe that this is the last possibility to make the semantics more useful, we - have made set join points have a void return type in 1.1beta5. - Please complain vociferously if you believe this is wrong, and we - can revert for the final version. </p> + have made set join points have a void return type in 1.1. </p> <h3><a name="XNOINLINE">The -XnoInline Option</a></h3> |