ハトネコエ Web がくしゅうちょう

プログラミングとかAndroid

CygwinからEmacsを立ち上げると child_info_fork::abort というエラーが

CygwinからEmacsを立ち上げるのですが、
ある日突然こんなエラーが、Emacs起動時や終了時にCygwinに出るようになりました。

こんなメッセージ↓
1 [main] emacs 7928 child_info_fork::abort: C:\gnupack_devel-12.03-2015.02.01\app\cygwin\cygwin\bin\cygintl-8.dll: Loaded to different address: parent(0x160000) != child(0xE0000)

あとは終了時に
Doing Vfork: resource temporarily unavailable
Emacs側に出て、Emacsが終了できなくなったり。
こりゃあ困ったということで、いろいろ調べて、
CygWin側のバグだとかいう話まで行ったのはいいんだけど、どれをやってもダメ。
いろいろやった。

Cygwin – child_info_fork::abort: address space needed – みずさわblog
* Cygwin - fork エラー (rebase 問題)! - mk-mode BLOG
Cygwin/bin 内にある ash を実行し、シェル上で rebaseall を実行したり、
(gnupack の場合はトップフォルダに startup_rebaseall.exe があった。
これを使ったら、起動時のエラー表示が無くなったような覚えがある。ただし終了時は出たままだった)

イッチョカマーの徒然草: Cygwin+Emacs Problem
apt-cyg を利用して libncursesを再インストールしてみたり、
(ちなみに現在のバージョンは libncurses10 だった)

まあ本当いろいろやりました。
何度gnupackを別フォルダに解凍して実験したことか。

それでわかったのが3つ。

  1. Meadow/Emacs memo: ウィンドウ/フレーム関連 ― 分割・サイズ変更
    このサイトにあった、ウィンドウサイズを保存する方法を init.el 内に書いてるんだけど、
    これがあると終了時にエラー吐き出す。その部分の記述を消せばOK。
  2. 1.のことをやらなくても、/homeフォルダ内に置いている /.gitを消してgit管理じゃなくするとエラーが起こらなくなる。
    つい最近まで大丈夫だったのにどうしてこんなことに……。
    でも最近git config をいじったし、原因ここの可能性はけっこう高い。
  3. 初期状態のgnupackでも、 emacs で Ctrl+S でI-SEARCH すると isearch-lazy-highlight-update がどうのこうの出て検索できないし、
    CygWin上で同じエラーメッセージが出るんだけど……。なんだろこれ。


これ、3についてはさっきわかりました。
M-x isearch-lazy-highlight
ってEmacs上でやったら、
「お前、isearch-lazy-highlight-cleanup って表現古いよ。
今はその代わりに lazy-highlight-cleanup って言うんだよ」って
Emacsに言われてわかりました。

そしてgnupackに同梱されている migemo.el を見たらビンゴ。
isearch-lazy-highlight
という表現をいっぱい使っていました。これを全て
lazy-highlight
に置換することで、I-SEARCH with migemo の検索が行えるようになりました。
(ただし検索初回時に「file-error Doing vfork resource temporarily unavailable」と表示が出てしまう)

はあ……、ファイルの読み込みに問題が生じてる気がするんだよなあ。
原因はCygWinというよりもパソコン自体にある気がする。
全然直らないや、困った困った・・・。

解決した ⇒ child_info_fork::abort の原因はセキュリティソフト(Kaspersky)だった - ハトネコエ Web がくしゅうちょう