Nick Dokos writes: > The first set of code transformations (implemented as commit > 63b5f8f2e85b3059a2d30041db6939347a7a2d7d) dealt with the situation by > doing a mass substitution: flet --> org-flet and labels --> org-labels > (and in at least one case, flet --> org-labels to deal with a > recursive definition - I presume that was a preexisting bug that was > fixed by this substitution) and adding compatibility aliases in > org-compat.el to use the cl-flet/cl-labels macros from cl.el in emacs > versions >= 24.1.50.
As has slowly transpired in the meantime, there is no substitution for the deprecated flet. The new cl-flet does lexical instead of dynamical binding of the function slot and the other alternatives have other subtle differences that don't really seem to be documented in a single place. > So the moral of the story is that the code transformations have *not* > left functionality unchanged. Something went awry but to be honest, I > don't know what. I didn't spend much time on it because of what I > found out next. [...] > And is this the only problem? Probably not: every flet->let > transformation would have to be scrutinized. Thanks for this extensive explanation. I don't know if that might convince Stefan Monnier to un-deprecate letf, you'd not be the only one to be rattling his cage on this issue. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Waldorf MIDI Implementation & additional documentation: http://Synth.Stromeko.net/Downloads.html#WaldorfDocs