* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
@ 2024-01-22 20:21 ` Liliana Marie Prikler
2024-01-25 23:53 ` Suhail via Guix-patches via
` (10 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Liliana Marie Prikler @ 2024-01-22 20:21 UTC (permalink / raw)
To: 67260; +Cc: andrew, cox.katherine.e+guix, liliana.prikler
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2759 bytes --]
* gnu/packages/emacs.scm (emacs-minimal)[wrap-emacs-paths]: Also wrap
EMACSNATIVELOADPATH.
---
Am Montag, dem 22.01.2024 um 04:36 +0000 schrieb Suhail:
> Suhail via Guix-patches via <guix-patches@gnu.org> writes:
>
> > I don't believe this patch is sufficient. It seems that the
> > variable 'native-comp-eln-load-path may also need to be tweaked.
> > The path to the "native-lisp" directory needs to be specified
> > absolutely to make it not be dependent on the invocation-directory.
>
> Or it's possible that a patch that ensures that
> 'native-comp-eln-load-path contains the absolute value of the
> "native-lisp" directory obviates this one (6/6) in its entirety.
This was the most cryptic hint towards the actual issue, but I've
managed to resolve it anyhow. We still shouldn't enable jit compilation
however; I've updated our reason as to why.
gnu/packages/emacs.scm | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 5f27c551e0..2cdc9b8bca 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -273,7 +273,11 @@ (define-public emacs-minimal
(let* ((out (assoc-ref outputs "out"))
(lisp-dirs (find-files (string-append out "/share/emacs")
"^lisp$"
- #:directories? #t)))
+ #:directories? #t))
+ (native-lisp-dirs (find-files
+ (string-append out "/lib/emacs")
+ "^native-lisp$"
+ #:directories? #t)))
(for-each
(lambda (prog)
(wrap-program prog
@@ -285,7 +289,11 @@ (define-public emacs-minimal
(list (search-input-file inputs "/bin/gzip")
;; for coreutils
(search-input-file inputs "/bin/yes"))))
- `("EMACSLOADPATH" suffix ,lisp-dirs)))
+ `("EMACSLOADPATH" suffix ,lisp-dirs)
+ ;; Note: the interpretation order of EMACSNATIVELOADPATH
+ ;; is reversed, so 'prefix functions just like 'suffix
+ ;; for EMACSLOADPATH.
+ `("EMACSNATIVELOADPATH" prefix ,native-lisp-dirs)))
(find-files (string-append out "/bin")
;; Matches versioned and unversioned emacs binaries.
;; We don't patch emacsclient, because it takes its
base-commit: aae61f54ff6acf5cc0e0355dc85babf29f625660
--
2.41.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
2024-01-22 20:21 ` [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH Liliana Marie Prikler
@ 2024-01-25 23:53 ` Suhail via Guix-patches via
2024-01-26 7:49 ` Suhail via Guix-patches via
` (9 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-25 23:53 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>> Suhail via Guix-patches via <guix-patches@gnu.org> writes:
>>
>> > I don't believe this patch is sufficient. It seems that the
>> > variable 'native-comp-eln-load-path may also need to be tweaked.
>> > The path to the "native-lisp" directory needs to be specified
>> > absolutely to make it not be dependent on the invocation-directory.
>>
> ... I've managed to resolve it
I can confirm that Emacs built by installing v6 patches on emacs-team
branch and built with --no-grafts is now able to locate
natively-compiled versions of features like help-fns etc. (which it
couldn't with v5 patches).
#+begin_src bash :results replace
emacs --batch --eval "(message \"%s\" (car (split-string (describe-function 'describe-function) \"\n\")))"
#+end_src
#+RESULTS:
: Type q in help window to delete it
: describe-function is an autoloaded interactive native-compiled Lisp
However, there may be a spurious entry in native-comp-eln-load-path that
should probably be removed.
#+begin_src bash :results replace
emacs --batch --eval "(message \"%s\" native-comp-eln-load-path)"
#+end_src
#+RESULTS:
: (/home/user/.emacs.d/eln-cache/ /home/user/.guix-profile/lib/emacs/native-site-lisp /gnu/store/4jvap9wxifizm56p6pmxc6rk0zyvm5zc-emacs-29.2/lib/emacs/29.2/native-lisp ../native-lisp/)
The "../native-lisp/" entry above, seems out of place. Based on the
documentation of native-comp-eln-load-path:
> If the name of a directory in this list is not absolute, it is assumed
> to be relative to invocation-directory.
Contrasting the above with an Emacs 29.1 installation on a non-Guix
system, I notice that the latter doesn't have any non-absolute paths in
native-comp-eln-load-path. Thoughts?
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
2024-01-22 20:21 ` [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH Liliana Marie Prikler
2024-01-25 23:53 ` Suhail via Guix-patches via
@ 2024-01-26 7:49 ` Suhail via Guix-patches via
2024-01-26 8:20 ` Suhail via Guix-patches via
` (8 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-26 7:49 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>> Contrasting the above with an Emacs 29.1 installation on a non-Guix
>> system, I notice that the latter doesn't have any non-absolute paths
>> in native-comp-eln-load-path. Thoughts?
> I have noticed this myself, but I don't think that it's related to this
> series.
It seems to be. It's possible that it may also be related to other
things already in the emacs-team branch (e.g. if the patch series is
only responsible for uncovering a pre-existing defect as opposed to
causing it), but the relative path only shows up during the series.
> Can you try 29.2 without the patches?
emacs-team branch at aae61f54ff doesn't have the relative path in
native-comp-eln-load-path. The relative path shows up only after
[PATCH v6 3/7] is applied. Hope this helps and hopefully the patch
series can soon be merged into master for general availability.
[PATCH v6 3/7] gnu: emacs: Don't hash file names in native compilation.
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (2 preceding siblings ...)
2024-01-26 7:49 ` Suhail via Guix-patches via
@ 2024-01-26 8:20 ` Suhail via Guix-patches via
2024-01-26 22:45 ` Suhail via Guix-patches via
` (7 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-26 8:20 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Suhail via Guix-patches via <guix-patches@gnu.org> writes:
> hopefully the patch series can soon be merged into master for general
> availability.
Btw, does every package require something like [PATCH v6 5/7] or
[PATCH v6 6/7] in order for it to be natively compiled?
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (3 preceding siblings ...)
2024-01-26 8:20 ` Suhail via Guix-patches via
@ 2024-01-26 22:45 ` Suhail via Guix-patches via
2024-01-27 15:36 ` Suhail via Guix-patches via
` (6 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-26 22:45 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>> Btw, does every package require something like [PATCH v6 5/7] or
>> [PATCH v6 6/7] in order for it to be natively compiled?
> No, these patches are only for natively compiled packages that don't
> use emacs-build-system.
I.e., any and all packages using the emacs-build-system should be
natively-compiled? If so, I believe I've found a counter-example.
After installing v6 series and building emacs-htmlize my expectation is
that functions provided by it, such as htmlize-buffer, would be
natively-compiled. However, I get:
> htmlize-buffer is an autoloaded interactive Lisp function in
> `htmlize.el'.
Note the lack of "native-compiled" in the above.
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (4 preceding siblings ...)
2024-01-26 22:45 ` Suhail via Guix-patches via
@ 2024-01-27 15:36 ` Suhail via Guix-patches via
2024-01-27 16:24 ` Suhail via Guix-patches via
` (5 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-27 15:36 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, Suhail, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> If you compile with emacs-minimal, that's the expected results.
It was compiled with emacs-minimal=emacs. For reference, I have inlined
the manifest file that was used (with the --no-grafts CLI option to
guix-package) towards the end of this email. I'm sharing the one that
was actually used, but it could be minimized.
I believe there are two issues (not including the spurious entry in
native-comp-eln-load-path which may already have been resolved in v7 of
the series). All my observations below are based on v6 patch series.
For emacs-htmlize, I believe the issue may stem from the fact that some
.eln files are available from entries in native-comp-eln-load-path only
via symlinks and the .eln loader may not be able to load symlinks.
Packages such as ox-html are available from two locations in the
native-comp-eln-load-path. In one location they are symlinked, but
(presumably because org is a builtin package) it is also available from
another location in the native-comp-eln-load-path and in the latter
location it's not symlinked in. I believe this difference is why for
some packages natively-compiled versions are loaded (e.g. org, ox-html
etc) whereas for others it's not the case.
In addition, I believe there's another issue. Some packages' names are
getting truncated. For instance, instead of uniquify.eln, I observe
niquify.eln. In this case, the .eln isn't symlinked (presumably because
it's a builtin), but due to the name being messed up (perhaps too
aggressive a truncation of hashes?) the natively compiled version is not
available:
> uniquify-item-p is a byte-compiled Lisp function in `uniquify.el'.
The manifest file that was used is below.
#+begin_src scheme
(use-modules (guix transformations)
(gnu packages))
(define transform1
(options->transformation
'((with-input . "emacs-minimal=emacs")
(without-tests . "emacs-clojure-mode"))))
(packages->manifest
(list (transform1 (specification->package "bash"))
(transform1 (specification->package "coreutils"))
(transform1 (specification->package "git"))
(transform1 (specification->package "make"))
(transform1 (specification->package "emacs"))
(transform1 (specification->package "emacs-org"))
(transform1
(specification->package "emacs-org-contrib"))
(transform1
(specification->package "emacs-citeproc-el"))
(transform1
(specification->package "emacs-engrave-faces"))
(transform1
(specification->package "emacs-haskell-mode"))
(transform1
(specification->package "emacs-htmlize"))
(transform1
(specification->package "emacs-markdown-mode"))
(transform1
(specification->package
"emacs-org-pandoc-import"))
(transform1 (specification->package "pandoc"))
))
#+end_src
Thank you for your continued work on this!
--
Suhail
This email is not an offer capable of acceptance, does not evidence an
intention to enter into an agreement, has no operative effect until a
definitive agreement is signed in writing by both parties, and that no
party should act in reliance on the email or any representations of the
sender until a definitive agreement is signed in writing by both
parties.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (5 preceding siblings ...)
2024-01-27 15:36 ` Suhail via Guix-patches via
@ 2024-01-27 16:24 ` Suhail via Guix-patches via
2024-01-27 17:15 ` Suhail via Guix-patches via
` (4 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-27 16:24 UTC (permalink / raw)
To: 67260; +Cc: cox.katherine.e+guix, liliana.prikler, suhail, andrew
Suhail via Guix-patches via <guix-patches@gnu.org> writes:
> I believe there are two issues (not including the spurious entry in
> native-comp-eln-load-path which may already have been resolved in v7 of
> the series). All my observations below are based on v6 patch series.
I can confirm that the v7 series fixes the spurious entry in
native-comp-eln-load-path.
However, the 2 issues pointed out in the previous email remain:
1. failure to load natively-compiled version of non-builtin libraries
like emacs-htmlize possibly due to symlinks, and
2. failure to load natively-compiled version of some builtin libraries
like uniquify due to incorrect naming of .eln files
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (6 preceding siblings ...)
2024-01-27 16:24 ` Suhail via Guix-patches via
@ 2024-01-27 17:15 ` Suhail via Guix-patches via
2024-01-27 19:39 ` Suhail via Guix-patches via
` (3 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-27 17:15 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, Suhail, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> Would you care to debug this a bit more and report your findings?
The locations in question are in the store and hence write-protected.
What's a "safe" way to debug this?
>> Packages such as ox-html are available from two locations in the
>> native-comp-eln-load-path. In one location they are symlinked, but
>> (presumably because org is a builtin package) it is also available
>> from another location in the native-comp-eln-load-path and in the
>> latter location it's not symlinked in. I believe this difference is
>> why for some packages natively-compiled versions are loaded (e.g.
>> org, ox-html, etc) whereas for others it's not the case.
> Well, as pointed out in the deleted code, dlopen has a "one shared
> library per file name" limitation. I don't think we're hit by that
> thanks to unique hashes in the store directory, but I might be wrong
> about that. Maybe we have to do java-style FQDNs instead.
Perhaps. I'd wondered, more simply, if symlinked .eln files were ever
being loaded. In the limited testing I did, I didn't find such an
instance. For what it's worth, only one of the entries in
native-comp-eln-load-path seems to have symlinked entries (namely,
~/.guix-profile/lib/emacs/native-site-lisp).
>> In addition, I believe there's another issue. Some packages' names
>> are getting truncated. For instance, instead of uniquify.eln, I
>> observe niquify.eln. In this case, the .eln isn't symlinked
>> (presumably because it's a builtin), but due to the name being messed
>> up (perhaps too aggressive a truncation of hashes?) the natively
>> compiled version is not available:
> I am not truncating any hashes, I'm not even computing them in the
> first place. The functions I'm modifying are publicly callable, namely
> comp-el-to-eln-rel-filename for the relative file names, and
> comp-el-to-eln-filename for the absolute ones.
>
> There could be an off-by-one error hidden in the stripping of the
> BOGUS_DIRS, however. Let's investigate that.
Were you thinking out loud, or are there specific steps you'd like me to
help with?
> Note, that you can map transform1, saving some typing overhead, and
> since you are transforming all of your packages you could compose that
> with specification->package.
Appreciate the tips, but I should clarify that the manifest file in
question was generated by way of guix shell --export-manifest. I'd
omitted the header.
--
Suhail
This email is not an offer capable of acceptance, does not evidence an
intention to enter into an agreement, has no operative effect until a
definitive agreement is signed in writing by both parties, and that no
party should act in reliance on the email or any representations of the
sender until a definitive agreement is signed in writing by both
parties.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (7 preceding siblings ...)
2024-01-27 17:15 ` Suhail via Guix-patches via
@ 2024-01-27 19:39 ` Suhail via Guix-patches via
2024-01-28 0:13 ` Suhail via Guix-patches via
` (2 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-27 19:39 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, Suhail, andrew
Suhail via Guix-patches via <guix-patches@gnu.org> writes:
> However, the 2 issues pointed out in the previous email remain:
Correction, there's only 1 issue. The first issue was a false positive.
Apologies for the noise.
> 1. failure to load natively-compiled version of non-builtin libraries
> like emacs-htmlize possibly due to symlinks, and
This was a false positive. Turns out, if the function in question is
only autoloaded describe-function won't correctly identify the function
as being natively-compiled. This is consistent with what happens on
Emacs 29.1 on a non-Guix system. Not an issue.
> 2. failure to load natively-compiled version of some builtin libraries
> like uniquify due to incorrect naming of .eln files
This issue remains as of v7 of the patch series.
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (8 preceding siblings ...)
2024-01-27 19:39 ` Suhail via Guix-patches via
@ 2024-01-28 0:13 ` Suhail via Guix-patches via
2024-01-28 0:18 ` Suhail via Guix-patches via
2024-01-28 16:17 ` Suhail via Guix-patches via
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-28 0:13 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>> > 2. failure to load natively-compiled version of some builtin
>> > libraries like uniquify due to incorrect naming of .eln files
>>
>> This issue remains as of v7 of the patch series.
> I fixed this one locally,
I can confirm that the .eln filenames are no longer truncated (as far as
I can tell).
> but ‘uniquify’ remains byte-compiled for no explainable reason.
And too that as of v8 patch, uniquify still isn't natively-compiled.
However, if you unload it and then reload it, it becomes
natively-compiled.
#+begin_src bash
emacs --batch --eval "(message \"%s\" (progn (unload-feature 'uniquify) (require 'uniquify) (take 1 (split-string (substring-no-properties (describe-function 'uniquify-item-p)) \"\\n\" t))))"
#+end_src
#+RESULTS:
: Type q in help window to delete it
: (uniquify-item-p is a native-compiled Lisp function in `uniquify.el'.)
I think the issue is because uniquify (along with some others such as
prog-mode, backquote etc that I tested) are preloaded in Emacs. I
believe that these preloaded packages need to be treated specially. In
a non-Guix system, these preloaded packages have their .eln files stored
under something like
<native-comp-eln-load-path-entry>/29.x-<hash>/preloaded/ , whereas in
the v8 series there is no "preloaded" directory. Instead .eln files for
packages such as uniquify, prog-mode, backquote etc. are in various
locations:
- uniquify :: <n-c-e-l-p-entry>/29.2-<hash>/uniquify.eln
- prog-mode :: <n-c-e-l-p-entry>/29.2-<hash>/progmodes/prog-mode.eln
- backquote :: <n-c-e-l-p-entry>/29.2-<hash>/emacs-lisp/backquote.eln
I suspect that the code which does the preloading may need to be patched
and/or the preloaded packages may need to have their .eln files
generated under a preloaded sub-directory (similar to what happens in
non-Guix systems).
Below is a list of .eln files that exist in the preloaded sub-directory
in Emacs 29.1 on a non-Guix system. It's possible that the set of
preloaded packages on Emacs 29.2 is different. I suspect that all of
these packages are similarly affected.
#+begin_example
abbrev.eln
backquote.eln
bindings.eln
buff-menu.eln
burmese.eln
button.eln
byte-run.eln
case-table.eln
cconv.eln
cham.eln
characters.eln
chinese.eln
cl-generic.eln
cl-preloaded.eln
common-win.eln
composite.eln
cp51932.eln
cus-face.eln
cus-start.eln
custom.eln
cyrillic.eln
czech.eln
debug-early.eln
disp-table.eln
dnd.eln
dos-fns.eln
dos-vars.eln
dos-w32.eln
dynamic-setting.eln
easymenu.eln
ediff-hook.eln
eldoc.eln
electric.eln
elisp-mode.eln
english.eln
env.eln
epa-hook.eln
ethiopic.eln
eucjp-ms.eln
european.eln
faces.eln
files.eln
fill.eln
float-sup.eln
font-core.eln
font-lock.eln
fontset.eln
format.eln
frame.eln
fringe.eln
georgian.eln
greek.eln
haiku-win.eln
hebrew.eln
help.eln
image.eln
indent.eln
indian.eln
indonesian.eln
internal.eln
isearch.eln
iso-transl.eln
japanese.eln
jit-lock.eln
jka-cmpr-hook.eln
keymap.eln
khmer.eln
korean.eln
lao.eln
lisp.eln
lisp-mode.eln
ls-lisp.eln
macroexp.eln
map-ynp.eln
menu-bar.eln
minibuffer.eln
misc-lang.eln
mouse.eln
mule.eln
mule-cmds.eln
mule-conf.eln
mule-util.eln
mwheel.eln
nadvice.eln
newcomment.eln
ns-win.eln
obarray.eln
oclosure.eln
page.eln
paragraphs.eln
paren.eln
pc-win.eln
pgtk-dnd.eln
pgtk-win.eln
philippine.eln
prog-mode.eln
regexp-opt.eln
register.eln
replace.eln
rfn-eshadow.eln
rmc.eln
romanian.eln
scroll-bar.eln
select.eln
seq.eln
shorthands.eln
simple.eln
sinhala.eln
slovak.eln
startup.eln
subr.eln
syntax.eln
tab-bar.eln
tabulated-list.eln
tai-viet.eln
text-mode.eln
thai.eln
tibetan.eln
timer.eln
tool-bar.eln
tooltip.eln
tty-colors.eln
ucs-normalize.eln
uniquify.eln
utf-8-lang.eln
vc-hooks.eln
version.eln
vietnamese.eln
w32-fns.eln
w32-vars.eln
w32-win.eln
widget.eln
window.eln
x-dnd.eln
x-win.eln
#+end_example
--
Suhail
This email is not an offer capable of acceptance, does not evidence an
intention to enter into an agreement, has no operative effect until a
definitive agreement is signed in writing by both parties, and that no
party should act in reliance on the email or any representations of the
sender until a definitive agreement is signed in writing by both
parties.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (9 preceding siblings ...)
2024-01-28 0:13 ` Suhail via Guix-patches via
@ 2024-01-28 0:18 ` Suhail via Guix-patches via
2024-01-28 16:17 ` Suhail via Guix-patches via
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-28 0:18 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
Suhail via Guix-patches via <guix-patches@gnu.org> writes:
> Below is a list of .eln files that exist in the preloaded
> sub-directory in Emacs 29.1 on a non-Guix system.
Minor correction. The list of files I posted was /adapted/ from the
list of files in the preloaded sub-directory on a non-Guix system (with
Emacs 29.1). Specifically, the list I shared had the hash suffix
removed to make comparison with the .eln file on Guix easier.
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread
* [bug#67260] [PATCH v6 1/7] gnu: emacs: Wrap EMACSNATIVELOADPATH.
2023-11-18 13:42 [bug#67260] [PATCH emacs-team 0/2] Think ahead when compiling Liliana Marie Prikler
` (10 preceding siblings ...)
2024-01-28 0:18 ` Suhail via Guix-patches via
@ 2024-01-28 16:17 ` Suhail via Guix-patches via
11 siblings, 0 replies; 20+ messages in thread
From: Suhail via Guix-patches via @ 2024-01-28 16:17 UTC (permalink / raw)
To: Liliana Marie Prikler; +Cc: cox.katherine.e+guix, 67260, andrew
I'm assuming you're able to reproduce the issue on your end as well with
other features like prog-mode, backquote etc.
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> I instrumented lread.c to print the relative and absolute file names
> tried, and it appears that these aren't loaded at all after install
> while EMACSNATIVELOADPATH is ignored when dumping.
Interesting. I did a grep of the Emacs source (branch emacs-29) and
line 1770 of src/lread.c (in maybe_swap_for_eln) seemed relevant:
> /* Look also in preloaded subfolder of the last entry in
> `comp-eln-load-path'. */
What surprised me was that not only was the "preloaded" directory
special-cased, but so too was the last entry of "comp-eln-load-path"
(which I imagine is referring to native-comp-eln-load-path). Judging by
your message, I'm guessing you're well aware of this. I, unfortunately,
have no additional insights or suggestions.
However, given that ensuring Emacs is able to find the natively-compiled
version of files seems non-trivial, it might help for a future patch
series to be accompanied with tests. Thoughts?
--
Suhail
^ permalink raw reply [flat|nested] 20+ messages in thread