2013年12月11日水曜日

wxWidgets 3.0.0 Released

ソフトウェアのGUIにwxWidgetsを用いている。使い始めた頃はwxWindowsと言う名称だったし、バージョンも2.4だった。それが、2.6, 2.8, 2.9を経て、とうとうメジャーバージョンアップして、3.0.0が正式にリリースされた(ちょっと前だけど)。
このリリースでは様々な部分が変更された。その中で、最初気が付かなかった大きな変更、でも使う側としては大きな変更について記したい。
2.9までのバージョンでは、ライブラリは主に二種類、Debug BuildとRelease Buildを利用者は用意していた。これらは互換性がないので、Debug/Releaseと別にプロジェクトを用意するのが普通だった。しかしながら、UNIX系OSの世界ではDebugコードを含んだままのソフトウェアが普通にリリースされているのが現状で、特に問題も起きていない。利点としては、エンドユーザに、あるソフトが問題を起こしたとき、Debugコードが問題点を明らかにする情報を提供してくれるという点がある。
そこで、wxWidgets-3.0.0からはMS Windows以外では、ライブラリを一つにして、基本的にDebugコード、例えばwxAssertなどは機能するようにしてある。各エンドユーザのソフトウェアのコンパイル時にそれらをコントロールするために、predefine parameter wxDEBUG_LEVELが用意されている、デフォルトでは1が設定されているが、0にするとDebugコードは全てDisableされる。
MS WindowsはDebug時にシステムライブラリもDebug用を用い、別なモードのライブラリを混在させるとHeap Curruptionを起こしたりするので、全てのライブラリで統一しなければならないので今後も2種類で行くしかないようだ。