充実したCygwinライフを送る
もう最近はCygwinで生きていけるんじゃないかと検討している。
1.7をインストールする
Cygwinは現在1.5→1.7の過渡期にあり、1.7がベータテスト中となっている。
1.7はIPv6が使えるなど種々の改善が行われている。個人的には1.7を主に使っていて、実際安定している。
PuTTYを使う
Poderosaはフルスクリーンアプリケーションの描画に問題があったり、AES CTR暗号モードを持っていないなど不具合が多いので他のターミナルエミュレータを検討する。
CygTermを使っても良いが、PuTTYcygも期待通りに動作する。
Cygwinは1.7以降、Unicodeをサポートしているので、LANGをja_JP.utf8にするなどすれば大概のアプリケーションは正常に動作する。
mosh
moshはCygwin上ではコンパイルできない。moshはWindows以外*1でWCHARが16bitな環境をサポートしていないため。
UCの定義だけ_WIN32の方を採用すれば、とりあえず動くバイナリが出来る。
大概のテストは通るが、getopt_longのテストだけは正常に通らない。
[ FAILED ] 5 tests, listed below:
[ FAILED ] MoshTest.getopt_longU_3
[ FAILED ] MoshTest.getopt_longU_4
[ FAILED ] MoshTest.getopt_longU_5
[ FAILED ] MoshTest.getopt_longU_9
[ FAILED ] MoshTest.getopt_longU_10
また、GCの警告が良く出る。
GC Warning: Repeated allocation of very large block (appr. size 241664):
May lead to memory leak and poor performance.
threadsブランチは更に(r1753)、
- MultiVMProcedures.cppにGloc.h
- main.cppにEqHashtable.h、Closure.h、VM-inl.h。
をincludeとして追加し、configure.acを適当に修正し、gc-7.1を通常のディストリビューションに置き換えた上で、
./configure --disable-shared --enable-threads=posix
する必要がある。Thread APIをWin32に移植するのが面倒そう(たぶんWindowsネイティブのスレッドよりpthreads win32を導入する方が早そう)なので*2しばらくはこれで凌ぐ*3つもり。