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

From: Protesilaos Stavrou <[email-masked]>
Date: Thu, 26 May 2022 08:55:00 +0300

> 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?

You mean at the theme level?  I am not sure how that would work and what
its potential downsides are.

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

I am not aware of other such cases.  This one is specific to the recent
changes in Emacs 29 (as noted earlier in this thread).

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

Because the theme covers about 3300 faces.  Assuming other things
constant, to get it to byte compile again I need to remove more than
1200 faces, including popular groups like those of Gnus and Helm.

>> 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.

I see.  Thanks!

>> > 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.

I am happy with whatever is best for Emacs.  Though I do not know enough
about package.el to have an informed opinion on the matter.

-- 
Protesilaos Stavrou
https://protesilaos.com