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