マルチスレッドまわりが強化されたMeCab 0.99

日本語形態素解析エンジンのデファクトといえばMeCabだと思いますが、12月24日に最新版の0.99がリリースされています。まるで、クリスマスプレゼントのようですね! 最新版では、マルチスレッド環境でのユーザビリティが向上して、複数スレッドが同一辞書を共有しながら解析可能になったそうです。その他の詳細は、ホームページの新着情報に記載されています。
http://mecab.sourceforge.net/
Google Code Archive - Long-term storage for Google Code Project Hosting.

これを手元のMacでビルドしたところ、ビルド自体は成功しましたが、configureで一カ所警告が出ました:

configure: WARNING: __thread keyword is not supported on this environment. Error handling of MeCab, e.g., MeCab::getLastError(), is not thread safe.

__threadは、グローバル変数やstatic変数をスレッドごとに利用するためのC/C++のキーワードで、この仕組みにはThread-Local Storage (TLS)という名前が付けられています。ところが、この__threadはMacではサポートされていないようで、その代わりにpthread_setspecificなどを使うか、gcc-4.5以降を利用する必要があるとのことです。Mac OS Xは、Machカーネルを採用しているので、Linuxやその他Unixと、こんなところに違いがあるのですね。
thread local storage macosx - Stack Overflow
Life of a Computer Scientist: Mac OS X thread local storage
Threading Programming Guide: Thread Management

MeCabのビルド自体はできて動作も問題ないようです。対応するMacPortsも、PythonRubyJava用のバインディングと合わせて更新されています。