[abc-users] Advice order in abc wrong?

From: Eric Bodden <eric@bodden.de>
Date: Sat May 28 2005 - 20:43:16 BST

 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi.

I think in the current version of abc, there's something wrong with
the advice ordering (or ajc is wrong - at least they differ)...

I have two pieces of advice, which match equal joinpoints:

 before(stack.Stack s):
 !within(Formula1) &&
 (call(* (stack.Stack).push(..)) && target(s)) {
 final WeakValuesMap bindings = new WeakValuesHashMap();
 bindings.put("s", s);
 ((PropositionSet) currentProps.get()).add(factory.Proposition(prop2,
bindings));
 }

 before():
 !within(Formula1) &&
 (call(* (stack.Stack).pop(..)) && target(stack.Stack) || call(*
(stack.Stack).push(..)) && target(stack.Stack)) {
 VerificationRuntime.getInstance().updateFormula("Formula1",
(PropositionSet) currentProps.get());
 ((PropositionSet) currentProps.get()).clear();
 }

Accoreding to the AspectJ semantics they are to be executed in
lecical order: First a proposition is put to the set. Then this set
is given to the VerificationRuntime.

ajc does it in this way. Dava told me:

       
Formula1.aspectOf().ajc$before$rwth_i2_ltlrv_formula_Formula1$1$e7c510
18(r5); //first advice
       
Formula1.aspectOf().ajc$before$rwth_i2_ltlrv_formula_Formula1$3$6188ed
61(); //second advice
        r6 = r5.pop();

abc however gives me:

        Formula1.aspectOf().before$2(); //second advice
        Formula1.aspectOf().before$0(r3); ///first advice
        $r11 = r3.pop();

(btw: thanks for giving those methods sensible names!)

This unfortunaterly breaks my code completely.

You actually should see the same problem in your tracematch
implementation, thus it would be great if you could provide a fix
asap. Or is there a quick workaround for me?

Thanks a lot,
Eric

- --
Eric Bodden
RWTH Aachen University
ICQ UIN: 12656220, Skype: ericbodden, PGP: BB465582
Website: http://www.bodden.de

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3

iQA/AwUBQpjJ1MwiFCm7RlWCEQLppACaA+xWYlE6D5ThpUNjTke+5PFBmhgAoKkd
+2ivTc6AoolYd4z83xg+zdm0
=+GYa
-----END PGP SIGNATURE-----
Received on Sat May 28 20:45:00 2005

This archive was generated by hypermail 2.1.8 : Sat May 28 2005 - 22:10:05 BST