TOPPERS/JSP for Blackfinの次のリリースに向けて準備を始めました。次のリリースの詳細についてはsourceforge で告知します。
さて、準備中にいきなり躓きました。 Ubuntu 12.04 での環境を整備していたのですが、cfgをビルドして走らせると無応答になり、帰ってきません。Ubuntu 12.04 のβの頃には気づきませんでした。ひょっとするとテスト漏れだったのかもしれません。
この問題は昨年暮れにTOPPERSのMLでJSP 1.4.4の問題として報告されていましたが、未解決のまま放置されていました。
調査したところ、ライブラリの変更にともっなって、ファイル末尾の検出に変更があった(バグが混入した?)ことが原因のようです。 ファイル末尾でstd::istream.eof()が偽を返すのです。cfgのソースはeof()しか見ていないため、無限ループに入っていました。読み込んだ文字でもファイル末尾を検出するようにしたところ、正しく動きました。
現在MLに修正差分を提出して意見を諮っているところです。結果が良好であれば、TOPPERS/JSP for Blackfinプロジェクトでも採用します。
しっかしこんなバグが今時あるとは、GCCも油断がなりません。