[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Avoid compile warnings (Re: core dump)



>>>>> In [emacs-w3m : No.00240] 
>>>>>	Katsumi Yamaoka <yamaoka@jpl.org> wrote:

山岡> XEmacs で let で拘束された obsolete var に対する警告の抑制...

XEmacs は `file-coding-system' のような obsolete な変数が let で
束縛されて使われていても警告を出します。
例えば Gnus は `byte-compile-warnings' に `obsolete' を含めない
ことで簡単に対処していますが、ちょっとがんばって optimizer を作っ
てみました。
これで少なくともぼくの環境ではあまり役に立たない warnings を完全
に抑制できたので、今後何か不具合があるとよく目立つはずです。:-)

Optimizer は w3mhack.el の `w3mhack-byte-optimize-letX' がそれで、
以下のような変換をソースレベルで行なわせています。

;;From
  (let ((coding-system-for-read 'binary)
	(file-coding-system-for-read *noconv*))
    (insert-file-contents FILE))
;;To
  (let ((coding-system-for-read 'binary))
    (insert-file-contents FILE))

;;From
  (let* ((codesys 'utf-8)
	 (file-coding-system codesys)
	 (coding-system-for-write file-coding-system))
    (save-buffer))
;;To
  (let* ((codesys 'utf-8)
	 (coding-system-for-write codesys))
    (save-buffer))

たぶん `let' が special form だということになっているためか、普
通の方法では optimize できなかったので、本来の optimizer 関数を
advise しているのが苦しいところ。

;; そんなことやっちゃいかん、ということかもしれませんが。(^^;;)
-- 
Katsumi Yamaoka <yamaoka@jpl.org>