ライブラリの更新準備中

marisa-trie を 0.1.0 に更新するべく,テストを追加したり,Visual C++ 用のファイルを作成しなおしたり,ドキュメントを更新したりしていました.実装の方はほぼ完成したという状況なので,ドキュメントの更新が終われば公開できると思います.

変更の内容は,以下のようになっています.

  • エラー処理の方法を変更
    • 旧版は放置でしたが,新版では marisa::Exception に統一しました.
  • 機能の追加
    • TAIL にバイナリモードを追加しました.テキストモードでの構築に失敗したときは,自動的にバイナリモードを使うようになっています.
  • インタフェースの変更・追加
    • 特に,build() の引数が大幅に変更されています.旧版ではパラメータを個別に指定するようになっていましたが,新版ではフラグを使って一気に指定するようになりました.
    • find() や predict() など,複数のキーがマッチするような関数については,受け取る検索結果の数を制限できるようにしました.また,旧版では std::vector に追加する関数だけでしたが,新版では配列に格納する関数も用意しました.
    • std::FILE を受け取る入出力関数の名前を read/write() から fread/fwrite() に変更しました.
    • std::iostream の受け取りをポインタから参照に変更しました.この変更は STDIN_FILENO との衝突を防ぐためです.
    • predict_breadth_first() と predict_depth_first() を追加しました.
    • NOTFOUND, MISMATCH はマクロで使われかねない名前なので,C 言語用のインタフェースに利用することも考えて,MARISA_NOT_FOUND, MARISA_MISMATCH というマクロに変更しました.
  • C 言語用のインタフェースを追加
    • C 言語のソースコードからでも呼び出せますが,gcc では -lstdc++ が必要になるようです.後,引数が多くて困ります.

別物とまではいかなくとも,かなり大規模な改修です.特に build() の変更が大きく,パラメータの設定方法がまったく異なるため,デフォルトの設定以外を使っている場合はソースコードの手直しが必要になります.

辞書については,旧版で作成したものは新版でも問題なく動くようになっています.逆については,新しい機能(バイナリモード)を使わなければ問題なく動くはずです.