Subject: bug#67687: Feature request: automatic tags management

From: Eli Zaretskii <[email-masked]>
Date: Sun, 31 Dec 2023 09:07:03 +0200

> Date: Sun, 31 Dec 2023 01:43:25 +0200
> Cc: [email-masked], [email-masked], [email-masked]
> From: Dmitry Gutov <[email-masked]>
> 
> >>>> +;;;###autoload
> >>>> +(put 'etags-regen-file-extensions 'safe-local-variable
> >>>> +     (lambda (value) (and (listp value) (seq-every-p #'stringp value))))
> >>>
> >>> Why not use list-of-strings-p here?
> >>
> >> Again, that "core ELPA" consideration. We could deploy this feature to a
> >> number of released Emacs versions, if we don't introduce such dependencies.
> > 
> > Isn't this covered by the compat package on ELPA?  If not, I think it
> > should be.
> 
> These forms go into generated autoloads file for each installed package 
> (*-autoloads.el). I think compat doesn't make list-of-string-p 
> autoloaded, and autoloads files don't usually have (require ...) forms.
> 
> So while I haven't really tested this and could be missing something, it 
> seems brittle to rely on 'compat' for this function (if at all possible).

It is also extremely ugly to have those large functions in a bundled
package, when we already have list-of-strings-p in Emacs 29.  So how
about defining list-of-strings-p in etags-regen for older versions,
and then using it in the safe-local-variable property?  Or some other
solution to make this more elegant.  Wanting to let users use this
with older Emacsen has its limits, and IMNSHO this one crosses that
limit.

> Latest revision attached. Any further comments?

None from me, thanks.