* use-package :after ?? @ 2023-05-08 0:05 David Masterson 2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-08 12:19 ` Eli Zaretskii 0 siblings, 2 replies; 37+ messages in thread From: David Masterson @ 2023-05-08 0:05 UTC (permalink / raw) To: help-gnu-emacs Didn't see this post, so ... This might be a documentation problem... I'm not sure I understand ":after" (and a few other related things) in use-package. The info docs talk about it ensuring that the current package is loaded after the other listed packages, but it's not quite explicit (to me) about what that means. I interpret it in two possible ways: 1. If any of the listed packages are not loaded currently, then the current package will not be loaded. Period. 2. #1 + "magic" will be done to ensure that, once the listed packages are loaded, the current package will be (auto?) loaded. If #1 is correct, I do not know how the current package will ever be loaded if ":after" fails. If #2 is correct, I do not know what the "magic" could be to safely do this. My goal is to organwize my .emacs loading of 25+ packages to only load if needed. That means (almost) all packages are deferred at startup and will load itself and subpackages (minor modes, etc.) when I try to call the package. This is what I hoped :after was for. Can someone advise on the proper use of ":after" and how to get appropriate subpackages to also load when the main package is loaded. For instance: (use-package org-ac :after org) (use-package org) -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 0:05 use-package :after ?? David Masterson @ 2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-08 4:05 ` David Masterson 2023-05-08 12:19 ` Eli Zaretskii 1 sibling, 1 reply; 37+ messages in thread From: Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-08 2:44 UTC (permalink / raw) To: David Masterson; +Cc: help-gnu-emacs David Masterson <dsmasterson@gmail.com> writes: > 1. If any of the listed packages are not loaded currently, then the > current package will not be loaded. Period. > 2. #1 + "magic" will be done to ensure that, once the listed packages > are loaded, the current package will be (auto?) loaded. > > If #1 is correct, I do not know how the current package will ever be > loaded if ":after" fails. If #2 is correct, I do not know what the > "magic" could be to safely do this. TL;DR: #2, see below. > For instance: > > (use-package org-ac :after org) > (use-package org) This is what I get when I `macroexpand' the first `use-package' call with `use-package-always-defer' set to nil. [ If `u-p-a-defer' is set to t when I `macroexpand', the `eval-after-load' call reduces to nil on expand-time because this package is not installed, nor does `package.el' know how to install it because I only have gnu and nongnu elpa configured. ] --8<---------------cut here---------------start------------->8--- (progn (defvar use-package--warning3 #'(lambda (keyword err) (let ((msg (format "%s/%s: %s" 'org-ac keyword (error-message-string err)))) (display-warning 'use-package msg :error)))) (condition-case-unless-debug err (eval-after-load 'org '(if (not (require 'org-ac nil t)) (display-warning 'use-package (format "Cannot load %s" 'org-ac) :error))) (error (funcall use-package--warning3 :catch err)))) --8<---------------cut here---------------end--------------->8--- So, this might help you understand what is happening under the hood. Essentially, it will try to load org-ac, only after *all packages* listed in the :after section, showing a warning if loading org-ac fails. Keep in mind, according to the macroexpand result, that this also means that if you load the subpackage `org-ac' manually (via a hook, autoload, etc), it is not going to try to load `org' at all. I feel that this is kind of strange, but maybe it has its reasons. > My goal is to organwize my .emacs loading of 25+ packages to only load if > needed. That means (almost) all packages are deferred at startup and > will load itself and subpackages (minor modes, etc.) when I try to call > the package. This is what I hoped :after was for. > > Can someone advise on the proper use of ":after" and how to get > appropriate subpackages to also load when the main package is loaded. It seems that you opted to go with setting `u-p-a-defer' to t. And since you didn't mention :ensure at all, I assume you set `u-p-a-ensure' to t as well. In this case, order doesn't _really_ matter, you just need to `(use-package sub-pkg :after main-pkg :config your-other-configs)' on all your subpackages. Note, since you use `org' as an example, that you should probably `(use-package org)' first thing in your init.el, because otherwise something else is probably going to load builtin `org', and the Elpa `org' will complain afterwards about mismatched versions. -- Best, RY ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-08 4:05 ` David Masterson 2023-05-08 4:25 ` Ruijie Yu via Users list for the GNU Emacs text editor 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-08 4:05 UTC (permalink / raw) To: Ruijie Yu via Users list for the GNU Emacs text editor; +Cc: Ruijie Yu Thanks for the followup. Ruijie Yu via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> writes: > David Masterson <dsmasterson@gmail.com> writes: > >> 1. If any of the listed packages are not loaded currently, then the >> current package will not be loaded. Period. >> 2. #1 + "magic" will be done to ensure that, once the listed packages >> are loaded, the current package will be (auto?) loaded. >> >> If #1 is correct, I do not know how the current package will ever be >> loaded if ":after" fails. If #2 is correct, I do not know what the >> "magic" could be to safely do this. > > TL;DR: #2, see below. I tried to write it to be skimmable. ;) >> For instance: >> >> (use-package org-ac :after org) >> (use-package org) > > This is what I get when I `macroexpand' the first `use-package' call > with `use-package-always-defer' set to nil. Which I assumed is the default and goal (defer all packages until you need them). > [ If `u-p-a-defer' is set to t when I `macroexpand', the > `eval-after-load' call reduces to nil on expand-time because this > package is not installed, nor does `package.el' know how to install it > because I only have gnu and nongnu elpa configured. ] Understood > (progn > (defvar use-package--warning3 > #'(lambda > (keyword err) > (let > ((msg > (format "%s/%s: %s" 'org-ac keyword > (error-message-string err)))) > (display-warning 'use-package msg :error)))) > (condition-case-unless-debug err > (eval-after-load 'org > '(if > (not > (require 'org-ac nil t)) > (display-warning 'use-package > (format "Cannot load %s" 'org-ac) > :error))) > (error > (funcall use-package--warning3 :catch err)))) Hmm. > So, this might help you understand what is happening under the hood. > Essentially, it will try to load org-ac, only after *all packages* > listed in the :after section, showing a warning if loading org-ac fails. I presume the 'if' gets more complicated and more 'eval-after-load' calls are done if :after lists more than one item, correct? > Keep in mind, according to the macroexpand result, that this also means > that if you load the subpackage `org-ac' manually (via a hook, autoload, > etc), it is not going to try to load `org' at all. I feel that this is > kind of strange, but maybe it has its reasons. Hmm. > It seems that you opted to go with setting `u-p-a-defer' to t. And > since you didn't mention :ensure at all, I assume you set `u-p-a-ensure' > to t as well. I'm looking at 'ensure'. I currently use 'auto-update' package. > In this case, order doesn't _really_ matter, you just need to > `(use-package sub-pkg :after main-pkg :config your-other-configs)' on > all your subpackages. I thought I had. I even had 'org' before 'org-ac' (but after 'auto-complete') in .emacs, but things weren't working right until I hand loaded 'org-ac'. I'll have to test this some more. How did you do the macroexpand to debug this? I haven't seen that technique. Looks interesting. > Note, since you use `org' as an example, that you should probably > `(use-package org)' first thing in your init.el, because otherwise > something else is probably going to load builtin `org', and the Elpa > `org' will complain afterwards about mismatched versions. Yes, I ran into that. I wound up removing the builtin manually. I believe org has been trying to fix this. Thanks -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 4:05 ` David Masterson @ 2023-05-08 4:25 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-08 5:20 ` David Masterson 0 siblings, 1 reply; 37+ messages in thread From: Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-08 4:25 UTC (permalink / raw) To: David Masterson; +Cc: Ruijie Yu via Users list for the GNU Emacs text editor David Masterson <dsmasterson@gmail.com> writes: > Thanks for the followup. > > Ruijie Yu via Users list for the GNU Emacs text editor > <help-gnu-emacs@gnu.org> writes: > >> David Masterson <dsmasterson@gmail.com> writes: >> >>> 1. If any of the listed packages are not loaded currently, then the >>> current package will not be loaded. Period. >>> 2. #1 + "magic" will be done to ensure that, once the listed packages >>> are loaded, the current package will be (auto?) loaded. >>> >>> If #1 is correct, I do not know how the current package will ever be >>> loaded if ":after" fails. If #2 is correct, I do not know what the >>> "magic" could be to safely do this. >> >> TL;DR: #2, see below. > > I tried to write it to be skimmable. ;) > >>> For instance: >>> >>> (use-package org-ac :after org) >>> (use-package org) >> >> This is what I get when I `macroexpand' the first `use-package' call >> with `use-package-always-defer' set to nil. > > Which I assumed is the default and goal (defer all packages until you > need them). > >> [ If `u-p-a-defer' is set to t when I `macroexpand', the >> `eval-after-load' call reduces to nil on expand-time because this >> package is not installed, nor does `package.el' know how to install it >> because I only have gnu and nongnu elpa configured. ] > > Understood > >> (progn >> (defvar use-package--warning3 >> #'(lambda >> (keyword err) >> (let >> ((msg >> (format "%s/%s: %s" 'org-ac keyword >> (error-message-string err)))) >> (display-warning 'use-package msg :error)))) >> (condition-case-unless-debug err >> (eval-after-load 'org >> '(if >> (not >> (require 'org-ac nil t)) >> (display-warning 'use-package >> (format "Cannot load %s" 'org-ac) >> :error))) >> (error >> (funcall use-package--warning3 :catch err)))) > > Hmm. > >> So, this might help you understand what is happening under the hood. >> Essentially, it will try to load org-ac, only after *all packages* >> listed in the :after section, showing a warning if loading org-ac fails. > > I presume the 'if' gets more complicated and more 'eval-after-load' > calls are done if :after lists more than one item, correct? Yes, see this snippet: What I ran: --8<---------------cut here---------------start------------->8--- (let ((use-package-always-defer nil) (use-package-always-ensure nil)) (macroexpand-1 '(use-package foo :after (bar baz)))) --8<---------------cut here---------------end--------------->8--- What I got: --8<---------------cut here---------------start------------->8--- (progn (defvar use-package--warning9 #'(lambda (keyword err) (let ((msg (format "%s/%s: %s" 'foo keyword (error-message-string err)))) (display-warning 'use-package msg :error)))) (condition-case-unless-debug err (eval-after-load 'baz '(eval-after-load 'bar '(if (not (require 'foo nil t)) (display-warning 'use-package (format "Cannot load %s" 'foo) :error)))) (error (funcall use-package--warning9 :catch err)))) --8<---------------cut here---------------end--------------->8--- This also answers your question of "how to macroexpand". There are also the two functions `macroexpand' and `macroexpand-all' which you can try to use as well. >> Keep in mind, according to the macroexpand result, that this also means >> that if you load the subpackage `org-ac' manually (via a hook, autoload, >> etc), it is not going to try to load `org' at all. I feel that this is >> kind of strange, but maybe it has its reasons. > > Hmm. > >> It seems that you opted to go with setting `u-p-a-defer' to t. And >> since you didn't mention :ensure at all, I assume you set `u-p-a-ensure' >> to t as well. > > I'm looking at 'ensure'. I currently use 'auto-update' package. > >> In this case, order doesn't _really_ matter, you just need to >> `(use-package sub-pkg :after main-pkg :config your-other-configs)' on >> all your subpackages. > > I thought I had. I even had 'org' before 'org-ac' (but after > 'auto-complete') in .emacs, but things weren't working right until I > hand loaded 'org-ac'. I'll have to test this some more. > > How did you do the macroexpand to debug this? I haven't seen that > technique. Looks interesting. > >> Note, since you use `org' as an example, that you should probably >> `(use-package org)' first thing in your init.el, because otherwise >> something else is probably going to load builtin `org', and the Elpa >> `org' will complain afterwards about mismatched versions. > > Yes, I ran into that. I wound up removing the builtin manually. I > believe org has been trying to fix this. > > Thanks -- Best, RY ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 4:25 ` Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-08 5:20 ` David Masterson 0 siblings, 0 replies; 37+ messages in thread From: David Masterson @ 2023-05-08 5:20 UTC (permalink / raw) To: Ruijie Yu via Users list for the GNU Emacs text editor; +Cc: Ruijie Yu Ruijie Yu via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> writes: > Yes, see this snippet: > > What I ran: > > (let ((use-package-always-defer nil) (use-package-always-ensure nil)) > (macroexpand-1 '(use-package foo :after (bar baz)))) > > > What I got: > > (progn > (defvar use-package--warning9 > #'(lambda > (keyword err) > (let > ((msg > (format "%s/%s: %s" 'foo keyword > (error-message-string err)))) > (display-warning 'use-package msg :error)))) > (condition-case-unless-debug err > (eval-after-load 'baz > '(eval-after-load 'bar > '(if > (not > (require 'foo nil t)) > (display-warning 'use-package > (format "Cannot load %s" 'foo) > :error)))) > (error > (funcall use-package--warning9 :catch err)))) > > This also answers your question of "how to macroexpand". There are > also the two functions `macroexpand' and `macroexpand-all' which you > can try to use as well. Thanks again -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 0:05 use-package :after ?? David Masterson 2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-08 12:19 ` Eli Zaretskii 2023-05-10 23:56 ` David Masterson 1 sibling, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-08 12:19 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Date: Sun, 07 May 2023 17:05:57 -0700 > > This might be a documentation problem... > > I'm not sure I understand ":after" (and a few other related things) in > use-package. The info docs talk about it ensuring that the current > package is loaded after the other listed packages, but it's not quite > explicit (to me) about what that means. I interpret it in two possible > ways: > > 1. If any of the listed packages are not loaded currently, then the > current package will not be loaded. Period. > 2. #1 + "magic" will be done to ensure that, once the listed packages > are loaded, the current package will be (auto?) loaded. Which parts of the documentation make the answer to this question less than obvious? There should be no need to expand the use-package macros to understand what it is doing; just reading the documentation should be enough (and it is for me, FWIW). > My goal is to organwize my .emacs loading of 25+ packages to only load if > needed. That means (almost) all packages are deferred at startup and > will load itself and subpackages (minor modes, etc.) when I try to call > the package. This is what I hoped :after was for. AFAIU, :after is not about deferral, it's about the conditions to load. use-package has other features for deferral, like :defer and use-package-always-defer. And for loading when needed you have autoloads, of course. > Can someone advise on the proper use of ":after" and how to get > appropriate subpackages to also load when the main package is loaded. > For instance: > > (use-package org-ac :after org) > (use-package org) What is unclear or not self-evident about the above? ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-08 12:19 ` Eli Zaretskii @ 2023-05-10 23:56 ` David Masterson 2023-05-11 3:24 ` David Masterson 2023-05-11 5:54 ` Eli Zaretskii 0 siblings, 2 replies; 37+ messages in thread From: David Masterson @ 2023-05-10 23:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Hi Eli, I'm still confused about where the problem is, but I'll try to explain. Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Date: Sun, 07 May 2023 17:05:57 -0700 >> >> This might be a documentation problem... I have a fairly lengthy .emacs (probably nowhere near as complex as yours) that I've setup use-package to speed up starting Emacs. I've (mostly) alphabetized my packages and use-package them in sequence. I've set to deferred loading and I'm using :after to get subpackages to load when the main package loads (ie: org-ac <- org). My current problem is that org-ac is not loading after first using org even though I've the :after flag on org-ac. If I hand load og-ac, everthing is fine. >> I'm not sure I understand ":after" (and a few other related things) in >> use-package. The info docs talk about it ensuring that the current >> package is loaded after the other listed packages, but it's not quite >> explicit (to me) about what that means. I interpret it in two possible >> ways: The key section is 3.5 in use-package infodoc. >> 1. If any of the listed packages are not loaded currently, then the >> current package will not be loaded. Period. >> 2. #1 + "magic" will be done to ensure that, once the listed packages >> are loaded, the current package will be (auto?) loaded. > > Which parts of the documentation make the answer to this question less > than obvious? There should be no need to expand the use-package > macros to understand what it is doing; just reading the documentation > should be enough (and it is for me, FWIW). Section 3.1 talks about load and autoload, but could be extended to talk about how use-package uses autoload to make things happen -- at least by mentioning what use-package things (like :con fig) will happen at autoload versus when the use-package is called. In section 3.5, the first sentence talks about "configure", but shouldn't it really be "load and configure"? Also, the example is not really good because it says that "‘:after’ is not strictly necessary" in this case. Better to reverse it and say what will happen in both the demand and defered cases (I don't use it, but I guess this should also be done in 3.4 and 3.6). >> My goal is to organize my .emacs loading of 25+ packages to only load if >> needed. That means (almost) all packages are deferred at startup and >> will load itself and subpackages (minor modes, etc.) when I try to call >> the package. This is what I hoped :after was for. > > AFAIU, :after is not about deferral, it's about the conditions to > load. use-package has other features for deferral, like :defer and > use-package-always-defer. > > And for loading when needed you have autoloads, of course. Yes, :after is about when to load. I'm looking to figure out why org-ac didn't load when I needed for org. I need more time to play with it. >> Can someone advise on the proper use of ":after" and how to get >> appropriate subpackages to also load when the main package is loaded. >> For instance: >> >> (use-package org-ac :after org) >> (use-package org) > > What is unclear or not self-evident about the above? From the macroexpand, I now understand some of the "magic" of autoload. I'm still missing how the :config (etc.) happens after the autoload to ensure that the package is configured. That's important in helping me look for side-effects in the :config that didn't work with autoload (ie. I need :demand somewhere). -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-10 23:56 ` David Masterson @ 2023-05-11 3:24 ` David Masterson 2023-05-11 6:14 ` Eli Zaretskii 2023-05-11 5:54 ` Eli Zaretskii 1 sibling, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-11 3:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Wow, i need to proofread more... David Masterson <dsmasterson@gmail.com> writes: > Hi Eli, > > I'm still confused about where the problem is, but I'll try to explain. > > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: David Masterson <dsmasterson@gmail.com> >>> Date: Sun, 07 May 2023 17:05:57 -0700 >>> >>> This might be a documentation problem... > > I have a fairly lengthy .emacs (probably nowhere near as complex as > yours) that I've setup use-package to speed up starting Emacs. I've > (mostly) alphabetized my packages and use-package them in sequence. > I've set to deferred loading and I'm using :after to get subpackages to > load when the main package loads (ie: org-ac <- org). > > My current problem is that org-ac is not loading after first using org > even though I've added the :after flag on org-ac. If I hand load og-ac, > everthing is fine. > >>> I'm not sure I understand ":after" (and a few other related things) in >>> use-package. The info docs talk about it ensuring that the current >>> package is loaded after the other listed packages, but it's not quite >>> explicit (to me) about what that means. I interpret it in two possible >>> ways: > > The key section is 3.5 in use-package infodoc. > >>> 1. If any of the listed packages are not loaded currently, then the >>> current package will not be loaded. Period. >>> 2. #1 + "magic" will be done to ensure that, once the listed packages >>> are loaded, the current package will be (auto?) loaded. >> >> Which parts of the documentation make the answer to this question less >> than obvious? There should be no need to expand the use-package >> macros to understand what it is doing; just reading the documentation >> should be enough (and it is for me, FWIW). > > Section 3.1 talks about load and autoload, but could be extended to talk > about how use-package uses autoload to make things happen -- at least by > mentioning what use-package things (like :con fig) will happen at > autoload versus when the use-package is called. > > In section 3.5, the first sentence talks about "configure", but > shouldn't it really be "load and configure"? Also, the example is not > really good because it says that "':after' is not strictly necessary" > in this case. Better to reverse it (put ivy-avy first) and say what > will happen in both the demand and deferred cases (I don't use it, but > I guess this should also be done in 3.4 and 3.6). > >>> My goal is to organize my .emacs loading of 25+ packages to only load if >>> needed. That means (almost) all packages are deferred at startup and >>> will load itself and subpackages (minor modes, etc.) when I try to call >>> the package. This is what I hoped :after was for. >> >> AFAIU, :after is not about deferral, it's about the conditions to >> load. use-package has other features for deferral, like :defer and >> use-package-always-defer. >> >> And for loading when needed you have autoloads, of course. > > Yes, :after is about when to load. I'm looking to figure out why org-ac > didn't load when I needed it for org. I need more time to play with it. > >>> Can someone advise on the proper use of ":after" and how to get >>> appropriate subpackages to also load when the main package is loaded. >>> For instance: >>> >>> (use-package org-ac :after org) >>> (use-package org) >> >> What is unclear or not self-evident about the above? > > From the macroexpand, I now understand some of the "magic" of autoload. > I'm still missing how the :config (etc.) happens after the autoload to > ensure that the package is configured. That's important in helping me > look for side-effects in the :config that didn't work with autoload > (ie. maybe I need :demand somewhere). One thing I left out was that org-ac also depends on auto-complete-pcmp making the :after more complicated -- namely does order make a difference in how things should be loaded? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 3:24 ` David Masterson @ 2023-05-11 6:14 ` Eli Zaretskii 2023-05-11 21:24 ` David Masterson 0 siblings, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-11 6:14 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Wed, 10 May 2023 20:24:18 -0700 > > One thing I left out was that org-ac also depends on auto-complete-pcmp > making the :after more complicated -- namely does order make a > difference in how things should be loaded? Depends how? via autoloads or via :after? And why does it make thing more complicated? If package FOO should be loaded after BAR, and BAR should be loaded after BAZ, then the order I'd expect should be: BAZ, then BAR, then FOO. Right? ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 6:14 ` Eli Zaretskii @ 2023-05-11 21:24 ` David Masterson 2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-12 5:59 ` Eli Zaretskii 0 siblings, 2 replies; 37+ messages in thread From: David Masterson @ 2023-05-11 21:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Wed, 10 May 2023 20:24:18 -0700 >> >> One thing I left out was that org-ac also depends on auto-complete-pcmp >> making the :after more complicated -- namely does order make a >> difference in how things should be loaded? > > Depends how? via autoloads or via :after? > > And why does it make thing more complicated? If package FOO should be > loaded after BAR, and BAR should be loaded after BAZ, then the order > I'd expect should be: BAZ, then BAR, then FOO. Right? Yes. Will that be handled properly by the following (with global deferred loading)? (use-package foo :after bar :config (foo-setup) ) (use-package bar :after baz # :demand t ) (use-package baz) In particular, use-package will ensure foo-setup is called after foo is loaded, right? If I uncommented the :demand, should/would that make a difference? I may be overthinking this because of my org-ac issue and this looked like an obvious debugging approach. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 21:24 ` David Masterson @ 2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-12 6:33 ` Eli Zaretskii 2023-05-12 5:59 ` Eli Zaretskii 1 sibling, 1 reply; 37+ messages in thread From: Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-12 1:18 UTC (permalink / raw) To: David Masterson; +Cc: Eli Zaretskii, help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 1456 bytes --] David Masterson <dsmasterson@gmail.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: David Masterson <dsmasterson@gmail.com> >>> Cc: help-gnu-emacs@gnu.org >>> Date: Wed, 10 May 2023 20:24:18 -0700 >>> >>> One thing I left out was that org-ac also depends on auto-complete-pcmp >>> making the :after more complicated -- namely does order make a >>> difference in how things should be loaded? >> >> Depends how? via autoloads or via :after? >> >> And why does it make thing more complicated? If package FOO should be >> loaded after BAR, and BAR should be loaded after BAZ, then the order >> I'd expect should be: BAZ, then BAR, then FOO. Right? > > Yes. Will that be handled properly by the following (with global > deferred loading)? > > (use-package foo :after bar > :config (foo-setup) > ) > (use-package bar :after baz > # :demand t > ) > (use-package baz) > > In particular, use-package will ensure foo-setup is called after foo is > loaded, right? If I uncommented the :demand, should/would that make a > difference? > > I may be overthinking this because of my org-ac issue and this looked > like an obvious debugging approach. I attach my scratch session after macroexpanding with the :demand t (after a pretty-print because I don't think having everything on one line helps much). You should be able to figure out the answer to your question by looking at the generated form and playing around with the macroexpand form. [-- Attachment #2: macroexpand-result-scratch.eld --] [-- Type: text/plain, Size: 3341 bytes --] ;; This buffer is for text that is not saved, and for Lisp evaluation. ;; To create a file, visit it with C-x C-f and enter text in its buffer. (setq-local eval-expression-print-level nil) (macroexpand-all '(progn (use-package foo :after bar :config (foo-setup)) (use-package bar :after baz :demand t) (use-package baz))) (progn (progn (defvar use-package--warning3 #'(lambda (keyword err) (let ((msg (format "%s/%s: %s" 'foo keyword (error-message-string err)))) (display-warning 'use-package msg :error)))) (condition-case err (eval-after-load 'bar #'(lambda nil (if (not (require 'foo nil t)) (display-warning 'use-package (format "Cannot load %s" 'foo) :error) (condition-case err (progn (foo-setup) t) ((debug error) (funcall use-package--warning3 :config err)))))) ((debug error) (funcall use-package--warning3 :catch err)))) (progn (defvar use-package--warning4 #'(lambda (keyword err) (let ((msg (format "%s/%s: %s" 'bar keyword (error-message-string err)))) (display-warning 'use-package msg :error)))) (condition-case err (eval-after-load 'baz #'(lambda nil (if (not (require 'bar nil t)) (display-warning 'use-package (format "Cannot load %s" 'bar) :error)))) ((debug error) (funcall use-package--warning4 :catch err)))) (progn (defvar use-package--warning5 #'(lambda (keyword err) (let ((msg (format "%s/%s: %s" 'baz keyword (error-message-string err)))) (display-warning 'use-package msg :error)))) (condition-case err (if (not (require 'baz nil t)) (display-warning 'use-package (format "Cannot load %s" 'baz) :error)) ((debug error) (funcall use-package--warning5 :catch err))))) [-- Attachment #3: Type: text/plain, Size: 16 bytes --] -- Best, RY ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-12 6:33 ` Eli Zaretskii 2023-05-12 6:38 ` Emanuel Berg 0 siblings, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-12 6:33 UTC (permalink / raw) To: help-gnu-emacs > From: Ruijie Yu <ruijie@netyu.xyz> > Cc: Eli Zaretskii <eliz@gnu.org>, help-gnu-emacs@gnu.org > Date: Fri, 12 May 2023 09:18:14 +0800 > > David Masterson <dsmasterson@gmail.com> writes: > > > Eli Zaretskii <eliz@gnu.org> writes: > > > >> Depends how? via autoloads or via :after? > >> > >> And why does it make thing more complicated? If package FOO should be > >> loaded after BAR, and BAR should be loaded after BAZ, then the order > >> I'd expect should be: BAZ, then BAR, then FOO. Right? > > > > Yes. Will that be handled properly by the following (with global > > deferred loading)? > > > > (use-package foo :after bar > > :config (foo-setup) > > ) > > (use-package bar :after baz > > # :demand t > > ) > > (use-package baz) > > > > In particular, use-package will ensure foo-setup is called after foo is > > loaded, right? If I uncommented the :demand, should/would that make a > > difference? > > > > I may be overthinking this because of my org-ac issue and this looked > > like an obvious debugging approach. > > I attach my scratch session after macroexpanding with the :demand t > (after a pretty-print because I don't think having everything on one > line helps much). You should be able to figure out the answer to your > question by looking at the generated form and playing around with the > macroexpand form. Thanks, but the discussion here is centered on the documentation of use-package and whether it needs some improvements and clarifications. There should be no need to examine the macro-expansion of use-package's macros to reason about the documentation clarity. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 6:33 ` Eli Zaretskii @ 2023-05-12 6:38 ` Emanuel Berg 0 siblings, 0 replies; 37+ messages in thread From: Emanuel Berg @ 2023-05-12 6:38 UTC (permalink / raw) To: help-gnu-emacs Eli Zaretskii wrote: > Thanks, but the discussion here is centered on the > documentation of use-package and whether it needs some > improvements and clarifications. There should be no need to > examine the macro-expansion of use-package's macros to > reason about the documentation clarity. It should be automated based on the packages own properties, with no extra source needed, then the documentation will be even more clear - and it will work much better, as well. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 21:24 ` David Masterson 2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor @ 2023-05-12 5:59 ` Eli Zaretskii 2023-05-12 6:54 ` David Masterson 1 sibling, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-12 5:59 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Thu, 11 May 2023 14:24:08 -0700 > > Eli Zaretskii <eliz@gnu.org> writes: > > > And why does it make thing more complicated? If package FOO should be > > loaded after BAR, and BAR should be loaded after BAZ, then the order > > I'd expect should be: BAZ, then BAR, then FOO. Right? > > Yes. Will that be handled properly by the following (with global > deferred loading)? > > (use-package foo :after bar > :config (foo-setup) > ) > (use-package bar :after baz > # :demand t > ) > (use-package baz) > > In particular, use-package will ensure foo-setup is called after foo is > loaded, right? If I uncommented the :demand, should/would that make a > difference? I don't think it would make a difference, but why on earth are you using :demand there? It makes no sense to me. In any case, if there's something unclear here, the problem might be with the description of :demand, not with :after -- the node "Forcing loading" says :demand is overridden by :defer, but says nothing about :after. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 5:59 ` Eli Zaretskii @ 2023-05-12 6:54 ` David Masterson 2023-05-12 7:22 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-12 6:54 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Thu, 11 May 2023 14:24:08 -0700 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> > And why does it make thing more complicated? If package FOO should be >> > loaded after BAR, and BAR should be loaded after BAZ, then the order >> > I'd expect should be: BAZ, then BAR, then FOO. Right? >> >> Yes. Will that be handled properly by the following (with global >> deferred loading)? >> >> (use-package foo :after bar >> :config (foo-setup) >> ) >> (use-package bar :after baz >> # :demand t >> ) >> (use-package baz) >> >> In particular, use-package will ensure foo-setup is called after foo is >> loaded, right? If I uncommented the :demand, should/would that make a >> difference? > > I don't think it would make a difference, but why on earth are you > using :demand there? It makes no sense to me. It's a made up example to ask what would happen if one (or more) of the interdependent packages is demand loaded while the others are deferred. Via the :after, does the demand load of bar force baz and foo to load? If not, is that a problem? > In any case, if there's something unclear here, the problem might be > with the description of :demand, not with :after -- the node "Forcing > loading" says :demand is overridden by :defer, but says nothing about > :after. Possibly, but the above (made up) example was an attempt to determine if :after might effect when the loads occur due to a side effect. Perhaps this side effect might be important in certain cases. Oh, that Info node says :demand is overridden by :defer, but docstring for use-package-always-defer says assume :defer unless :demand is used. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 6:54 ` David Masterson @ 2023-05-12 7:22 ` Eli Zaretskii 2023-05-15 6:03 ` David Masterson [not found] ` <87pm72m8rc.fsf@penguin> 0 siblings, 2 replies; 37+ messages in thread From: Eli Zaretskii @ 2023-05-12 7:22 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Thu, 11 May 2023 23:54:06 -0700 > > > In any case, if there's something unclear here, the problem might be > > with the description of :demand, not with :after -- the node "Forcing > > loading" says :demand is overridden by :defer, but says nothing about > > :after. > > Possibly, but the above (made up) example was an attempt to determine if > :after might effect when the loads occur due to a side effect. Perhaps > this side effect might be important in certain cases. > > Oh, that Info node says :demand is overridden by :defer, but docstring > for use-package-always-defer says assume :defer unless :demand is used. Are we still talking about :after? My questions were meant to figure out whether :after's documentation needs some improvements. If everything is clear with :after, and we are talking about :demand and :defer, let's talk about those two. The text you quote is about use-package-always-defer, not about :defer, so how is that a contradiction to whether :defer overrides :demand? ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 7:22 ` Eli Zaretskii @ 2023-05-15 6:03 ` David Masterson 2023-05-15 11:36 ` Eli Zaretskii [not found] ` <87pm72m8rc.fsf@penguin> 1 sibling, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-15 6:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Thu, 11 May 2023 23:54:06 -0700 >> >> > In any case, if there's something unclear here, the problem might be >> > with the description of :demand, not with :after -- the node "Forcing >> > loading" says :demand is overridden by :defer, but says nothing about >> > :after. >> >> Possibly, but the above (made up) example was an attempt to determine if >> :after might effect when the loads occur due to a side effect. Perhaps >> this side effect might be important in certain cases. >> >> Oh, that Info node says :demand is overridden by :defer, but docstring >> for use-package-always-defer says assume :defer unless :demand is used. > > Are we still talking about :after? My questions were meant to figure > out whether :after's documentation needs some improvements. > > If everything is clear with :after, and we are talking about :demand > and :defer, let's talk about those two. The text you quote is about > use-package-always-defer, not about :defer, so how is that a > contradiction to whether :defer overrides :demand? Question: why would anyone include both :defer and :demand in one use-package? Syntactically, it's appropriate to answer the question of which takes precedence. Semantically, though, most users wouldn't do that. My question goes to the effect of :after in connecting a tree of packages that may have been setup with some :demand and some :defer. This can occur by direct usage of :demand and :defer *or* by setting use-package-always-defer and overriding it with :demand in some packages. Example: (use-package a :defer t :after b) (use-package b :demand t :after c) (use-package c :defer t) Does b force the loading of a and/or c because of :after and the mixed :demand/:defer? Or is b forced to defer? The potential (lack of?) side-effects here should be mentioned as it might effect on :config for a, b, or c. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 6:03 ` David Masterson @ 2023-05-15 11:36 ` Eli Zaretskii 2023-05-15 22:19 ` David Masterson 0 siblings, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-15 11:36 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Sun, 14 May 2023 23:03:19 -0700 > > My question goes to the effect of :after in connecting a tree of > packages that may have been setup with some :demand and some :defer. > This can occur by direct usage of :demand and :defer *or* by setting > use-package-always-defer and overriding it with :demand in some > packages. Example: > > (use-package a :defer t :after b) > (use-package b :demand t :after c) > (use-package c :defer t) > > Does b force the loading of a and/or c because of :after and the mixed > :demand/:defer? Or is b forced to defer? a will be loaded immediately after b is loaded. b will be loaded immediately after c is loaded. > The potential (lack of?) side-effects here should be mentioned as it > might effect on :config for a, b, or c. Sorry, I don't understand this. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 11:36 ` Eli Zaretskii @ 2023-05-15 22:19 ` David Masterson 2023-05-16 16:16 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-15 22:19 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Sun, 14 May 2023 23:03:19 -0700 >> >> My question goes to the effect of :after in connecting a tree of >> packages that may have been setup with some :demand and some :defer. >> This can occur by direct usage of :demand and :defer *or* by setting >> use-package-always-defer and overriding it with :demand in some >> packages. Example: >> >> (use-package a :defer t :after b) >> (use-package b :demand t :after c) >> (use-package c :defer t) >> >> Does b force the loading of a and/or c because of :after and the mixed >> :demand/:defer? Or is b forced to defer? > > a will be loaded immediately after b is loaded. > b will be loaded immediately after c is loaded. Are you implying that b is (effectively?) deferred until after c? Or, another way of saying it is that demand/defer has no meaning when after is applied to the package (c controls demand/defer). >> The potential (lack of?) side-effects here should be mentioned as it >> might effect on :config for a, b, or c. > > Sorry, I don't understand this. I'm overthinking (I think). The statement ":defer/:demand has no meaning when :after is used -- the package will be loaded immediately after the listed packages" makes sense to me. I haven't used them yet, but should something like this also be said for :if and :requires? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 22:19 ` David Masterson @ 2023-05-16 16:16 ` Eli Zaretskii 0 siblings, 0 replies; 37+ messages in thread From: Eli Zaretskii @ 2023-05-16 16:16 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Mon, 15 May 2023 15:19:59 -0700 > > >> (use-package a :defer t :after b) > >> (use-package b :demand t :after c) > >> (use-package c :defer t) > >> > >> Does b force the loading of a and/or c because of :after and the mixed > >> :demand/:defer? Or is b forced to defer? > > > > a will be loaded immediately after b is loaded. > > b will be loaded immediately after c is loaded. > > Are you implying that b is (effectively?) deferred until after c? Or, > another way of saying it is that demand/defer has no meaning when after > is applied to the package (c controls demand/defer). Yes, that is my reading of the docs. > The statement ":defer/:demand has no meaning when :after is used -- the > package will be loaded immediately after the listed packages" makes > sense to me. > > I haven't used them yet, but should something like this also be said for > :if and :requires? Isn't that clear from their description? ^ permalink raw reply [flat|nested] 37+ messages in thread
[parent not found: <87pm72m8rc.fsf@penguin>]
* Re: use-package :after ?? [not found] ` <87pm72m8rc.fsf@penguin> @ 2023-05-15 6:16 ` David Masterson 2023-05-15 11:42 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-15 6:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs David Masterson <dsmasterson@gmail.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: David Masterson <dsmasterson@gmail.com> >>> Cc: help-gnu-emacs@gnu.org >>> Date: Thu, 11 May 2023 23:54:06 -0700 >>> >>> > In any case, if there's something unclear here, the problem might be >>> > with the description of :demand, not with :after -- the node "Forcing >>> > loading" says :demand is overridden by :defer, but says nothing about >>> > :after. >>> >>> Possibly, but the above (made up) example was an attempt to determine if >>> :after might effect when the loads occur due to a side effect. Perhaps >>> this side effect might be important in certain cases. >>> >>> Oh, that Info node says :demand is overridden by :defer, but docstring >>> for use-package-always-defer says assume :defer unless :demand is used. >> >> Are we still talking about :after? My questions were meant to figure >> out whether :after's documentation needs some improvements. >> >> If everything is clear with :after, and we are talking about :demand >> and :defer, let's talk about those two. The text you quote is about >> use-package-always-defer, not about :defer, so how is that a >> contradiction to whether :defer overrides :demand? > > Question: why would anyone include both :defer and :demand in one > use-package? Syntactically, it's appropriate to answer the question of > which takes precedence. Semantically, though, most users wouldn't do > that. > > My question goes to the effect of :after in connecting a tree of > packages that may have been setup with some :demand and some :defer. > This can occur by direct usage of :demand and :defer *or* by setting > use-package-always-defer and overriding it with :demand in some > packages. Example: > > (use-package a :defer t :after b) > (use-package b :demand t :after c) > (use-package c :defer t) > > Does b force the loading of a and/or c because of :after and the mixed > :demand/:defer? Or is b forced to defer? > > The potential (lack of?) side-effects here should be mentioned as it > might effect on :config for a, b, or c. Minor addition: If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' and I later hit that key, that would load c, then b, then a -- right? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 6:16 ` David Masterson @ 2023-05-15 11:42 ` Eli Zaretskii 2023-05-15 22:27 ` David Masterson 0 siblings, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-15 11:42 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Sun, 14 May 2023 23:16:52 -0700 > > If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' > and I later hit that key, that would load c, then b, then a -- right? No, based on my reading of the docs I think it will cause an error (because b cannot be loaded without c being loaded). ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 11:42 ` Eli Zaretskii @ 2023-05-15 22:27 ` David Masterson 2023-05-16 16:19 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-15 22:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Sun, 14 May 2023 23:16:52 -0700 >> >> If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' >> and I later hit that key, that would load c, then b, then a -- right? > > No, based on my reading of the docs I think it will cause an error > (because b cannot be loaded without c being loaded). D**n typo -- it should've been 'a-mode'. But, as I wrote it, I think you're right. My question was that the :bind key would force the load of the bottom of the tree and the :afters would then force loading of the parent packages. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-15 22:27 ` David Masterson @ 2023-05-16 16:19 ` Eli Zaretskii 2023-05-16 20:44 ` David Masterson 0 siblings, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-16 16:19 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Mon, 15 May 2023 15:27:53 -0700 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> From: David Masterson <dsmasterson@gmail.com> > >> Cc: help-gnu-emacs@gnu.org > >> Date: Sun, 14 May 2023 23:16:52 -0700 > >> > >> If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' > >> and I later hit that key, that would load c, then b, then a -- right? > > > > No, based on my reading of the docs I think it will cause an error > > (because b cannot be loaded without c being loaded). > > D**n typo -- it should've been 'a-mode'. I don't think it matters. AFAIU, :bind doesn't load the package except via explicit autoloads (i.e. not via use-package machinery). > My question was that the :bind key would force the load of the > bottom of the tree and the :afters would then force loading of the > parent packages. :after cannot force loading the parents, AFAIU. I don't understand why you think it should (or could). ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-16 16:19 ` Eli Zaretskii @ 2023-05-16 20:44 ` David Masterson 2023-05-17 1:40 ` David Masterson 2023-05-17 11:42 ` Eli Zaretskii 0 siblings, 2 replies; 37+ messages in thread From: David Masterson @ 2023-05-16 20:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Mon, 15 May 2023 15:27:53 -0700 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> >> From: David Masterson <dsmasterson@gmail.com> >> >> Cc: help-gnu-emacs@gnu.org >> >> Date: Sun, 14 May 2023 23:16:52 -0700 >> >> >> >> If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' >> >> and I later hit that key, that would load c, then b, then a -- right? >> > >> > No, based on my reading of the docs I think it will cause an error >> > (because b cannot be loaded without c being loaded). >> >> D**n typo -- it should've been 'a-mode'. > > I don't think it matters. AFAIU, :bind doesn't load the package > except via explicit autoloads (i.e. not via use-package machinery). I think we're saying the same thing. The bound key will call 'a-mode which will trigger the autoload setup by use-package because a was deferred. >> My question was that the :bind key would force the load of the >> bottom of the tree and the :afters would then force loading of the >> parent packages. > > :after cannot force loading the parents, AFAIU. I don't understand > why you think it should (or could). The :after(s) say there is a relationship between a, b, and c -- presumably, in the user's setup, a won't be used without b (same w/ b->c). Therefore, if the :after on a doesn't kick the loading of the deferred b, then it must be assumed that a does (require 'b) (and similar b->c) in which case is there a need for :after? Each package would handle it internally via 'require'. I'm assuming there is a reason for :after in the case where a, b, and c are not directly related (ie. no internal requires), but are related because of the user's environment. For instance, a (made up) example might be when the user brings in (say) a specialized spell checker then he's going to work with Org (ie. (use-package checker :after org)). In this case, the spell checker would hook itself into Org -- Org would not know anything else about it. Does that make sense? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-16 20:44 ` David Masterson @ 2023-05-17 1:40 ` David Masterson 2023-05-17 11:42 ` Eli Zaretskii 1 sibling, 0 replies; 37+ messages in thread From: David Masterson @ 2023-05-17 1:40 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs David Masterson <dsmasterson@gmail.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> From: David Masterson <dsmasterson@gmail.com> >>> Cc: help-gnu-emacs@gnu.org >>> Date: Mon, 15 May 2023 15:27:53 -0700 >>> >>> Eli Zaretskii <eliz@gnu.org> writes: >>> >>> >> From: David Masterson <dsmasterson@gmail.com> >>> >> Cc: help-gnu-emacs@gnu.org >>> >> Date: Sun, 14 May 2023 23:16:52 -0700 >>> >> >>> >> If a, b, and c were all ':defer t' and a had ':bind ("C-." . b-mode)' >>> >> and I later hit that key, that would load c, then b, then a -- right? >>> > >>> > No, based on my reading of the docs I think it will cause an error >>> > (because b cannot be loaded without c being loaded). >>> >>> D**n typo -- it should've been 'a-mode'. >> >> I don't think it matters. AFAIU, :bind doesn't load the package >> except via explicit autoloads (i.e. not via use-package machinery). > > I think we're saying the same thing. The bound key will call 'a-mode > which will trigger the autoload setup by use-package because a was > deferred. > >>> My question was that the :bind key would force the load of the >>> bottom of the tree and the :afters would then force loading of the >>> parent packages. >> >> :after cannot force loading the parents, AFAIU. I don't understand >> why you think it should (or could). > > The :after(s) say there is a relationship between a, b, and c -- > presumably, in the user's setup, a won't be used without b (same w/ > b->c). Therefore, if the :after on a doesn't kick the loading of the > deferred b, then it must be assumed that a does (require 'b) (and > similar b->c) in which case is there a need for :after? Each package > would handle it internally via 'require'. > > I'm assuming there is a reason for :after in the case where a, b, and c > are not directly related (ie. no internal requires), but are related > because of the user's environment. For instance, a (made up) example > might be when the user brings in (say) a specialized spell checker then > he's going to work with Org (ie. (use-package checker :after org)). In > this case, the spell checker would hook itself into Org -- Org would not > know anything else about it. > > Does that make sense? Ultimately, I think two statements should be made about :after in the documentation: 1. :demand/:defer are meaningless when :after is present. 2. :after ensures that the current package is loaded after the listed packages (which is different than failing if the listed packages are not already loaded when loading the current package). The current package may load immediately because the listed packages are already loaded or use-package will setup "magic" to autoload this package when the listed packages have been loaded. That's a little more wordy than I wanted. With respect to :requires, it's explicitly says that it happens at time of use-package call which is fine. With respect to :if (etc.), it doesn't explicitly say, but it's implied by the docs for :requires. It should probably be explicit. Does this make sense? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-16 20:44 ` David Masterson 2023-05-17 1:40 ` David Masterson @ 2023-05-17 11:42 ` Eli Zaretskii 2023-05-17 20:30 ` David Masterson 1 sibling, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-17 11:42 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Tue, 16 May 2023 13:44:25 -0700 > > > :after cannot force loading the parents, AFAIU. I don't understand > > why you think it should (or could). > > The :after(s) say there is a relationship between a, b, and c -- > presumably, in the user's setup, a won't be used without b (same w/ > b->c). No, :after says that a will be loaded immediately after b, and _only_ if b is loaded. If b is never loaded, neither will a. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-17 11:42 ` Eli Zaretskii @ 2023-05-17 20:30 ` David Masterson 2023-05-18 10:36 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-17 20:30 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Tue, 16 May 2023 13:44:25 -0700 >> >> > :after cannot force loading the parents, AFAIU. I don't understand >> > why you think it should (or could). >> >> The :after(s) say there is a relationship between a, b, and c -- >> presumably, in the user's setup, a won't be used without b (same w/ >> b->c). > > No, :after says that a will be loaded immediately after b, and _only_ > if b is loaded. If b is never loaded, neither will a. So, you're saying, if (via :bind) I call a-mode before a and b have been loaded (but their autoloads are setup), b will not be loaded and, therefore, neither will a (because of :after) causing the call to a-mode via the :bind to fail? :bind is one of the triggers to autoload the package (a in this case), so this would be unexpected. In your mind, what is the use-case for :after? If there is a requirement that a must have b, you would expect a to require b internally (no need for after). If it is a user desire that, when he uses a, he will also want b, then, if b is not loaded by the :after, the user would have to use :config to require b defeating the need for :after. Am I missing something?!? I wish I could put all of this discussion in a set of test cases to run through Emacs. Would ERT be the tool for that (never used it)? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-17 20:30 ` David Masterson @ 2023-05-18 10:36 ` Eli Zaretskii 2023-05-18 12:41 ` Lynn Winebarger 2023-05-19 3:03 ` David Masterson 0 siblings, 2 replies; 37+ messages in thread From: Eli Zaretskii @ 2023-05-18 10:36 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Wed, 17 May 2023 13:30:24 -0700 > > Eli Zaretskii <eliz@gnu.org> writes: > > > No, :after says that a will be loaded immediately after b, and _only_ > > if b is loaded. If b is never loaded, neither will a. > > So, you're saying, if (via :bind) I call a-mode before a and b have been > loaded (but their autoloads are setup), b will not be loaded and, > therefore, neither will a (because of :after) causing the call to a-mode > via the :bind to fail? No, I'm saying that :bind will cause Emacs to attempt loading a if you invoke the command to which the key was bound by :bind. But if a cannot be loaded before b, then when Emacs attempts to auto-load a, it will likely signal an error because b was not loaded yet. Or maybe a will load successfully, but doing so will not produce the effect the user wanted, because b is not loaded. > :bind is one of the triggers to autoload the > package (a in this case), so this would be unexpected. Which part is unexpected? > In your mind, what is the use-case for :after? Like I said before: :after is just a short for eval-after-load. So any use case where a package has another package as its prerequisite can use :after. But that doesn't mean you can now forget about loading those prerequisites. > If there is a > requirement that a must have b, you would expect a to require b > internally (no need for after). Not necessarily. a might need b because the user wants to use them in combination. Or a might change its behavior if b is loaded (testing that via featurep), for example. Or for some other reason. use-package doesn't expect a to require b. If a requires b, then perhaps you don't need to mention the :after dependency between them at all. > Am I missing something?!? You are over-thinking use-package. It is nothing more than an easy way of define conditions for loading packages and their autoloads. > I wish I could put all of this discussion in a set of test cases to > run through Emacs. Would ERT be the tool for that (never used it)? If you want to run tests, ERT is the framework for doing that, yes. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-18 10:36 ` Eli Zaretskii @ 2023-05-18 12:41 ` Lynn Winebarger 2023-05-19 2:40 ` David Masterson 2023-05-19 3:03 ` David Masterson 1 sibling, 1 reply; 37+ messages in thread From: Lynn Winebarger @ 2023-05-18 12:41 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Thu, May 18, 2023 at 6:36 AM Eli Zaretskii <eliz@gnu.org> wrote: > > From: David Masterson <dsmasterson@gmail.com> > > I wish I could put all of this discussion in a set of test cases to > > run through Emacs. Would ERT be the tool for that (never used it)? > > If you want to run tests, ERT is the framework for doing that, yes. Hi, David, If you're looking for practical guidance on how emacs maintainers create and manage tests, you may find test/README and admin/notes/emba useful. Lynn ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-18 12:41 ` Lynn Winebarger @ 2023-05-19 2:40 ` David Masterson 0 siblings, 0 replies; 37+ messages in thread From: David Masterson @ 2023-05-19 2:40 UTC (permalink / raw) To: Lynn Winebarger; +Cc: Eli Zaretskii, help-gnu-emacs Lynn Winebarger <owinebar@gmail.com> writes: > On Thu, May 18, 2023 at 6:36 AM Eli Zaretskii <eliz@gnu.org> wrote: >> > From: David Masterson <dsmasterson@gmail.com> >> > I wish I could put all of this discussion in a set of test cases to >> > run through Emacs. Would ERT be the tool for that (never used it)? >> >> If you want to run tests, ERT is the framework for doing that, yes. > > Hi, David, > If you're looking for practical guidance on how emacs maintainers > create and manage tests, you may find test/README and admin/notes/emba > useful. Thanks for the thought. Where are these files? -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-18 10:36 ` Eli Zaretskii 2023-05-18 12:41 ` Lynn Winebarger @ 2023-05-19 3:03 ` David Masterson 1 sibling, 0 replies; 37+ messages in thread From: David Masterson @ 2023-05-19 3:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Wed, 17 May 2023 13:30:24 -0700 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> > No, :after says that a will be loaded immediately after b, and _only_ >> > if b is loaded. If b is never loaded, neither will a. >> >> So, you're saying, if (via :bind) I call a-mode before a and b have been >> loaded (but their autoloads are setup), b will not be loaded and, >> therefore, neither will a (because of :after) causing the call to a-mode >> via the :bind to fail? > > No, I'm saying that :bind will cause Emacs to attempt loading a if you > invoke the command to which the key was bound by :bind. But if a > cannot be loaded before b, then when Emacs attempts to auto-load a, it > will likely signal an error because b was not loaded yet. Or maybe a > will load successfully, but doing so will not produce the effect the > user wanted, because b is not loaded. Ahh, a test is needed to determine how to adjust the docs to better explain this without getting into the ELisp weeds. >> :bind is one of the triggers to autoload the >> package (a in this case), so this would be unexpected. > > Which part is unexpected? Maybe it's my reading. I read :after as a requirement that use-package could enforce by loading b (if necessary) for a at the appropriate time. You seem to be reading it as a requirement that, if not met already, will cause an error of some sort. I suppose my view would be eval-before-load (which doesn't exist) whereas yours fits eval-after-load. >> In your mind, what is the use-case for :after? > > Like I said before: :after is just a short for eval-after-load. So > any use case where a package has another package as its prerequisite > can use :after. But that doesn't mean you can now forget about > loading those prerequisites. Yeah, I had assumed use-package was a little more elegant than that as it had (via :after) all the info needed to know what should be loaded to go with the current package load. As I get more time, I'll play with ERT around this. Thanks -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-10 23:56 ` David Masterson 2023-05-11 3:24 ` David Masterson @ 2023-05-11 5:54 ` Eli Zaretskii 2023-05-11 22:04 ` David Masterson 1 sibling, 1 reply; 37+ messages in thread From: Eli Zaretskii @ 2023-05-11 5:54 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Wed, 10 May 2023 16:56:35 -0700 > > >> For instance: > >> > >> (use-package org-ac :after org) > >> (use-package org) > > > > What is unclear or not self-evident about the above? > > >From the macroexpand, I now understand some of the "magic" of autoload. > I'm still missing how the :config (etc.) happens after the autoload to > ensure that the package is configured. That's important in helping me > look for side-effects in the :config that didn't work with autoload > (ie. I need :demand somewhere). Would it help to say in the manual that :after's effect is the same or similar to with-eval-after-load? In general, when I'm told that :after causes the package FOO to be loaded after another package, my interpretation is that at the end of loading that other package Emacs will load package FOO. If that is not what you understand, could you take another look at the description of :after in the use-package manual and tell what is missing there to convey this meaning? Or are you saying that my interpretation is inaccurate or incorrect? Thanks. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 5:54 ` Eli Zaretskii @ 2023-05-11 22:04 ` David Masterson 2023-05-12 6:14 ` Eli Zaretskii 0 siblings, 1 reply; 37+ messages in thread From: David Masterson @ 2023-05-11 22:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Wed, 10 May 2023 16:56:35 -0700 >> >> >> For instance: >> >> >> >> (use-package org-ac :after org) >> >> (use-package org) >> > >> > What is unclear or not self-evident about the above? >> >> >From the macroexpand, I now understand some of the "magic" of autoload. >> I'm still missing how the :config (etc.) happens after the autoload to >> ensure that the package is configured. That's important in helping me >> look for side-effects in the :config that didn't work with autoload >> (ie. I need :demand somewhere). > > Would it help to say in the manual that :after's effect is the same or > similar to with-eval-after-load? I don't think so. In 40 years of playing with Emacs, I don't think I've ever used with-eval-after-load (copied w/o understanding maybe) -- I'm an old hacker, not an elisp programmer. Better to talk about the semantics that :after implements with respect to other things use-package does that might be affected (defer vs demand, init/config, ...). > In general, when I'm told that :after causes the package FOO to be > loaded after another package, my interpretation is that at the end of > loading that other package Emacs will load package FOO. If that is > not what you understand, could you take another look at the > description of :after in the use-package manual and tell what is > missing there to convey this meaning? Basically, I think the sections on :if, :after, and :requires should make clear what will (should?) happen if package loading is deferred (individually or globally). Do these happen when use-package is called or when autoload occurs? Demand loading should mean they're immediately evaluated. Deferred and mixed is more complicated. For instance, what happens if A should be after B, but you never define B with use-package? Or B is demand loaded later? Or make the rule explicit in infodoc that :after does what it does regardless of demand/defer. > Or are you saying that my interpretation is inaccurate or incorrect? I'm thinking I might be over thinking this because nothing else obvious popped up in my issue with org-ac. I'll keep looking, though. Thanks for letting me bend your ear. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-11 22:04 ` David Masterson @ 2023-05-12 6:14 ` Eli Zaretskii 2023-05-12 6:31 ` Emanuel Berg 2023-05-12 6:56 ` David Masterson 0 siblings, 2 replies; 37+ messages in thread From: Eli Zaretskii @ 2023-05-12 6:14 UTC (permalink / raw) To: help-gnu-emacs > From: David Masterson <dsmasterson@gmail.com> > Cc: help-gnu-emacs@gnu.org > Date: Thu, 11 May 2023 15:04:50 -0700 > > Eli Zaretskii <eliz@gnu.org> writes: > > > In general, when I'm told that :after causes the package FOO to be > > loaded after another package, my interpretation is that at the end of > > loading that other package Emacs will load package FOO. If that is > > not what you understand, could you take another look at the > > description of :after in the use-package manual and tell what is > > missing there to convey this meaning? > > Basically, I think the sections on :if, :after, and :requires should > make clear what will (should?) happen if package loading is deferred > (individually or globally). Do these happen when use-package is called > or when autoload occurs? Demand loading should mean they're immediately > evaluated. Deferred and mixed is more complicated. Sorry, I still don't see the difficulty. The manual says that using :after causes one package to be loaded immediately after the other one--how is this unclear? Please bear with me, because I really don't understand what bothers you. It is crystal clear to me. So there's some misunderstanding here. > For instance, what happens if A should be after B, but you never define > B with use-package? Isn't it clear? If B is never loaded, A will _never_ be loaded in that case. It doesn't matter whether B is loaded via use-package or by some other means. How is this NOT clear from the description? > Or B is demand loaded later? Later than what? A will _always_ be loaded as the last step in loading B, whenever the latter happens. > Or make the rule explicit in infodoc that :after does what it does > regardless of demand/defer. So is the difficulty because of :defer and/or :demand? If so, please ask questions that involve those. Because so far you were asking about :after alone, and there I see nothing unclear. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 6:14 ` Eli Zaretskii @ 2023-05-12 6:31 ` Emanuel Berg 2023-05-12 6:56 ` David Masterson 1 sibling, 0 replies; 37+ messages in thread From: Emanuel Berg @ 2023-05-12 6:31 UTC (permalink / raw) To: help-gnu-emacs Eli Zaretskii wrote: >> For instance, what happens if A should be after B, but you >> never define B with use-package? > > Isn't it clear? If B is never loaded, A will _never_ be > loaded in that case. It doesn't matter whether B is loaded > via use-package or by some other means. How is this NOT > clear from the description? > >> Or B is demand loaded later? > > Later than what? A will _always_ be loaded as the last step > in loading B, whenever the latter happens. > >> Or make the rule explicit in infodoc that :after does what >> it does regardless of demand/defer. > > So is the difficulty because of :defer and/or :demand? > If so, please ask questions that involve those. Because so > far you were asking about :after alone, and there I see > nothing unclear. Why should this be done manually at all? For example, a source file should just say, I need X, Y and Z since I use stuff from those. What order they are loaded shouldn't matter since they are all needed. Also, whatever stuff they themselves need is up to them to solve - with the same simple method, preferably. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: use-package :after ?? 2023-05-12 6:14 ` Eli Zaretskii 2023-05-12 6:31 ` Emanuel Berg @ 2023-05-12 6:56 ` David Masterson 1 sibling, 0 replies; 37+ messages in thread From: David Masterson @ 2023-05-12 6:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: David Masterson <dsmasterson@gmail.com> >> Cc: help-gnu-emacs@gnu.org >> Date: Thu, 11 May 2023 15:04:50 -0700 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> > In general, when I'm told that :after causes the package FOO to be >> > loaded after another package, my interpretation is that at the end of >> > loading that other package Emacs will load package FOO. If that is >> > not what you understand, could you take another look at the >> > description of :after in the use-package manual and tell what is >> > missing there to convey this meaning? >> >> Basically, I think the sections on :if, :after, and :requires should >> make clear what will (should?) happen if package loading is deferred >> (individually or globally). Do these happen when use-package is called >> or when autoload occurs? Demand loading should mean they're immediately >> evaluated. Deferred and mixed is more complicated. > > Sorry, I still don't see the difficulty. The manual says that using > :after causes one package to be loaded immediately after the other > one--how is this unclear? Please bear with me, because I really don't > understand what bothers you. It is crystal clear to me. So there's > some misunderstanding here. > >> For instance, what happens if A should be after B, but you never define >> B with use-package? > > Isn't it clear? If B is never loaded, A will _never_ be loaded in > that case. It doesn't matter whether B is loaded via use-package or > by some other means. How is this NOT clear from the description? > >> Or B is demand loaded later? > > Later than what? A will _always_ be loaded as the last step in > loading B, whenever the latter happens. > >> Or make the rule explicit in infodoc that :after does what it does >> regardless of demand/defer. > > So is the difficulty because of :defer and/or :demand? If so, please > ask questions that involve those. Because so far you were asking > about :after alone, and there I see nothing unclear. See the other message. -- David Masterson ^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2023-05-19 3:03 UTC | newest] Thread overview: 37+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-05-08 0:05 use-package :after ?? David Masterson 2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-08 4:05 ` David Masterson 2023-05-08 4:25 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-08 5:20 ` David Masterson 2023-05-08 12:19 ` Eli Zaretskii 2023-05-10 23:56 ` David Masterson 2023-05-11 3:24 ` David Masterson 2023-05-11 6:14 ` Eli Zaretskii 2023-05-11 21:24 ` David Masterson 2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor 2023-05-12 6:33 ` Eli Zaretskii 2023-05-12 6:38 ` Emanuel Berg 2023-05-12 5:59 ` Eli Zaretskii 2023-05-12 6:54 ` David Masterson 2023-05-12 7:22 ` Eli Zaretskii 2023-05-15 6:03 ` David Masterson 2023-05-15 11:36 ` Eli Zaretskii 2023-05-15 22:19 ` David Masterson 2023-05-16 16:16 ` Eli Zaretskii [not found] ` <87pm72m8rc.fsf@penguin> 2023-05-15 6:16 ` David Masterson 2023-05-15 11:42 ` Eli Zaretskii 2023-05-15 22:27 ` David Masterson 2023-05-16 16:19 ` Eli Zaretskii 2023-05-16 20:44 ` David Masterson 2023-05-17 1:40 ` David Masterson 2023-05-17 11:42 ` Eli Zaretskii 2023-05-17 20:30 ` David Masterson 2023-05-18 10:36 ` Eli Zaretskii 2023-05-18 12:41 ` Lynn Winebarger 2023-05-19 2:40 ` David Masterson 2023-05-19 3:03 ` David Masterson 2023-05-11 5:54 ` Eli Zaretskii 2023-05-11 22:04 ` David Masterson 2023-05-12 6:14 ` Eli Zaretskii 2023-05-12 6:31 ` Emanuel Berg 2023-05-12 6:56 ` David Masterson
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.