`Avertissement (bytecomp)` est un peu vague - puis-je obtenir plus d'informations?


11

Lorsque je démarre emacs, je reçois quelques avertissements de compilation d'octets dans une fenêtre qui s'affiche:

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

Puis-je demander à emacs de me donner des emplacements?


3
Cette information serait utile à tout le monde. Utilisez Mx report-emacs-bugpour demander cette fonctionnalité.
abo-abo

Si vous essayez de définir debug-on-messagesur Warning (bytecomp), cela ne déclenchera-t-il pas le débogueur?
wvxvw

2
IIRC vous obtenez des noms de fichiers quand Emacs connaît le fichier. On peut donc supposer que ce qui précède provient d'un code Elisp qui a été "généré à la volée" plutôt que enregistré dans un fichier puis transmis au compilateur d'octets. Dans 99% des cas, le démarrage d'Emacs ne devrait en fait pas compiler de code du tout, donc peut-être que le problème peut être résolu à un niveau encore plus élevé.
Stefan

@wvxvw - Je n'ai pas réussi à faire debug-on-messagequoi que ce soit. En fin de compte, cela interactive-ps'est avéré être causé par screen-lines.el, et celui- with-current-bufferci était dû à une ancienne version du mode touareg. J'ai décidé de supprimer les deux. Je n'utilise pas le mode tuareg, et bien que j'aime assez screen-lines.el, cela m'a longtemps causé toutes sortes de problèmes avec les macros de clavier.
Tom Seddon

Réponses:


4

Cela se produit en raison du display-warningretard des avertissements après l'heure d'initialisation. D'ici là, le nom et l'emplacement du fichier ne sont plus connus.

(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
    [... ]

Vous devriez pouvoir désactiver cela avec quelques conseils:

(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)

Bien que cela puisse empêcher le *Warnings*tampon d'apparaître (comme décrit dans le bogue n ° 20792), vous devrez donc le vérifier manuellement dans le *Compile-Log*tampon.

Cas précédent, rapporté sur emacs-devel ici ( continue ici ).


2

Je suppose que les avertissements proviennent de la compilation à la volée des packages ELPA. Essayez d'exécuter le code suivant:

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

Après Mx my-package-recompile, basculez le tampon Compile-Log et voyez si ces avertissements y sont répliqués?


J'ai le même problème mais seulement la première erreur et 2 fois. Cette solution n'a pas fonctionné. Aussi, dit-il Done (Total of 4 files compiled, 1 failed, 2 skipped in 3 directories).
trss

Désolé, je pensais qu'il s'agissait de résoudre le problème, pas d'obtenir plus d'informations. J'ai essayé de rechercher l'erreur maintenant, mais elle n'apparaissait pas dans la liste.
trss
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.