GNU bug report logs -
#5863
defadvice in byte compiled file does not work
Previous Next
Full log
View this message in rfc822 format
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>> BTW, it seems like advising primitives will work once we get native-comp
>> merged:
>>
>> The result of this procedure is that each newly activated function will
>> use the trampoline in place of the original primitive and the
>> trampoline will execute the call going through funcall making the
>> advice effective!
>>
>> This works so well that in-fact now is even possible to advice
>> effectively what wasn't effective in byte-code (ex the + function). But
>> hey, don't try this a home!
>>
>> https://akrl.sdf.org/gccemacs.html#org3b7398e
>
> AFAIK this still won't cover all cases: we'd additionally have to
> arrange for C calls to F<fun> to go through the trampoline. Maybe we
> can do that cheaply, I don't know.
I think there's no way we'll be able to fix the C to C case without some
very measurable performance impact.
For essentially the same reason the nativecomp trick does not work for
the (few) functions we opencode.
Ex on optimized compiled code redefining or advising `1+' will not take
effect. So yeah works better but is still not perfect.
> In any case, I think the story is still sufficiently complex that we're
> better off saying that "it may work or not depending on your luck".
thus agree.
Andrea
This bug report was last modified 4 years and 172 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.