전체 패키지 또는 라이브러리 트리 언로드


9

때로는 unload-feature라이브러리를 언로드 하기 위해 전화를 걸고 싶습니다 . 라이브러리는 라이브러리에 의존하고 다른 라이브러리는 해당 라이브러리에 의존합니다…

종속성 트리를 수동으로 거치지 않고 라이브러리와 라이브러리에 의존하는 모든 라이브러리를 언로드하는 방법은 무엇입니까?

일반적인 사용 사례는 패키지의 모든 라이브러리를 언로드하는 것입니다 (예 : 업그레이드 또는 제거시). 그렇게하는 방법이 있으면 충분합니다.

답변:


2

이 작업을 수행하는 기본 방법은 없습니다 . Elisp 설명서의 언로드 를 참조하십시오 .

unload-feature다른 패키지가 의존하더라도 force강제로 언로드 할 수 있는 인수를 취합니다 . 당신의 필요에 충분합니까?PP

그렇지 않은 경우 다음을 unload-feature포함 하는 재귀 버전을 만들 수 있습니다 .

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

감사합니다. 문제의 오류를 수정했습니다. 재귀 버전 작성unload-feature 것이 문제의 핵심이었습니다.
Gilles 'SO- 악마 그만두 다'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.