[追記] 公式文書を訳してみました。
cygwin の 1.5 と 1.7 のパッケージの差分より 1.7 から使えるようになった新機能を中心にざっとまとめておく。*1
比較したのは以下の 2 つのパッケージでそれぞれ展開したディレクトリツリーを diff -r で眺めた。
- http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/cygwin/cygwin-1.5.25-15.tar.bz2
- http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release-2/cygwin/cygwin-1.7.0-39.tar.bz2
ネームサービス関係
- /usr/include/arpa/nameser.h
- /usr/include/arpa/nameser_compat.h
- /usr/include/resolv.h
- ns_* の接頭辞を持つ定数、関数などが実装された。
ファイルシステムの拡張属性関係
- /usr/include/attr/xattr.h
ネットワーク関係
POSIX 関数の実装
- /usr/include/cygwin/stdlib.h
- /usr/include/fcntl.h
- /usr/include/mqueue.h
- usr/include/sys/mman.h
クロック関係
- /usr/include/cygwin/time.h
- clock_getres と nanosleep の宣言が何故かなくなっている。
clock_setres は日本語情報がないと Twitter でぼやいていたら、id:nattou_curry_2 さんが訳してくれました。ありがとうございます。
環境関係
- /usr/include/envlock.h
- env に関係する関数? (使ったことがないのでよくわかりません。)
リエントラント
- /usr/include/reent.h
- リエントラント関数がいくつか実装された。
C 標準ヘッダ
- /usr/include/stdint.h
- int32_t が long から int になっているけど、バイナリの互換性は大丈夫なのだろうか?
- /usr/include/stdio.h
- こちらでもいくつかのリエントラント関数が実装された。
- /usr/include/stdlib.h
- /usr/include/string.h
ファイル関係
その他の有用なヘッダ
まとめ
Windows 2000 以降の環境のみを考慮するように設計され直されたようで、ネットワーク周りの実装がかなり強化された。
特に addrinfo は最近流行のネットワークアプリケーションやライブラリでよく使われており、cygwin 自体でこれを実装するようになったことでより多くの Linux 向けソフトウェアの移植が期待できるだろう。
*1:タイトルはホッテントリメーカーより