kiwanami / emacs-window-manager

Customizable window manager for emacs
229 stars 28 forks source link

Fix max-lisp-eval-depth error in e2wm:method-call #25

Closed tkf closed 12 years ago

tkf commented 12 years ago

24 にコメントした無限再帰に関する修正です。勝手にテストファイル入れてるので、別の形式にする予定があるなら消して下さい。

ひとつ気になる点があります: e2wm:method-call 内の以下の部分を削ったのですが、これはやって良いのかちゃんと考察していません。この部分が無くてエラーが出る恐れがあれば教えて下さい。

    ((and method (null super-method))
     (apply method args))
tkf commented 12 years ago

テスト名がおかしかったので branch 書き換えました。

kiwanami commented 12 years ago

修正ありがとうございます。無限再帰のパターンを忘れていました。 ert.el が Emacs 24 からみたいなので、手元でテストが動かなかったのですが、動作は問題なかったのでとりあえず先にマージしました。 後で動かしてみます。

tkf commented 12 years ago

pull ありがとうございます。 ert って24からだったんですね。至る所で見たので普通に使えるものだと思ってました。元のリポジトリ https://github.com/ohler/ert を git submodule で加えるとかすれば良かったですね。

kiwanami commented 12 years ago

テスト動きました。Emacs23.4でも問題ありませんでした。テスト動かすひとはそんな多くないと思いますので git submodule する程でもないと思います。

それよりも、ertがewoc使ってるところが興味深いです。ewocちゃんと使ってるコードは初めて見ました。

tkf commented 12 years ago

submodule って --recursive つけない限りデフォルトだとダウンロードしないと思うので、テスト動かさない人の邪魔にはならないんじゃないかと思いました。 ewoc って始めてしりました。 elisp も色々ありますね...。

kiwanami commented 12 years ago

nginx-gridfs で submodule が使われているんですが、自分も含めてこれでハマっている人も多くてなかなか難しいんですよね。

tkf commented 12 years ago

どんな所でハマるんですか?古いバージョンのgitとかですか?

kiwanami commented 12 years ago

よくあるのが、updateするだけだと最新にならなくて checkout とか明示的にpullする必要があるとかでしょうか。 自分は今だに submodule の参照先コミットを更新する方法が未だに分かってないです。

tkf commented 12 years ago

Mercurial だと何もしないでも submodule が pull/push されてうざいなと思ってて、色々選べる git 良いなあと思ってたんですが、ハマるポイントにもなるんですね。

kiwanami commented 12 years ago

gitはすごく出来ることが多くて細かくて便利で、もうgit以外を使う気が起きないくらいgitに依存しているですが、「.git」内部で何が起きてるかを理解しないとコマンドの意味が分からないような感じがしてます。 ではインタフェースを整理して使いやすく出来るかと言われると、そこまですべて理解しているわけでは無いのでなかなか難しいのですが。 みなさんgitだけでなくてbzrも使いこなしてらっしゃるようで、大変恐縮です。

tkf commented 12 years ago

自分の場合はmagitのおかげで使えてる/使う気になったって感じですね。 内部のこととか全然分かってないです...。コマンドとか全体的なデザインはMercurialのが良いんじゃないかって気がします。bzrは、python-modeのリポジトリが重すぎて良い思い出無いです。