Zwolnij cały pakiet lub drzewo biblioteczne


9

Czasami chcę zadzwonić, unload-featureaby zwolnić bibliotekę… i zależy to od biblioteki… a inna biblioteka zależy od tej biblioteki…

Jak mogę zwolnić bibliotekę i wszystkie biblioteki, które od niej zależą, bez ręcznego przeglądania drzewa zależności?

Typowym przypadkiem użycia jest rozładowanie wszystkich bibliotek pakietu (np. Podczas aktualizacji lub deinstalacji), więc jeśli istnieje sposób, aby to zrobić, byłoby wystarczająco dobre.

Odpowiedzi:


2

Nie ma wbudowanego sposób to zrobić - patrz Rozładunek w instrukcji elisp.

unload-featureprzyjmuje forceargument, który pozwala na wymuszone rozładowanie, Pnawet jeśli inne pakiety zależą od P; czy to wystarczy dla twoich potrzeb?

Jeśli nie, możesz spróbować utworzyć rekurencyjną wersję unload-featurezawierającą:

(let* ((file (feature-file feature))
       (dependents (delete file (copy-sequence (file-dependents file))))) 
  (when dependents
    (mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))

Dzięki, naprawiłem błąd w pytaniu. Chodziło o napisanie wersji rekurencyjnej unload-feature.
Gilles „SO- przestań być zły”
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.