`경고 (bytecomp)`는 약간 모호합니다. 더 자세한 정보를 얻을 수 있습니까?


11

emacs를 시작하면 팝업 창에 몇 바이트 컴파일 경고가 표시됩니다.

Warning (bytecomp): `interactive-p' is an obsolete function (as of 23.2); use `called-interactively-p' instead. [7 times]
Warning (bytecomp): Use `with-current-buffer' rather than save-excursion+set-buffer

이맥스가 위치를 알려줄 수 있나요?


3
이 정보는 모든 사람에게 유용 할 것입니다. report-emacs-bug이 기능을 요청 하려면 Mx 를 사용하십시오 .
— abo-abo

사용자가 설정하려는 경우 debug-on-message에 Warning (bytecomp), 그것은 디버거를 트리거하지 않습니다?
— wvxvw 2016 년

2
IIRC는 Emacs가 파일을 알고있을 때 파일 이름을 얻습니다. 아마도 위의 내용은 파일에 저장 한 다음 바이트 컴파일러로 전달되지 않고 "즉석에서 생성 된"일부 Elisp 코드에서 비롯된 것입니다. 99 %의 경우 Emacs를 시작하면 실제로 어떤 코드도 컴파일하지 않아야하므로 문제가 더 높은 수준에서 해결 될 수 있습니다.
— Stefan

@wvxvw-나는 debug-on-message아무것도 할 수 없었습니다. 결국 interactive-pscreen-lines.el에 의한 것으로 밝혀졌으며, with-current-buffer하나는 고대 버전의 tuareg 모드 때문이었습니다. 나는 둘 다 제거하기로 결정했습니다. 나는 tuareg 모드를 사용하지 않으며 screen-lines.el을 매우 좋아하지만 오랫동안 키보드 매크로에 모든 종류의 문제를 일으켰습니다.
— Tom Seddon 1

답변:


4

display-warning초기화 시간이 끝날 때까지 경고 가 지연 되어 발생합니다 . 그때까지 파일 이름과 위치를 더 이상 알 수 없습니다.

(defun display-warning (type message &optional level buffer-name)
  [...]
  (if (not (or after-init-time noninteractive (daemonp)))
      ;; Ensure warnings that happen early in the startup sequence
      ;; are visible when startup completes (bug#20792).
      (delay-warning type message level buffer-name)
    (unless level
    [... ]

몇 가지 조언으로 이것을 비활성화 할 수 있어야합니다.

(defun dont-delay-compile-warnings (fun type &rest args)
  (if (eq type 'bytecomp)
      (let ((after-init-time t))
        (apply fun type args))
    (apply fun type args)))
(advice-add 'display-warning :around #'dont-delay-compile-warnings)

이렇게하면 *Warnings*버퍼가 팝업 되지 않을 수 있지만 (버그 번호 20792에 설명되어 있음) *Compile-Log*버퍼 에서 수동으로 확인해야 합니다.

이 이전하는 경우는, 이맥스 (STABLE)에보고 여기 ( 여기 계속 ).


2

ELPA 패키지를 즉시 컴파일 할 때 경고가 발생한다고 생각합니다. 다음 코드를 실행 해보십시오.

(defun my-package-recompile()
  "Recompile all packages"
  (interactive)
  (byte-recompile-directory "~/.emacs.d/elpa" 0 t))

Mx my-package-recompile 후 Compile-Log 버퍼를 전환 하고이 경고가 복제되는지 확인하십시오.


나는 같은 문제가 있지만 첫 번째 오류와 두 번만 발생합니다. 이 솔루션은 작동하지 않았습니다. 또한 말했다 Done (Total of 4 files compiled, 1 failed, 2 skipped in 3 directories).
— trss

죄송합니다. 문제를 해결하는 것이 아니라 추가 정보를 얻는 것이 아니라고 생각했습니다. 지금 오류를 찾으려고했지만 목록에 나타나지 않았습니다.
— trss
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.