emacs-devel
[Top][All Lists]
Advanced

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

Re: Building master fails on Windows 10 when testing etc/NEWS file


From: Eli Zaretskii
Subject: Re: Building master fails on Windows 10 when testing etc/NEWS file
Date: Wed, 18 Sep 2019 21:33:10 +0300

> Date: Wed, 18 Sep 2019 20:23:52 +0300
> From: Eli Zaretskii <address@hidden>
> Cc: address@hidden, address@hidden, address@hidden, address@hidden
> 
> Then please run Emacs under GDB, put a breakpoint on line 1437 of
> lread.c (that's where that message comes from), and when it breaks,
> show the C and Lisp backtraces.

Don't bother, I found the culprit.  It is this fragment from Fload:

          if (!load_prefer_newer && is_elc)
            {
              result = stat (SSDATA (efound), &s1);
              int err = errno;
              if (result == 0)
                {
                  SSET (efound, SBYTES (efound) - 1, 0);
                  result = stat (SSDATA (efound), &s2);
                  err = errno;
                  SSET (efound, SBYTES (efound) - 1, 'c');
                  if (result != 0)                              <<<<<<<<<<<
                    found = Fsubstring (found, make_fixnum (0), <<<<<<<<<<<
                                        make_fixnum (-1));      <<<<<<<<<<<
                }

The last 3 lines were added as part of the "improved reporting of I/O
errors" changeset.  What it does is replace the .elc file name with
the .el filename if 'stat' fails when called on the .el file.  And in
installed Emacs we compress *.el files, so they are not there.

Paul, why was this snippet added?  It makes no sense to me: why should
we replace an existing .elc file name with a non-existing .el file
name?



reply via email to

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