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

[xyzzy:06781] Re: 花鳥のバージョンアップ



前田さん、こんにちは。

	2001年5月4日(金)[16:17:03]の、
	[xyzzy:06751] Re: 花鳥のバージョンアップ
	への返事です。

| スタックオーバーフローとは、またやっかいなバグが・・・。
| 場所なんて特定できたりしませんよね。(^_^;

(shadow '(window-buffe)) だから。
それと、cd が shadow されていません。
こんなんでチェックしといた方がいいかも。

  (lisp:defun fset (name def)
    (or (eq (symbol-package name) (find-package "elisp"))
        (error "fset: ~S" name))
    (si:*fset name def))
  
  (defmacro defun (name (&rest lambda-list) &body body)
    (or (eq (symbol-package name) (find-package "elisp"))
        (error "defun: ~S" name))
    (let (decl intr)
      (multiple-value-setq (decl body)
        (lisp::find-declaration body))
      (multiple-value-setq (intr body)
        (lisp::find-interactive body))
      `(lisp::defun ,name ,lambda-list
         ,@decl
         ,@(lisp::if (and intr (stringp (cadar intr)))
                `((,@(car intr) :emacs t)) intr)
         ,@body)))

それから、コンパイルすると shadow が利かなくなります。

  (defmacro elisp-shadow (x)
    `(eval-when (:compile-toplevel :load-toplevel :execute)
       (shadow ,x)))

とかを使ったらどうでしょ?

-- 
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx

Index Home