Subject: Re: bug#78304: 31.0.50; Support --early-eval on the command line

From: Eli Zaretskii <[email-masked]>
Date: Thu, 15 May 2025 19:33:17 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked]
> Date: Thu, 15 May 2025 12:19:16 -0400
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> > Why do you want to do that under -q?
> >> 
> >> Two concrete use cases:
> >> 
> >> - Since load-path-filter-function speeds up all subsequent loads, it
> >>   needs to be set at early-init.el time to have maximum effect, but I
> >>   want to also be able to use it and test it with emacs -q.
> >
> > Since early-init.el is not supposed to load anything, only set up some
> > variables, I don't understand why you insist on doing this in
> > early-init.  The site-start file is loaded right after early-init.el,
> > so if you set that up at the very beginning of site-start file, it
> > will have the same effect.
> 
> That is not the case: Many things happen, including loading of files,
> between site-start and early-init.  Package initialization and initial
> frame setup, for example.

And why is that important in your cases, again?  You never said
anything about packages and frame initialization.

> >> - Context: I'm developing some scripts to run Emacs in a simple
> >>   reduced-functionality mode, which provide access to just one buffer
> >>   running in a specific major mode, with the goal of making Emacs
> >>   features accessible to users who don't currently use Emacs.  For
> >>   example, vc-dir is generally useful, so a script to open Emacs running
> >>   vc-dir on its own.  (These scripts are similar to things like
> >>   https://github.com/maio/smagit and
> >>   https://github.com/alphapapa/magit.sh )
> >> 
> >>   These scripts run with -q, but I need to be able to configure things
> >>   about the initial frame, which can only be done with early-init.el.
> >
> > Same question here: why cannot this be done in site-start file?  IMO,
> > it is even cleaner, because it doesn't require each user to do the
> > same in their early-init files; instead, you will do that only once
> > for all of them.
> 
> Because initial frame setup happens before site-start is loaded.

So now please explain why that is an issue in -q invocations.

Bonus points for explaining why you need all this to run under -q.
Because if you could do this without -q, all the problems will
magically disappear, right?