On Mon, 30 Mar 2020 23:25:01 +0200 Philipp Stephani wrote: > emacs -Q -eval '(elp-instrument-list (quote (float-time eq)))' > > Then something like C-x d leads to infinite recursion. It looks like > the list `elp-not-profilable' is outdated and should be regenerated. The list (as well as the comment) is definitely out of date, given that since its last modification elp has been updated to use nadvice.el, also the `float-time' weren't originally being used, OTOH some of the original functions listed aren't used by elp any more. But I can't tell which functions should really be on it. The comment says that functions directly or indirectly used by the wrapper should be avoided, but from my anecdotal testing, the only of those that cause problems are `apply', `error', `current-time' and `float-time'. 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. Here's what seems to work for me: