cvs info - correct?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

cvs info - correct?

Alexandru Popescu
Hi!

I have missed the lately activity on AJ [sad/]. I would like to ask you the following: (sorry if
they where answered in the near past, but I couldn't find it):

1/ did AJ5 has a stable build available for download?
2/ this CVS info is still correct:
depot: dev.eclipse.org:/home/technology
branch: AspectJ5_Development

Many thanks for you answers,
:alex |.::the_mindstorm::.|
_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

Re: cvs info - correct?

Alexandre Vasseur
Hi

If you refer to "AJ5" as the thing that contains the "annotation
style", as I presume since you refer the branch the answer is no/no.
Note that AJ5 is much more than "annotation style".

@style is now in regular cvs head
it has not yet surfaced in a milestone but it is probably included -
to some extend - in the latest published stable builds.
Alex

On 6/12/05, Alexandru Popescu <[hidden email]> wrote:

> Hi!
>
> I have missed the lately activity on AJ [sad/]. I would like to ask you the following: (sorry if
> they where answered in the near past, but I couldn't find it):
>
> 1/ did AJ5 has a stable build available for download?
> 2/ this CVS info is still correct:
> depot:  dev.eclipse.org:/home/technology
> branch: AspectJ5_Development
>
> Many thanks for you answers,
> :alex |.::the_mindstorm::.|
> _______________________________________________
> aspectj-dev mailing list
> [hidden email]
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>
_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

Re: cvs info - correct?

Alexandru Popescu
#: the mind was *winged* after Alexandre Vasseur said on 6/13/2005 8:39 AM :#

> Hi
>
> If you refer to "AJ5" as the thing that contains the "annotation
> style", as I presume since you refer the branch the answer is no/no.
> Note that AJ5 is much more than "annotation style".
>
> @style is now in regular cvs head
> it has not yet surfaced in a milestone but it is probably included -
> to some extend - in the latest published stable builds.
> Alex
>

Thanks Alex. I am talking 'bout the merger result ;-). I thought it is called aj5 or @aj, but I may
be completely wrong.

:alex |.::the_mindstorm::.|

> On 6/12/05, Alexandru Popescu <[hidden email]> wrote:
>> Hi!
>>
>> I have missed the lately activity on AJ [sad/]. I would like to ask you the following: (sorry if
>> they where answered in the near past, but I couldn't find it):
>>
>> 1/ did AJ5 has a stable build available for download?
>> 2/ this CVS info is still correct:
>> depot:  dev.eclipse.org:/home/technology
>> branch: AspectJ5_Development
>>
>> Many thanks for you answers,
>> :alex |.::the_mindstorm::.|
>> _______________________________________________
>> aspectj-dev mailing list
>> [hidden email]
>> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>>
> _______________________________________________
> aspectj-dev mailing list
> [hidden email]
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>

_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

Re: cvs info - correct?

Alexandre Vasseur
AspectJ 5 is the targetted release, due final this summer and that
already has M1 and M2 available.
It is an umbrella name for the alignement of AJ with Java 5
(annotations, generics etc), for the annotation style that we refer to
as "@AJ" or "annotation style", and for an extended load time weaving
support thru Java 5 APIs.
Alex

On 6/13/05, Alexandru Popescu <[hidden email]> wrote:

> #: the mind was *winged* after Alexandre Vasseur said on 6/13/2005 8:39 AM :#
> > Hi
> >
> > If you refer to "AJ5" as the thing that contains the "annotation
> > style", as I presume since you refer the branch the answer is no/no.
> > Note that AJ5 is much more than "annotation style".
> >
> > @style is now in regular cvs head
> > it has not yet surfaced in a milestone but it is probably included -
> > to some extend - in the latest published stable builds.
> > Alex
> >
>
> Thanks Alex. I am talking 'bout the merger result ;-). I thought it is called aj5 or @aj, but I may
> be completely wrong.
>
> :alex |.::the_mindstorm::.|
>
> > On 6/12/05, Alexandru Popescu <[hidden email]> wrote:
> >> Hi!
> >>
> >> I have missed the lately activity on AJ [sad/]. I would like to ask you the following: (sorry if
> >> they where answered in the near past, but I couldn't find it):
> >>
> >> 1/ did AJ5 has a stable build available for download?
> >> 2/ this CVS info is still correct:
> >> depot:  dev.eclipse.org:/home/technology
> >> branch: AspectJ5_Development
> >>
> >> Many thanks for you answers,
> >> :alex |.::the_mindstorm::.|
> >> _______________________________________________
> >> aspectj-dev mailing list
> >> [hidden email]
> >> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
> >>
> > _______________________________________________
> > aspectj-dev mailing list
> > [hidden email]
> > https://dev.eclipse.org/mailman/listinfo/aspectj-dev
> >
>
> _______________________________________________
> aspectj-dev mailing list
> [hidden email]
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>
_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

Missing LocalVariableTable info for around advice ?

per.hustad
In reply to this post by Alexandru Popescu
Hi!
When debugging java code woven with an "around" advice, it looks like the LocalVariableTable information gets lost during the weaving. E.g. considering the following code:

// Foo.java
public class Foo {
    private String myString = "A String";
    public static void main(String[] args) {
        new Foo().foo();
    }  
    private void foo() {
      String myLocal = myString;
      System.out.println(myLocal);   // breakpoint here
    }
}
// Test.aj
aspect Test {
  void around() : ( execution(* Foo.foo(..) ) ) {
      System.out.println("before");
      proceed();
      System.out.println("after");
  }
}

We compiled with ajc 1.2.1:
  ajc -g -preserveAllLocals -sourceroots .

When running Foo in the Eclipse 3.1.0 debugger and setting a breakpoint at the "System.out.println(myLocal);" line, the debugger "Variables" window is empty. Also, disassembling with javap shows that the LocalVariableTable is empty in the generated foo_aroundBody1$advice :

  private static final void foo_aroundBody1$advice(Foo,Test,org.aspectj.runtime.internal.AroundClosure);
  Signature: (LFoo;LTest;Lorg/aspectj/runtime/internal/AroundClosure;)V
  Code:
   0:   getstatic       #34; //Field java/lang/System.out:Ljava/io/PrintStream;
   3:   ldc     #47; //String before
   5:   invokevirtual   #40; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   8:   aload_2
   9:   astore_3
   10:  aload_0
   11:  invokestatic    #65; //Method foo_aroundBody0:(LFoo;)V
   14:  getstatic       #34; //Field java/lang/System.out:Ljava/io/PrintStream;
   17:  ldc     #55; //String after
   19:  invokevirtual   #40; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   22:  return

  LineNumberTable:
   line 103: 0
   line 104: 8
   line 105: 14
   line 106: 22
  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      23      0    this       LTest;
   0      23      1    ajc_aroundClosure       Lorg/aspectj/runtime/internal/AroundClosure;



I guess the answer is that the original class LocalVariableTable information is not copied over to the foo_aroundBody1$advice, and to do that would involves changes to the org.eclipse.jdt module. I would be happy to look into this if someone could guide me where to start.

- Per


_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

Re: Missing LocalVariableTable info for around advice ?

Andrew Clement




Hi Per,

Your diagnosis sounds right.  If you want to investigate further, you
should check out the AspectJ source tree and take a look around the weaver
module in BcelShadow.weaveAroundClosure()  (and maybe
BcelShadow.weaveAroundInline() also has a similar problem).  You will see
the helper method extractMethod() is called to move instructions around - I
can't see any support for ensuring the local variable table makes it across
in the copy.  You should raise a bug against AJ and use it to track your
findings and maybe your fix :)

Andy.
---
Andy Clement
AspectJ Dev
[hidden email]



                                                                           
             <per.hustad@telen                                            
             or.com>                                                      
             Sent by:                                                   To
             aspectj-dev-bounc         <[hidden email]>          
             [hidden email]                                             cc
                                                                           
                                                                   Subject
             13/06/2005 16:44          [aspectj-dev] Missing              
                                       LocalVariableTable info for around  
                                       advice ?                            
             Please respond to                                            
             AspectJ developer                                            
                discussions                                                
             <aspectj-dev@ecli                                            
                 pse.org>                                                  
                                                                           
                                                                           




Hi!
When debugging java code woven with an "around" advice, it looks like the
LocalVariableTable information gets lost during the weaving. E.g.
considering the following code:

// Foo.java
public class Foo {
    private String myString = "A String";
    public static void main(String[] args) {
        new Foo().foo();
    }
    private void foo() {
      String myLocal = myString;
      System.out.println(myLocal);   // breakpoint here
    }
}
// Test.aj
aspect Test {
  void around() : ( execution(* Foo.foo(..) ) ) {
      System.out.println("before");
      proceed();
      System.out.println("after");
  }
}

We compiled with ajc 1.2.1:
  ajc -g -preserveAllLocals -sourceroots .

When running Foo in the Eclipse 3.1.0 debugger and setting a breakpoint at
the "System.out.println(myLocal);" line, the debugger "Variables" window is
empty. Also, disassembling with javap shows that the LocalVariableTable is
empty in the generated foo_aroundBody1$advice :

  private static final void
foo_aroundBody1$advice(Foo,Test,org.aspectj.runtime.internal.AroundClosure);

  Signature: (LFoo;LTest;Lorg/aspectj/runtime/internal/AroundClosure;)V
  Code:
   0:   getstatic       #34; //Field
java/lang/System.out:Ljava/io/PrintStream;
   3:   ldc     #47; //String before
   5:   invokevirtual   #40; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
   8:   aload_2
   9:   astore_3
   10:  aload_0
   11:  invokestatic    #65; //Method foo_aroundBody0:(LFoo;)V
   14:  getstatic       #34; //Field
java/lang/System.out:Ljava/io/PrintStream;
   17:  ldc     #55; //String after
   19:  invokevirtual   #40; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
   22:  return

  LineNumberTable:
   line 103: 0
   line 104: 8
   line 105: 14
   line 106: 22
  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      23      0    this       LTest;
   0      23      1    ajc_aroundClosure
Lorg/aspectj/runtime/internal/AroundClosure;



I guess the answer is that the original class LocalVariableTable
information is not copied over to the foo_aroundBody1$advice, and to do
that would involves changes to the org.eclipse.jdt module. I would be happy
to look into this if someone could guide me where to start.

- Per

_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev


_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
Reply | Threaded
Open this post in threaded view
|

RE: Missing LocalVariableTable info for around advice ?

per.hustad
In reply to this post by per.hustad
Thank you Andy. I've started looking into the problem and will raise a bug against the compiler shortly. I let you know if I have any problems.
Regards,
  Per

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]]On Behalf Of Andrew Clement
Sent: 14. juni 2005 15:14
To: AspectJ developer discussions
Subject: Re: [aspectj-dev] Missing LocalVariableTable info for around
advice ?






Hi Per,

Your diagnosis sounds right.  If you want to investigate further, you
should check out the AspectJ source tree and take a look around the weaver
module in BcelShadow.weaveAroundClosure()  (and maybe
BcelShadow.weaveAroundInline() also has a similar problem).  You will see
the helper method extractMethod() is called to move instructions around - I
can't see any support for ensuring the local variable table makes it across
in the copy.  You should raise a bug against AJ and use it to track your
findings and maybe your fix :)

Andy.
---
Andy Clement
AspectJ Dev
[hidden email]



                                                                           
             <per.hustad@telen                                            
             or.com>                                                      
             Sent by:                                                   To
             aspectj-dev-bounc         <[hidden email]>          
             [hidden email]                                             cc
                                                                           
                                                                   Subject
             13/06/2005 16:44          [aspectj-dev] Missing              
                                       LocalVariableTable info for around  
                                       advice ?                            
             Please respond to                                            
             AspectJ developer                                            
                discussions                                                
             <aspectj-dev@ecli                                            
                 pse.org>                                                  
                                                                           
                                                                           




Hi!
When debugging java code woven with an "around" advice, it looks like the
LocalVariableTable information gets lost during the weaving. E.g.
considering the following code:

// Foo.java
public class Foo {
    private String myString = "A String";
    public static void main(String[] args) {
        new Foo().foo();
    }
    private void foo() {
      String myLocal = myString;
      System.out.println(myLocal);   // breakpoint here
    }
}
// Test.aj
aspect Test {
  void around() : ( execution(* Foo.foo(..) ) ) {
      System.out.println("before");
      proceed();
      System.out.println("after");
  }
}

We compiled with ajc 1.2.1:
  ajc -g -preserveAllLocals -sourceroots .

When running Foo in the Eclipse 3.1.0 debugger and setting a breakpoint at
the "System.out.println(myLocal);" line, the debugger "Variables" window is
empty. Also, disassembling with javap shows that the LocalVariableTable is
empty in the generated foo_aroundBody1$advice :

  private static final void
foo_aroundBody1$advice(Foo,Test,org.aspectj.runtime.internal.AroundClosure);

  Signature: (LFoo;LTest;Lorg/aspectj/runtime/internal/AroundClosure;)V
  Code:
   0:   getstatic       #34; //Field
java/lang/System.out:Ljava/io/PrintStream;
   3:   ldc     #47; //String before
   5:   invokevirtual   #40; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
   8:   aload_2
   9:   astore_3
   10:  aload_0
   11:  invokestatic    #65; //Method foo_aroundBody0:(LFoo;)V
   14:  getstatic       #34; //Field
java/lang/System.out:Ljava/io/PrintStream;
   17:  ldc     #55; //String after
   19:  invokevirtual   #40; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
   22:  return

  LineNumberTable:
   line 103: 0
   line 104: 8
   line 105: 14
   line 106: 22
  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   0      23      0    this       LTest;
   0      23      1    ajc_aroundClosure
Lorg/aspectj/runtime/internal/AroundClosure;



I guess the answer is that the original class LocalVariableTable
information is not copied over to the foo_aroundBody1$advice, and to do
that would involves changes to the org.eclipse.jdt module. I would be happy
to look into this if someone could guide me where to start.

- Per

_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev


_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev
_______________________________________________
aspectj-dev mailing list
[hidden email]
https://dev.eclipse.org/mailman/listinfo/aspectj-dev