[xyzzy:01212] Re: do-symbols
- Subject: [xyzzy:01212] Re: do-symbols
- From: Masahito Henmi <henmi@xxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
Seiya Suda さん、こんにちは。逸見 です。
> 悪いらしく「不正なディスパッチングマクロです」と言
> われてうまくいきません。
本当ですね。コンパイラのバグっぽいですね。
須田さんはたぶん悪くないですよ。
バイトコンパイルされた結果をみていたら、
10行め(最後の行に)こんなんがあって
#("*Help*" find-buffer ..... #<package: user>
↑
ここでエラーになってんだと思います。
(macroexpand-1 '(do-symbols (i) (print i)))
-->
(let ((#:G7 'nil)) (push (system:*package-external #<package: user>) #:G7)
(push (system:*package-internal #<package: user>) #:G7) (dolist
(lisp::x (package-use-list #<package: user>)) (push (system:*package-external
lisp::x) #:G7)) (block #:G11 (dolist (#:G8 #:G7 (let ((i nil)) nil))
(let ((#:G9 (length #:G8))) (dotimes (#:G10 #:G9) (let* ((#:G11 't) (#:G12
(dolist (i (svref #:G8 #:G10) (setq #:G11 'nil)) (print i)))) (when #:G11
(return-from #:G11 #:G12))))))))
となっちゃっているので、#<package: user>のところが *package*になって
ないといけないんでしょうね。
これいじょうはわかりませんので、亀井先生が出てくるのを待ちましょう。
Seiya> (defun list-symbols ()
Seiya> (interactive)
Seiya> (let (i)
Seiya> (with-output-to-temp-buffer ("*Help*")
Seiya> (do-symbols (i) (print-symbol i)))))
Seiya>
------------------------------------------------------------
逸見雅人 Email henmi@xxxxxxxxxxxxx
Masahito Henmi