GNU bug report logs -
#59115
29.0.50; byte-recompile-directory incorrectly ignoring files
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#59115: 29.0.50; byte-recompile-directory incorrectly ignoring files
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 59115 <at> debbugs.gnu.org.
--
59115: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59115
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: No Wayman <iarchivedmywholelife <at> gmail.com>
>> Date: Mon, 07 Nov 2022 19:49:58 -0500
>>
>> Commit 8638aace3fbe01529f33870f469fa60bf5e43ee7
>> introduced a bug which will cause byte-recompile-directory to
>> invert the semantics of the byte-compile-ingore-files option.
>>
>> To reproduce:
>>
>> 1. mkdir /tmp/bug/ && cd /tmp/bug/
>> 2. Copy an elisp file which would normally be byte-compiled into
>> that directory
>> 3. emacs -Q --batch --eval "(byte-recompile-directory
>> default-directory 0 'force)"
>>
>> You should see output similar to:
>>
>> Checking /tmp/bug...
>> Done (Total of 0 files compiled)
>>
>>
>> In general the entire logic of byte-recompile-directory is messy.
>> Two ifs without elses, lots of negated predicates, etc. I can see
>> why the mistake was easy to overlook. This could be further
>> refactored to make it easier to read by leveraging when/unless
>> appropriately. Perhaps there's an argument for some abnormal hooks
>> in place of those long chains of ad-hoc predicates, but I'm more
>> interested in fixing the problem now.
>>
>> The attached patch fixes it for me.
>
> Philip, can you look into tis, please?
Yes, the patch makes sense. I'm going to apply the patch.
Thanks.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Commit 8638aace3fbe01529f33870f469fa60bf5e43ee7
introduced a bug which will cause byte-recompile-directory to
invert the semantics of the byte-compile-ingore-files option.
To reproduce:
1. mkdir /tmp/bug/ && cd /tmp/bug/
2. Copy an elisp file which would normally be byte-compiled into
that directory
3. emacs -Q --batch --eval "(byte-recompile-directory
default-directory 0 'force)"
You should see output similar to:
Checking /tmp/bug...
Done (Total of 0 files compiled)
In general the entire logic of byte-recompile-directory is messy.
Two ifs without elses, lots of negated predicates, etc. I can see
why the mistake was easy to overlook. This could be further
refactored to make it easier to read by leveraging when/unless
appropriately. Perhaps there's an argument for some abnormal hooks
in place of those long chains of ad-hoc predicates, but I'm more
interested in fixing the problem now.
The attached patch fixes it for me.
In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.34, cairo version 1.17.6) of 2022-11-07 built on nbook
Repository revision: 35221a7bd55e18244604376497097f4259c7351b
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version
11.0.12101004
System Description: Arch Linux
[0001-bytecomp.el-byte-recompile-directory-Fix-negated-ign.patch (text/x-patch, attachment)]
This bug report was last modified 2 years and 191 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.