Subject: Re: bug#40335: 27.0.90; elp-not-profilable not up to date

From: Štěpán Němec <[email-masked]>
Date: Mon, 13 Apr 2020 17:31:57 +0200

On Mon, 13 Apr 2020 11:05:49 -0400
Noam Postavsky wrote:

> Štěpán Němec <[email-masked]> writes:
>
>> All the others can be removed AFAICT, and none of `eq', `get', `aref' or
>> `time-subtract', also called by the wrapper lambdas
>> (`elp--make-wrapper'), seemed to cause issues for me.
>>
>> IIUC advice has no effect for calls from C functions to C functions, but
>> I don't understand what makes e.g. `float-time' (which breaks) different
>> from `aref' or `get' (which apparently don't) in that respect.
>
> The obvious difference between `float-time' and `aref' or `get' is that
> the latter have byte code ops (so advice doesn't work on byte-compiled
> calls to them).

Ah! That makes sense, thank you.

> However, that doesn't explain why `subtract-time' is
> okay while `float-time' causes problems.

Right, because that was just an error on my part: `time-subtract' does
in fact exhibit the problem. But its alias `subtract-time' doesn't, even
when advised explicitly. I guess advices ignore aliases (i.e. pass
through to the real definition)?

-- 
Štěpán