From 838f6fe82e095033ed79b804a0d6094581153da7 Mon Sep 17 00:00:00 2001 From: aclement Date: Mon, 20 Oct 2008 23:34:07 +0000 Subject: [PATCH] 246125: removed last Asm dependency from org.aspectj.weaver (world model ref). Removed bcelobjecttype dependency in ReferenceType. --- weaver/bcelIssues.txt | 12 -- weaver/features.txt | 305 ------------------------------------------ 2 files changed, 317 deletions(-) delete mode 100644 weaver/bcelIssues.txt delete mode 100644 weaver/features.txt diff --git a/weaver/bcelIssues.txt b/weaver/bcelIssues.txt deleted file mode 100644 index 14bf0b16d..000000000 --- a/weaver/bcelIssues.txt +++ /dev/null @@ -1,12 +0,0 @@ -* updateTarget doesn't work with exnTargets, in particular, when the startPC and endPC are the same handle. - -* RemoveNOP doesn't work properly with exnTargets (and, much less importantly, local variable tables), - because it always retargets to the NEXT instruction... the endPC should retarget to the LAST instruction. - -* parameter names aren't set correctly (to anything) when a MethodGen is read from a Method. - -* the superclassname of java.lang.object is set to java.lang.object (!!) - -* RET should be a local variable instruction - - diff --git a/weaver/features.txt b/weaver/features.txt deleted file mode 100644 index 2c62391eb..000000000 --- a/weaver/features.txt +++ /dev/null @@ -1,305 +0,0 @@ -AspectJ 1.1 Features ------------------------------------------------------------- - - ------------------------------- -About this document - -This document contains information about the proposed features of -AspectJ 1.1. It assumes as a baseline that AspectJ 1.1 includes all -the features of AspectJ 1.0.6. Any feature difference, especially -incompatible changes, should be noted. It is organized by DOWNLOAD. -Inside the tools download there are sections per feature. - -Feel free to just stick shorthand notes at the end of this file, and -move them up to the New Features (or other) section as we want. - - ------------------------------- -OPEN ISSUES - -* -sourceroots/-injars matrix completeness - -* do we release ant tasks in beta? - -* do we call beta alpha or alpha beta? - ------------------------------- -DOWNLOAD: Tools - -General deliverables: Two licence files. A readme. Possibly a changes. - ----- runtime - -Deliverable: aspectjrt.jar - -Changes: - -* RUNTIME_LICENCE: AspectjRT.jar now has a BSD-style licence [NOT BETA] - -* JOINPOINT_NAMES: Added constant fields holding constant names for - the join points. - -* NO_COLUMN_NUMBER: thisJoinPoint.getSourceLocation().getColumn() - is incompatible with bytecode weaving and can not be supported. - Do we want to remove the method or make it return -1? - -* NOT_10_BINARY_COMPATIBLE: Some modifications to classes in internal - packages means that code built with 1.1 won't run on the 1.0 version - of aspectjrt.jar. - [XXX this has always been true and sounds more scary than it is. - The readme/docs do/should always say that you need to compile and - run with at least the same version of the runtime classes as - the compiler] - ----- tools - -Deliverable: aspectjtools.jar - -* Single jar containing .class files for all components listed below. - This will contain code under both the CPL and the MPL. - ----- ajc - -Deliverable: ajc, ajc.bat - -Changes: - --- new features -* NO_SOURCE: -source/-usejavac options are not supported [INCOMPATIBLE] - -* SOURCEROOT: -sourceroots option indicates that all source files in - a particular directory tree should be compiled [NEW] - This option is the only way that sourcefiles can currently be - specified for incremental compilation on the command-line. - -* BYTECODE_WEAVING: supporting bytecode-containing jar files as input - for the compiler. [NEW] - * Command-line: -injars option - Not supported in incremental mode. - * Eclipse: not supported [BETA] - This has a ripple effect on "code the compiler controls" issues. - There are obfustication issues that should be discussed in the readme - -* OUTJAR: supports generating a single .jar file with the results of a - compilation, rather than separate .class files. This should be - most useful when weaving into existing .jar files. The resulting jar - file has no meta-information, just classes. [question: compression level?] - [NEW] - -* BINARY_ASPECTS: Aspects may be compiled to a standalone bytecode - form, and later be used in a linking/compiling phase to affect join - points. [NEW] - This will only be partially working in beta1: The front-end is not - reading the binary aspects. [BETA] - -* INCREMENTAL: incremental compilation [NEW] - * Command-line: interface is using -sourceroots and typing - for an incremental recompile. Better interfaces are possible - in the future. - * Eclipse: invisible - * JBuilder/Netbeans: ?? - * Emacs: possibly using new command-line interface? - * Ant: unsupported in BETA - -* NORMAL_OPTIONS: now supporting many javac options ajc failed to in 1.0: - essentially those supported in the ECLIPSE_OPTIONS [NEW] - -* ECLIPSE_OPTIONS: The eclipse compiler provides a large number of - options for controlling its behavior, i.e. -warn:unusedLocals. All - of these options may be passed to the command-line ajc compiler. Mik should - be bugged to get full list and description of the options [NEW] - - --- features not supported yet - -* NO_WEAVE: An option with unknown name that generates code but does - no back-end weaving [NO BETA] - -* SOURCE_INFORMATION: Source file information in error messages may be - either better or worse (depending on how well we do our eclipse - integration, this may not happen). [INCOMPATIBLE, MINIMAL] - JSR 45 information is not created/maintained. [BETA] - -* NO_AROUND_OPTIMIZATION: -XinlineAroundClosure not implemented. - [INCOMPATIBLE] No inlining at all [BETA]. - -* NO_CALLEE_SIDE_CALL: Not implemented [BETA] - -* OTHER_X_OPTIONS: XaddSafePrefix (not used anymore, but we make some - weak guarantees about this), XserializableAspects [see below] - XTargetNearSource [see below] - - --- features no longer supported -* NO_SOURCE: -preprocess/-usejavac/-nocomment/-workingdir options are - not supported [INCOMPATIBLE] - -* NO_STRICT_LENIENT: The -strict/-lenient flags are no longer - supported, since we no longer own the compiler [INCOMPATIBLE, MINIMAL] - - -* NO_PORTING: The -porting flag is no longer supported. - ----- Ajdb - -* NO_AJDB: Ajdb is no longer supported, shipped, talked about, - seen, or believed to exist. We write a nice couple of paragraphs - about JSR 45. [INCOMPATIBLE] - - ----- Ajdoc - -* NO_AJDOC: Ajdoc is not provided [BETA, possibly but not certainly - FINAL as well] - ----- ajbrowser - -* NO_CROSSCUTTING_STRUCTURE: Crosscutting structure is not shown - [BETA_ONLY] - - ------------------------------- -DOWNLOADS: AJDE for Jbuilder, AJDE for Netbeans, AJDE for Emacs - -Deliverables: 3 downloads, same as 1.0.6 (Mik, expand?) - -Changes: - -* NO_AJDE_INCREMENTAL_COMPILATION: the 1.1 compiler will only - work in batch mode [BETA_ONLY] - -* NO_TARGET_NEAR_SOURCE: -XTargetNearSource option is not supported in - the 1.1 command-line compiler. [INCOMPATIBLE] - - ------------------------------- -DOWNLOAD: ajc ant tasks - -Deliverables: 1 download, same as 1.0.6 - -Changes: - - adding experimental taskdef based on DefaultCompilerAdapter - - updated taskdef to use new compiler interface - - neither support incremental mode [XXX leave ant running, touch tag file?] - ------------------------------- -DOWNLOAD: Source distributions - -Tools Source: completely revamped, includes license for org.eclipse package -AJDE-JBuilder Source: basically the same, if aspectjtools.jar is one jar -AJDE-Netbeans Source: basically the same, if aspectjtools.jar is one jar - ------------------------------- -DOWNLOAD: Documentation - -Deliverable: 1 or 0 downloads. Main deliverable is fleshed-out -version of this document with outgoing links to bare or updated 1.0.6 -documentation. - -Changes (language changes): - -* THROWS_PATTERN: Typename patterns are allowed in place of typenames - in throws clauses. This is - http://aspectj.org/home/hugunin/features11.html#throws-patterns [NEW] - -* CALLEE_SIDE_CALLS: 1.1 may pick out different callee-side call join - points than 1.0.6 on the same code. [INCOMPATIBLE] - -* SINGLE_INTERCLASS_TARGET: 1.1 does not allow inter-class - declarations to be made with a TypePattern as target. (workaround - available, defense can be presented if asked). [INCOMPATIBLE] - -* SINGLE_TYPENAME_PATTERN_TARGET: A simple type-name pattern with no - wildcard can match no more than one type. The type that it matches - is determined at compile-time. [INCOMPATIBLE] - [THIS IS NO LONGER THE CASE, SO IT IS NOT DOCUMENTED AS SUCH] - -* ASPECT_PRECEDENCE: Dominates is replaced/mirrored with alternate - declare-space specification, or it's not. (??) [INCOMPATIBLE, or - NEW, or NOTHING] - -* UNAVAILABLE_JOIN_POINTS: [INCOMPATIBLE, MINIMAL] - * Initializer Execution join points no longer exist. The - information needed to pick them out doesn't exist in bytecode. - there was not kinded pcd for it, and we're not sure anyone will - actually notice the difference. - * Others? (??) - -* CONSTRUCTOR_EXECUTION_IS_BIGGER: constructor execution join points - (of constructors which call super) include the code for instance - initialization (the code inside the old initializer execution join - point). Again, the information needed to NOT include this code - isn't available in bytecode. This could be a big deal... before - advice on many constructor execution join points will run before the - dynamic initializers run. [INCOMPATIBLE] - -* NEW_PCDS: Kinded PCDs are available for every kind of join - point. This is - http://aspectj.org/home/hugunin/features11.html#kinded-pcds [NEW] - * adviceExecution (spelling?) - * preInitialization (spelling?) - -* WITHIN_MEMBER_TYPES: Within of a member type (NOT a package-level - type) such as within(pkg.Type.MemberType) is not guaranteed to pick - out code inside anonymous and local types. (JLS 13.1). If anyone - cares, we can do tests on jikes/javac/eclipse to see if we actually - do, but this is hopefully a completely minimal issue [INCOMPATIBLE, - MINIMAL]. It is unclear if this is a fundamental limitation of - bytecode weaving or if it can be fixed with further work. - - -Documentation caveats: - -- example code not updated [XXX?] -- quick ref -- - ------------------------------- -Future work - -There are a number of changes that clearly would be either useful or -easy (hopefully things that are both useful and easy are already -done), but we don't plan to actually ship them in 1.1. - -* HANDLER_EXCLUDES_NON_EXCEPTIONS: (PR826) - -* SUPERTYPES_TYPE_PATTERN: - -* DYNAMIC_CLASSLOADER_WEAVER: - -* SOURCE_WEAVING: - ------------------------------- -Shorthand notes - -- no optimizations for per* aspects - -- declare soft unimplemented [this is on the table for not doing for beta] - -- privileged unimplemented [this is on the table for not doing for beta] - -- declare dominates (?) [decided before beta] - -- declare error/warning source locations are weaker than just missing column [BETA] - - -- a note for the dangerous bends section of the programming guide - - Base.m() throws IOException - Derived.m() [no throws] - - call(void Base.m() throws IOException) - --> this doesn't match new Derived().m(), but will without the throws - - -- The status of the -XserializableAspects flag is iceberg-like. - -- Don't implement intra-type static members onto interfaces - -- Don't handle introduced fields with constant values - -- no crosscuting structure means no inline annotations w/ -emacssym, but speedbar still - shows declaration tree - - -- 2.39.5