実はGCC 7.1待ち

高木です。おはようございます。

先月に仕切り直しを宣言したままストップしているC++によるTcl/Tkラッパーですが、実はタイトルのとおり、GCC 7.1待ちになっています。

GCC 7.1はすでに先月リリースされていますし、普段よく使っているMinGW-w64のバイナリも公開されています。
けれども、MSys2のPacman経由での頒布がまだです。

MSys2のものを使わないならそれでもいいと思います。
むしろ、Tcl/Tkを含めた再配布のことも考えるとそのほうがいいのかもしれません
けれども、いろいろな事情があってMSys2のものを待っているのです。

GCC 7.1を使いたいのは、もちろんC++17に対応させるためです。
Tcl/Tkラッパーは、もともとC++14を使うことを考えていました。
けれども、それはその時点でまともに使えるのがC++14までだったからにすぎません。

C++17ではなく、いっそのことC++11に留めるのも選択肢としてはありました。
たとえば、Raspberry PiでGUIを実装するために使うことを考えると、RaspbianのGCCは標準ではC++11までしか使えません。
用途を可能な限り拡大するにはC++11までにしたほうがいいでしょう。

ただ、ライブラリが完成するまでには一定の時間がかかるのです。
古いバージョンのコンパイラに引っ張られていると、将来的にはきっとストレスの多いものになってしまうでしょう。
Raspberry Piで使うにしても、Raspbian(というか元となるDebian)のバージョンも上がっていくでしょうし、自分で最新のコンパイラをインストールすることだってできます。

というわけで、C++17に合わせることにしました。
GCC 7.1はなかなか出てこないので、来月に入れば、とりあえずClangで代用するなどして、少しずつ進めていきたいと思います。

仕切り直し宣言のときにも書いたように、Tcl/TkラッパーはPCP標準ライブラリの扱いにしようと考えています。
なので、まずはより汎用的なライブラリから手を付けていったほうがいいかもしれませんね。