bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#56614: two problems with `package--reload-previously-loaded'


From: Paul Pogonyshev
Subject: bug#56614: two problems with `package--reload-previously-loaded'
Date: Sun, 17 Jul 2022 14:42:47 +0200

Commit 9dfd945a2c added function `package--reload-previously-loaded'. Previously package library would just always reload all package files (except its autoloads), new function tries to be smart and avoid reloading unneeded things, presumably for performance reasons.

However, this has created at least two problems for Eldev (https://github.com/doublep/eldev), Elisp development tool.

1. Function excludes package's current directory, see variable `load-path-sans-dir'. This is problematic if a package is reinstalled from the same directory after changes have been made. I know this is not how things usually work, but it seems to create problems for no reason: if the same directory is never used, why bother about it here? Normal usecases are not affected at all, why "special" usecases that reuse the same directory suffer.

2. When searching in `load-history', the function ignores changes from byte-compiled to source and vice versa, i.e. `.el' -> `.elc' and `.elc' -> `.el'. In other words, if you replace a byte-compiled file with a non-compiled (or vice versa), it never gets reloaded. A simple fix (having zero effect in normal usecases) would be e.g. this:

        (truename (file-truename canonical))
        (found (or (member truename history)
                   (member (if (string-suffix-p ".el" truename)
                               (replace-regexp-in-string (rx ".el" eos) ".elc" truename t)
                             (replace-regexp-in-string (rx ".elc" eos) ".el" truename t))
                           history)))

Paul

reply via email to

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