Subject: bug#63625: 29.0.90; package-install inserts package directory into load-path twice.

From: Stefan Monnier <[email-masked]>
Date: Mon, 22 May 2023 11:04:46 -0400

> `file-name-directory' will return nil for names with no slashes in
> them, but I donʼt know if thatʼs possible here.

I think `load-file-name` is always absolute, so I think we should be
safe, but that's the question, yes.

> I *think* we can use `when-let*' here, since subr.el is preloaded.

Please don't, it's too recently introduced IMO and such generated files
may be loaded in older Emacsen.

>     Stefan>            (package--reload-previously-loaded pkg-desc))
>     Stefan>          (with-demoted-errors "Error loading autoloads: %s"
>     Stefan>            (load (package--autoloads-file-name pkg-desc) nil t))
>     Stefan> -        (add-to-list 'load-path (directory-file-name pkg-dir)))
>     Stefan> +        ;; FIXME: Since 2013 (commit 4fac34cee97a), the autoload files take
>     Stefan> +        ;; care of changing the `load-path', so maybe it's time to
>     Stefan> +        ;; remove this fallback code?
>     Stefan> +        (unless (or (member (file-name-as-directory pkg-dir) load-path)
>     Stefan> +                    (member (directory-file-name pkg-dir) load-path))
>     Stefan> +          (add-to-list 'load-path pkg-dir)))

Maybe we can have that patch in emacs-29 and remove the code altogether
on `master`?

        Stefan