unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
@ 2021-03-13  7:58 Eli Zaretskii
  2021-03-13 19:43 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2021-03-13  7:58 UTC (permalink / raw)
  To: 47120

If you have some *.eln files in your ~/.emacs.d/eln-cache/ directory,
and the update from Git causes some of the corresponding *.el files to
be updated, then the *.elc files are rebuilt, but the *.eln files are
not.  Which then leaves you with stale *.eln files in the cache.

Can the FOO.eln file be re-generated if the corresponding FOO.elc file
is being generated?

And I wonder what happens when we load the corresponding library: will
the .eln file be preferred even if it's outdated, or will we load the
.elc file in this situation?


In GNU Emacs 28.0.50 (build 29, i686-pc-mingw32)
 of 2021-03-13 built on HOME-C4E4A596F7
Repository revision: d018584814e0c15f13bc458ba54491239b584069
Repository branch: feature/native-comp
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
System Description: Microsoft Windows XP Service Pack 3 (v5.1.0.2600)

Configured using:
 'configure -C --prefix=/d/usr --with-wide-int --with-native-compilation
 --enable-checking=yes,glyphs 'CFLAGS=-O0 -gdwarf-4 -g3''

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
XPM ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source eieio eieio-core eieio-loaddefs
password-cache json map text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils comp
comp-cstr warnings subr-x rx cl-seq cl-macs cl-extra help-mode seq
byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv iso-transl
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads w32notify
w32 lcms2 multi-tty make-network-process nativecomp emacs)

Memory information:
((conses 16 90692 11966)
 (symbols 48 8990 0)
 (strings 16 24701 4594)
 (string-bytes 1 748980)
 (vectors 16 16420)
 (vector-slots 8 306021 10401)
 (floats 8 29 49)
 (intervals 40 266 10)
 (buffers 888 11))





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13  7:58 bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled Eli Zaretskii
@ 2021-03-13 19:43 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-03-13 19:52   ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-03-13 19:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 47120

Eli Zaretskii <eliz@gnu.org> writes:

> If you have some *.eln files in your ~/.emacs.d/eln-cache/ directory,
> and the update from Git causes some of the corresponding *.el files to
> be updated, then the *.elc files are rebuilt, but the *.eln files are
> not.  Which then leaves you with stale *.eln files in the cache.
>
> Can the FOO.eln file be re-generated if the corresponding FOO.elc file
> is being generated?

FOO.eln should be regenerated when FOO.elc is regenerated using make
*if* FOO.el is part of the files that are native compiled during the
build process (all files when using NATIVE_FULL_AOT).

If this is not what's going on we have a bug.

> And I wonder what happens when we load the corresponding library: will
> the .eln file be preferred even if it's outdated, or will we load the
> .elc file in this situation?

The .elc will be loaded and deferred compilation will spawn an async
native compilation + will do the hot definition swap.

Thanks

  Andrea





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 19:43 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-03-13 19:52   ` Eli Zaretskii
  2021-03-13 20:12     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2021-03-13 19:52 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: 47120

> From: Andrea Corallo <akrl@sdf.org>
> Cc: 47120@debbugs.gnu.org
> Date: Sat, 13 Mar 2021 19:43:55 +0000
> 
> > Can the FOO.eln file be re-generated if the corresponding FOO.elc file
> > is being generated?
> 
> FOO.eln should be regenerated when FOO.elc is regenerated using make
> *if* FOO.el is part of the files that are native compiled during the
> build process (all files when using NATIVE_FULL_AOT).
> 
> If this is not what's going on we have a bug.

I'm talking about the *.el files that are not automatically natively
compiled, they are natively compiled when first time loaded into
Emacs.

> > And I wonder what happens when we load the corresponding library: will
> > the .eln file be preferred even if it's outdated, or will we load the
> > .elc file in this situation?
> 
> The .elc will be loaded and deferred compilation will spawn an async
> native compilation + will do the hot definition swap.

That's OK.  But I think it would be better to recompile the .eln file
when .el is updated and we are byte-compiling to produce an updated
.elc file.

Thanks.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 19:52   ` Eli Zaretskii
@ 2021-03-13 20:12     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-03-13 20:16       ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-03-13 20:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 47120

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: 47120@debbugs.gnu.org
>> Date: Sat, 13 Mar 2021 19:43:55 +0000
>> 
>> > Can the FOO.eln file be re-generated if the corresponding FOO.elc file
>> > is being generated?
>> 
>> FOO.eln should be regenerated when FOO.elc is regenerated using make
>> *if* FOO.el is part of the files that are native compiled during the
>> build process (all files when using NATIVE_FULL_AOT).
>> 
>> If this is not what's going on we have a bug.
>
> I'm talking about the *.el files that are not automatically natively
> compiled, they are natively compiled when first time loaded into
> Emacs.

I see now thanks, but I'm wondering why should we native compile it
automatically when the .el is updated later-on if we don't do it during
the first build?

Thanks

  Andrea





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 20:12     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-03-13 20:16       ` Eli Zaretskii
  2021-03-13 20:26         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2021-03-13 20:16 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: 47120

> From: Andrea Corallo <akrl@sdf.org>
> Cc: 47120@debbugs.gnu.org
> Date: Sat, 13 Mar 2021 20:12:41 +0000
> 
> > I'm talking about the *.el files that are not automatically natively
> > compiled, they are natively compiled when first time loaded into
> > Emacs.
> 
> I see now thanks, but I'm wondering why should we native compile it
> automatically when the .el is updated later-on if we don't do it during
> the first build?

It just doesn't sound right to me not to update.

But maybe others will think differently.

Or maybe we should by default native-compile all the *.el files in the
tarball as part of the build, and then what I expect will happen
automatically.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 20:16       ` Eli Zaretskii
@ 2021-03-13 20:26         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-03-13 20:31           ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-03-13 20:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 47120

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: 47120@debbugs.gnu.org
>> Date: Sat, 13 Mar 2021 20:12:41 +0000
>> 
>> > I'm talking about the *.el files that are not automatically natively
>> > compiled, they are natively compiled when first time loaded into
>> > Emacs.
>> 
>> I see now thanks, but I'm wondering why should we native compile it
>> automatically when the .el is updated later-on if we don't do it during
>> the first build?
>
> It just doesn't sound right to me not to update.
>
> But maybe others will think differently.
>
> Or maybe we should by default native-compile all the *.el files in the
> tarball as part of the build, and then what I expect will happen
> automatically.

Yeah, I guess if we go for distributing a tarball with .eln files would
be nice to compile as mush as possible to save computation time to the
user.  That said I like the general idea of keeping the behavior of
following builds symmetric with the initial one.

Regards

  Andrea





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 20:26         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-03-13 20:31           ` Eli Zaretskii
  2021-03-13 20:43             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2021-03-13 20:31 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: 47120

> From: Andrea Corallo <akrl@sdf.org>
> Cc: 47120@debbugs.gnu.org
> Date: Sat, 13 Mar 2021 20:26:39 +0000
> 
> > Or maybe we should by default native-compile all the *.el files in the
> > tarball as part of the build, and then what I expect will happen
> > automatically.
> 
> Yeah, I guess if we go for distributing a tarball with .eln files would
> be nice to compile as mush as possible to save computation time to the
> user.  That said I like the general idea of keeping the behavior of
> following builds symmetric with the initial one.

OK, then feel free to close this issue.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled
  2021-03-13 20:31           ` Eli Zaretskii
@ 2021-03-13 20:43             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 8+ messages in thread
From: Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-03-13 20:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 47120-done

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: 47120@debbugs.gnu.org
>> Date: Sat, 13 Mar 2021 20:26:39 +0000
>> 
>> > Or maybe we should by default native-compile all the *.el files in the
>> > tarball as part of the build, and then what I expect will happen
>> > automatically.
>> 
>> Yeah, I guess if we go for distributing a tarball with .eln files would
>> be nice to compile as mush as possible to save computation time to the
>> user.  That said I like the general idea of keeping the behavior of
>> following builds symmetric with the initial one.
>
> OK, then feel free to close this issue.

Done thanks

  Andrea





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-03-13 20:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-13  7:58 bug#47120: 28.0.50; [feature/native-comp] Stale *.eln files are not recompiled Eli Zaretskii
2021-03-13 19:43 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-13 19:52   ` Eli Zaretskii
2021-03-13 20:12     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-13 20:16       ` Eli Zaretskii
2021-03-13 20:26         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-13 20:31           ` Eli Zaretskii
2021-03-13 20:43             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).