AspeCt-oriented C Features

[ Current ] [ Planned ]

Existing AspeCt-oriented C features and the road-map ahead are summarized below. We welcome new feature suggestions for AspeCt-oriented C. Just contact us if you have a suggestion. Thank you.

Current Features

Release Feature List
No Name Release.
Download Version 0.8
Jan, 2008.
  1. result() pointcut can be used to modify the return value of a join point.
  2. Support for accessing arguments' type/value and return type through the "this" structure inside advice.
  3. Match call/execution join points of a function returning a function pointer.
1st Birthday Release.
Download Version 0.7
July, 2007.
  1. set()/get() join point and pointcut support for global variables
  2. new compiler option , "-a", to support matching join points inside aspects
  3. new compiler option , "-m", to output join point-advice matching information
  4. new compiler option , "-n", to suppress the output of "#line" directives
No Name Release.
Download Version 0.6
May, 2007.
  1. preturn() support: allows an immediate return from the parent function of a matched function
  2. exception handling mechanism: try() pointcut, catch() advice, and throw() statement
  3. add "fileName" and "targetName" to thisJoinPoint structure
  4. add following support:
    1. symbolic symbols used in asm statement
    2. keyword: __signed__ , __attribute, __typeof__
    3. use ellipsis when designated initializer is used to initialize a range of elements
    4. conditional expression with omitted operands
    5. empty initializer braces
AOSD 2007 Release.
Download Version 0.5
March, 2007.
  1. added a set of experimental Weave Adapters, as separate tool chain
  2. __volatile__ keyword
  3. C99 complex type, hexadecimal floating point constant
  4. recognize mixing of declarations and statements (K&R feature)
  5. use args() pointcut inside cflow() to expose contexts
  6. change default suffix for aspect file to be .acc
  7. added -af and -mf commandline options to allow the user to specify
  8. file suffix for aspect file and non-aspect file
  9. identify the token when emitting syntax error message
  10. support debugging on the original files instead of the generated / transformed files
  11. map gcc error reporting to original source file
No Name Release.
Download Version 0.4
January, 2007.
  1. semantic check
  2. match a function declared with K&R syntax.
  3. add callp() pointcut: capture a function call join point through a function pointer.
  4. add following support:
    1. unnamed struct/union type as a member inside another struct/union type.
    2. __builtin_offsetof
    3. compound literal
    4. designated initializer
    5. typeof, __typeof operator
    6. __builtin_va_arg function
    7. wide character/string literal
    8. asm label
    9. empty structure
    10. _Bool type
CASCON 2006 Release.
Download Version 0.3
October 17th, 2006.
  1. runTest shows the testing progress.
  2. added -t (--thread-safe) option to generate thread-safe code for cflow() support.
  3. added static crosscutting support: use intype() pointcut and introduce() advice to add new member for struct/union type.
  4. incorporate type qualifier information in the join point matching.
ECE344 Release.
Download Version 0.2
September 8th, 2006.
  1. cflow() pointcut support.
  2. reflective information at join points.
  3. multiple around advice with proceed().
  4. support for gcc extended asm statement.
  5. recognize gcc keywords: __alignof__ , __asm, asm.
  6. support a ";" after function definition.
Friends-and-Family Release.
Download Version 0.1
July 30th, 2006.
  1. call and execution join points
  2. before, after and around advice
  3. call(), execution(), args(), infile(), infunc(), result() pointcuts
  4. args() to expose the address of an argument
  5. &&, ||, ! operators for composite pointcut definition
  6. named pointcut definition
  7. proceed() call
  8. wildcard character matching in pointcut declarations by using $ and ...
  9. support call join points for functions only having declarations, without definition available
  10. recognize the following extended gcc keywords:
      • __extension__, __const, __attribute__, __builtin_va_list, __restrict, __inline, __inline__.

Planned Features

Release Perspective Feature List
Version 0.9
TBD
  • match function having variable argument list, like printf()
  • set()/get() for struct/union members
Topic revision: r20 - 2008-01-13 - 02:21:16 - ArnoJacobsen
 
Copyright © Middleware Systems Research Group. Send feedback