Thanks for spotting this. Yes you are right. My local branch was very different from the one on ELPA and it did not use nadvice package. Recently I merged ELPA version back and the code segment you highlighted was quite old and I don't even remember what it's for, probably a transition code during the period of transition from `xxx' to `cl-xxx' ... I've fixed it along with an issue found on the Windows version -- I just found that the Windows version is a convenient tool to help me test old Emacs versions like Emacs 24.2. Thanks. On Mon, 30 Jan 2023 at 11:01, Stefan Monnier wrote: > [ Resending with a better email address. ] > > > (eval-when-compile > > - (require 'cl-lib) > > + (if (version< emacs-version "27.0") > > + (progn > > + (require 'cl) ;; Package cl is deprecated for Emacs27+ > > + (require 'cl-macs)) > > + (require 'cl-lib)) > > This looks like a regression resulting from a misunderstanding. > What are you trying to do here? > > The rest of the code uses only `cl-lib` functionality, so (require 'cl) > will be useful only if it internally does (require 'cl-lib). > In Emacs<24.3, this will fail because (require 'cl) will not define the > macros that the rest of the code needs (e.g. `cl-eval-when`, `cl-loop`, > ...). > > > Stefan > > -- Best regards, Luke Lee