emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Org mode update breaking build?


From: Madhu
Subject: Re: Org mode update breaking build?
Date: Sun, 14 May 2023 11:19:34 +0530 (IST)

Hello
*  Eli Zaretskii <eliz@gnu.org> <83a5yfc60y.fsf@gnu.org>
Wrote on Mon, 08 May 2023 16:22:05 +0300
>> From: Madhu <enometh@meer.net>
>> Date: Mon, 08 May 2023 17:30:17 +0530
>>
>> I haven't update master very recently but a while ago I got into the
>> habit of running a script before calling `make'. the $1 parameter is the
>> path to src/lisp. it lists stale elc files, which I then delete by hand.
>>
>> ```
>> for i in $(find "$1" -name \*.elc); do
>>      j=${i%c};
>>      if [ ! -e "$i" ]; then
>>              echo "MISSING $i" >> /dev/stderr
>>      elif [ ! -e "$j" ]; then
>>              echo "MISSING $j" >> /dev/stderr
>>      else
>>              # file-newer-p.sh $j $i  # UNTESTED.
>>              a=$(stat -c '%Y' "$j")
>>              b=$(stat -c '%Y' "$i")
>>              if [ $a -gt $a ]; then echo "$i"; fi;
>>      fi

(Obvious typo there: should be $a -gt $b)

>> done
>> ```
>> Since I started doing this, I don't think I've faced elisp recompilation
>> problems. But I never understood the rationale for "loading stale elc"
>> behaviour as a part of recompilation.  If someone can explain that I'd
>> appreciate it.
>
> We have switched to "load newer el" behavior quite some time ago, so I
> think your script is from before that.

Is this just during bootup?

I still see messages on startup like
```
Source file ‘/14/build/emacs/lisp/dired.el’ newer than byte-compiled file; 
using older file
```

during startup.
```
(load "dired") shows a similar message.
Loading dired (compiled; note, source file is newer)...done
```

> The problem here is not with *.elc files that are older than the
> corresponding *.el files, the problem is with _other_ *.elc files that
> were produced with outdated definitions of macros, and those macros
> are defined in the *.el files other than the one corresponding to the
> problematic *.elc.  So just looking at time stamps will not allow to
> find the problematic *.elc files.

Indeed the script is not useful in this case. I ran into the
org-update problem just now and had to delete all the org elc files by
hand.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]