[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in e
From: |
Stefan Monnier |
Subject: |
bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el |
Date: |
Thu, 14 Jan 2021 14:32:13 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> Is there any place where all these complications are described, so
> that people (and we ourselves) could have a complete, comprehensive
> overview of this stuff and the various problems it needs to solve? If
> not, how about taking this opportunity to describe that? Because
> otherwise these incidents will keep happening.
Here's the story:
We have a few variables which are predefined in the dumped Emacs but
whose default value depends on information only available when Emacs is
executed, such as the user's $HOME.
We handle those using `custom-initialize-delayed`, so when the
variable's `defcustom` is procesed the variable isn't initialized yet,
and instead initialization happens in `startup.el` by calling
`custom-reevaluate-setting` on each one of those delayed variables.
In Emacs-26, we did that just before loading the `.emacs` file and
everybody was happy. But the `early-init.el` file added to Emacs-27
introduced a difficulty there:
- Those vars's values might be needed in `early-init.el` so we should
call `custom-reevaluate-setting` before we load `early-init.el`.
- The value of `blink-cursor-mode` depends on whether window-system is
nil or not, which is only known after loading `early-init.el`, so we
should call `custom-reevaluate-setting` after we load `early-init.el`.
Currently we solve this by calling `custom-reevaluate-setting` twice for
every one of those variables. But it means that we silently override
any change made to those variables from `early-init.el`.
As noted, the only var whose default value needs to be (re)computed
after loading `early-init.el` is `blink-cursor-mode`. In theory there
could be more, but I think we should aim to reduce rather than increase
those cases. E.g. the current way `blink-cursor-mode` is defined means
that if I start `emacs -Q -nw` and later create a GUI frame, that frame
won't have a blinking cursor. I think this is a bug (tho I can see
that some people may consider it a feature if they (like me) dislike
blinking cursors ;-0)
Stefan
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Ola x Nilsson, 2021/01/14
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/14
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/14
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/14
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Eli Zaretskii, 2021/01/14
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el,
Stefan Monnier <=
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Eli Zaretskii, 2021/01/14
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/14
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Eli Zaretskii, 2021/01/15
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/15
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Eli Zaretskii, 2021/01/15
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/15
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/15
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/19
- bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Phillip Lord, 2021/01/22
- bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el, Stefan Monnier, 2021/01/22