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

[xyzzy:01212] Re: do-symbols



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 

Index Home