Subject: bug#55414: 29.0.50; Byte compilation error for the modus-themes

From: Eli Zaretskii <[email-masked]>
Date: Wed, 25 May 2022 16:12:37 +0300

> From: Protesilaos Stavrou <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> Date: Wed, 25 May 2022 06:24:46 +0300
> 
> The first approach was to add the following at the end of the relevant
> files:
> 
>     ;; Local Variables:
>     ;; max-lisp-eval-depth: 3000
>     ;; max-specpdl-size: 3000
>     ;; End:
> 
> Then M-x byte-compile-file with modus-operandi-theme.el: the local
> variables were ignored.  Same for:
> 
>     (package-install-file "/preferred/path/to/modus-themes")
> 
> The second approach I tried was to add those variables in a
> .dir-locals.el file which was located in the same directory as the
> modus-themes.  The contents of that file looked like this:
> 
>     ((emacs-lisp-mode . ((max-lisp-eval-depth . 3000)
>                          (max-specpdl-size . 3000))))
> 
> Again, the values were ignored.

How about advising package-install-file?

Also, how do other packages overcome similar problems?  Surely, this
isn't the first or the second package that needs such measures?

And finally, any ideas why a package that is just a theme need such
large values of these variables?

> These methods work for other variables but not those two.  Perhaps
> because they are considered "risky" as file-local?

No, I think that's because these facilities visit the file literally.

> > If the above misses the point, please tell more how you compile the
> > package and how you tried to enlarge the values of those variables.
> 
> I don't use a Makefile.  The recipe I shared in the first message to
> this bug report affects installation via package.el and, by extension,
> GNU ELPA.

If all else fails, perhaps package.el should acquire a feature whereby
these variables could be overridden during byte-compilation.