Done, will be in next dev build. Now for:
final static boolean enabled = false; pointcut p(): .... && if(enabled); there will be nothing woven. And as a lucky bonus, for: final static boolean enabled = true; pointcut p(): ... && if (enabled); It will not bother to call the if() method - and if the rest of the pointcut can be evaluated statically then the whole thing will be evaluated statically and there will be no runtime test. cheers, Andy. 2009/2/25 Andy Clement <[email protected]> > I think we should do some minimal level of analysis for constants. > Raised as: https://bugs.eclipse.org/bugs/show_bug.cgi?id=266165 > > Andy. > > 2009/2/25 Neale Upstone <[email protected]> > > Thanks Bruno, that's working perfectly. >> >> > -----Original Message----- >> > From: [email protected] >> > [mailto:[email protected]] On Behalf Of Bruno >> > De Fraine >> > Sent: 25 February 2009 12:01 >> > To: [email protected] >> > Subject: Re: [aspectj-users] if(ENABLED) causes weave for constant >> > >> > On 25 Feb 2009, at 11:45, Neale Upstone wrote: >> > >> > > For some development/debugging aspects, I want to be able >> > to switch >> > > them >> > > on and off and cause the weaver to ignore them. >> > >> > You can try the following: >> > >> > pointcut fail(); >> > pointcut isEnabled(): !fail(); // Remove "!" to disable >> > >> > before() : publicCalls() && isEnabled() >> > { >> > ... >> > } >> > >> > >> From a weaving efficiency point of view, wouldn't it be better to >> > >> detect >> > > that if() has been passed a constant and for the pointcut >> > > "publicCalls() >> > > && if(ENABLED)" to apply to no joinpoints? >> > >> > >> > Unlike Java, it seems that AspectJ delays all if-tests until >> > runtime. >> > However, I believe the research on SCoPE uses partial evaluation >> > techniques to optimize this and many other if-tests, see: >> > http://portal.acm.org/citation.cfm?id=1218582 >> > >> > Best regards, >> > Bruno >> > >> > -- >> > Bruno De Fraine >> > Vrije Universiteit Brussel >> > Faculty of Applied Sciences, DINF - SSEL >> > Room 4K208, Pleinlaan 2, B-1050 Brussels >> > tel: +32 (0)2 629 29 75 >> > fax: +32 (0)2 629 28 70 >> > e-mail: [email protected] >> > >> > >> > _______________________________________________ >> > aspectj-users mailing list >> > [email protected] >> > https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > >> ********************************************************************** >> IMPORTANT NOTICE. >> Confidentiality: This e-mail and its attachments are intended for the >> above named only and may be confidential. If they have come to you in error >> you must take no action based on them, nor must you copy or show them to >> anyone; please reply to this e-mail and highlight the error. >> Security Warning: Please note that this e-mail has been created in the >> knowledge that Internet e-mail is not a 100% secure communications medium. >> We advise that you understand and observe this lack of security when >> e-mailing us. >> Viruses: Although we have taken steps to ensure that this e-mail and >> attachments are free from any virus, we advise that in keeping with good >> computing practice the recipient should ensure they are actually virus free. >> Monitoring and Scanning: Cambridge Cognition has monitoring and scanning >> systems in place in relation to emails sent and received to: monitor / >> record business communications; prevent and detect crime; investigate the >> use of the Company's internal and external email system; and provide >> evidence of compliance with business practices. >> >> Cambridge Cognition Limited >> Company Registration Number 4338746 >> Registered address: >> Tunbridge Court >> Tunbridge Lane >> Bottisham >> Cambridge >> CB25 9TU >> UK >> ********************************************************************** >> >> _______________________________________________ >> aspectj-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
