`चेतावनी (bytecomp)` थोड़ा अस्पष्ट है - क्या मुझे कोई और जानकारी मिल सकती है?


11

जब मैं ईमैक्स शुरू करता हूं, तो मुझे एक विंडो में बाइट संकलन चेतावनी के कुछ जोड़े मिलते हैं जो पॉप अप करते हैं:

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

2
IIRC आप फ़ाइल नाम मिलता है जब Emacs फ़ाइल जानता है। तो संभवत: ऊपर कुछ एलिस्प कोड से आया है जो एक फ़ाइल में सहेजने के बजाय "फ्लाई पर उत्पन्न" हुआ था और फिर बाइट-कंपाइलर के पास गया। 99% मामलों में, Emacs शुरू करना वास्तव में किसी भी कोड को संकलित नहीं करना चाहिए, इसलिए शायद समस्या को उच्च स्तर पर भी ठीक किया जा सकता है।
स्टेफन

@wvxvw - मैंने debug-on-messageकुछ भी करने का प्रबंधन नहीं किया । अंत में, interactive-pस्क्रीन-लाइन्स के कारण निकला, और with-current-bufferएक तुअरग-मोड के प्राचीन संस्करण के कारण था। मैंने दोनों को हटाने का फैसला किया। मैं tuareg- मोड का उपयोग नहीं करता हूं, और जब मैं स्क्रीन-लाइन्स को पसंद करता हूं। तो, यह लंबे समय से मुझे कीबोर्ड एरोस के साथ सभी प्रकार की समस्याओं का कारण बना रहा है।
टॉम सेड्डन

जवाबों:


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*बफर में मैन्युअल रूप से जांचना होगा ।

इस बात का पिछला मामला, Emacs-devel पर सूचना दी यहाँ ( यहाँ जारी है )।


2

मैं अंदाजा लगाने जा रहा हूं कि ईएलपीए पैकेजों के फ्लाई-कंपाइल से चेतावनी आ रही है। निम्नलिखित कोड चलाने का प्रयास करें:

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

Mx-my-package-recompile के बाद Compile-Log बफर स्विच करें और देखें कि क्या इन चेतावनियों को वहां दोहराया जाता है?


मैं एक ही समस्या है, लेकिन केवल पहली त्रुटि और 2 बार। यह समाधान काम नहीं किया। इसके अलावा, यह कहा Done (Total of 4 files compiled, 1 failed, 2 skipped in 3 directories)
trss

क्षमा करें, यह समस्या को ठीक करने, अधिक जानकारी प्राप्त न करने के बारे में सोचा गया था। मैंने अब त्रुटि खोजने की कोशिश की, लेकिन यह सूची में नहीं आया।
trss
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.