Re: [abc-users] Compilation error with intertypes when using the abc weaver

From: Henrique Rebêlo <hemr_at_cin.ufpe.br>
Date: Tue, 19 May 2009 13:29:01 -0300

Hi Eric,

> Indeed it's a bug in the polyglot frontend. It has nothing to do with
> the "$" sign; the bug even occurs without it. Henrique, you should be
> able to compile your code by adding "-ext abc.ja" to your command
> line. This tells abc to use the newer JastAdd-based frontend instead.
> At least your little example compiles fine with that frontend. I will
> see if I can fix the bug in the polyglot-based frontend nevertheless.

   Thanks for showing me how to overcome this problem!

Ok this was a simple one, it seems. Should be fixed in SVN revision 7473.

   Good. I'm happy in helping you on this issue.

 Henrique

On Tue, May 19, 2009 at 11:02 AM, Eric Bodden <eric.bodden_at_mail.mcgill.ca>wrote:

> Ok this was a simple one, it seems. Should be fixed in SVN revision 7473.
>
> Eric
>
> 2009/5/19 Eric Bodden <eric.bodden_at_mail.mcgill.ca>:
> > Hi all.
> >
> > I looked into this a bit.
> >
> > Indeed it's a bug in the polyglot frontend. It has nothing to do with
> > the "$" sign; the bug even occurs without it. Henrique, you should be
> > able to compile your code by adding "-ext abc.ja" to your command
> > line. This tells abc to use the newer JastAdd-based frontend instead.
> > At least your little example compiles fine with that frontend. I will
> > see if I can fix the bug in the polyglot-based frontend nevertheless.
> >
> > Eric
> >
> > 2009/5/19 Eric Bodden <eric.bodden_at_mail.mcgill.ca>:
> >> Oh, I guess that explains that then. Thanks a lot for pointing this
> >> out Pavel. Guess we have been teaching something wrong then in our
> >> compiler class for ages :P
> >>
> >> Were you guys aware of this when you first implemented abc? I would be
> >> surprised if abc did not internally make some assumptions about
> >> certain $ signs being or not being part of certain identifiers.
> >>
> >> Eric
> >>
> >> 2009/5/19 Pavel Avgustinov <pavel_at_comlab.ox.ac.uk>:
> >>> Hi Eric,
> >>>
> >>> Thanks for taking the time to look into this.
> >>>
> >>> I was intrigued by your diagnosis, so I consulted the Java Language
> >>> Specification. The relevant section is:
> >>>
> >>> http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8
> >>>
> >>> This states, among other interesting and useful things,
> >>>
> >>> "The Java letters include uppercase and lowercase ASCII Latin letters
> A-Z
> >>> (\u0041-\u005a), and a-z (\u0061-\u007a), and, for historical reasons,
> the
> >>> ASCII underscore (_, or \u005f) and dollar sign ($, or \u0024). The $
> >>> character should be used only in mechanically generated source code or,
> >>> rarely, to access preexisting names on legacy systems."
> >>>
> >>> The $ character is perfectly legal in Java identifiers (in fact you can
> have a
> >>> variable called "$"), but is usually omitted from introductory texts
> because
> >>> it is used for compiler-generated names (cf. this$0, names for nested
> classes,
> >>> accessor methods and advice names) and if human programmers avoid it,
> the
> >>> probability of accidental name clashes is reduced.
> >>>
> >>> - P
> >>>
> >>> On Tuesday 19 May 2009 12:28:34 Eric Bodden wrote:
> >>>> > Yes, surprisingly both alow that. In relation to Java, I first
> saw
> >>>> > such a situation in the instrumented source code
> >>>> > generated by JML. In addition, since a valid AspectJ program is
> also
> >>>> > a valid Java program, we can use "$" in AspectJ
> >>>> > programs as well, for instance, in intertype declarations (as in
> >>>> > previous email).
> >>>>
> >>>> Yes, there's two different things: identifiers in Java source code and
> >>>> identifiers in the bytecode. $ is allowed in bytecode but not usually
> >>>> on the source level. The AspectJ language definition states that
> >>>> AspectJ identifiers are just Java identifiers. Therefore AspectJ
> >>>> compilers should not actually parse your example program. I have
> >>>> raised a bug against ajc to clarify that...
> >>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=276794
> >>>>
> >>>> Anyway, I have not yet had the time to look into this but I suspect
> >>>> that abc may get confused by those names. I will see if I can find
> >>>> some time to dig a bit deeper into the problem today.
> >>>>
> >>>> Eric
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Eric Bodden
> >> Sable Research Group, McGill University
> >> Montréal, Québec, Canada
> >>
> >
> >
> >
> > --
> > Eric Bodden
> > Sable Research Group, McGill University
> > Montréal, Québec, Canada
> >
>
>
>
> --
> Eric Bodden
> Sable Research Group, McGill University
> Montréal, Québec, Canada
>
>

-- 
Henrique Rebêlo, Centro de Informática, UFPE
http://www.cin.ufpe.br/~hemr
Received on Tue May 19 2009 - 17:29:06 BST

This archive was generated by hypermail 2.2.0 : Thu May 21 2009 - 14:30:12 BST