From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#30994: bug#45857: 28.0.50; Not possible to set package-user-dir in early-init.el Date: Thu, 14 Jan 2021 22:41:22 +0200 Message-ID: <83h7njb6a5.fsf@gnu.org> References: <83o8hrbbv6.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39009"; mail-complaints-to="usenet@ciao.gmane.io" Cc: ola.x.nilsson@axis.com, 45857@debbugs.gnu.org, 30994@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jan 14 21:42:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l09Rb-000A2R-Ql for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 14 Jan 2021 21:42:11 +0100 Original-Received: from localhost ([::1]:33438 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l09Ra-0003J9-Sh for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 14 Jan 2021 15:42:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l09RS-0003Hw-JB for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2021 15:42:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:56100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l09RS-0004W0-CK for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2021 15:42:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l09RS-0006BR-6A for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2021 15:42:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Jan 2021 20:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30994 X-GNU-PR-Package: emacs Original-Received: via spool by 30994-submit@debbugs.gnu.org id=B30994.161065689723730 (code B ref 30994); Thu, 14 Jan 2021 20:42:02 +0000 Original-Received: (at 30994) by debbugs.gnu.org; 14 Jan 2021 20:41:37 +0000 Original-Received: from localhost ([127.0.0.1]:39411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l09R2-0006Af-Jp for submit@debbugs.gnu.org; Thu, 14 Jan 2021 15:41:36 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:39938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l09Qz-0006AN-2c; Thu, 14 Jan 2021 15:41:35 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:59164) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l09Qs-0004LD-Vk; Thu, 14 Jan 2021 15:41:26 -0500 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2648 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l09Qs-0000nu-5E; Thu, 14 Jan 2021 15:41:26 -0500 In-Reply-To: (message from Stefan Monnier on Thu, 14 Jan 2021 14:32:13 -0500) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:197963 Archived-At: > From: Stefan Monnier > Cc: ola.x.nilsson@axis.com, 45857@debbugs.gnu.org, 30994@debbugs.gnu.org > Date: Thu, 14 Jan 2021 14:32:13 -0500 > > > 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: Thanks, I actually meant to have that in the sources in some prominent place. > 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. I think relying on a small number of such variables is not future-proof enough. This case is a living proof: we decided something 2 years ago, but changes we did since then require us now to change that decision, which means we risk bumping into issues which we wanted to avoid back then. That's a general problem with kludgey solutions. I think we need some new infrastructure that would support the two init files that are loaded in different stages of startup. Basically, some variables can only be usefully initialized after some part(s) of startup have happened already. One way of dealing with this is to have the variables record this information (e.g., in a plist of their symbol) that would allow us evaluate each variable only once, at the earliest opportunity where the prerequisites are fulfilled. > 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) I think that's a separate issue.