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つ。
- http://www.bookshelf.jp/soft/meadow_30.html#SEC419
このサイトにあった、ウィンドウサイズを保存する方法を init.el 内に書いてるんだけど、
これがあると終了時にエラー吐き出す。その部分の記述を消せばOK。 - 1.のことをやらなくても、/homeフォルダ内に置いている /.gitを消してgit管理じゃなくするとエラーが起こらなくなる。
つい最近まで大丈夫だったのにどうしてこんなことに……。
でも最近git config をいじったし、原因ここの可能性はけっこう高い。 - 初期状態の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 がくしゅうちょう