ライブラリの更新準備中
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 言語用のインタフェースを追加
別物とまではいかなくとも,かなり大規模な改修です.特に build() の変更が大きく,パラメータの設定方法がまったく異なるため,デフォルトの設定以外を使っている場合はソースコードの手直しが必要になります.
辞書については,旧版で作成したものは新版でも問題なく動くようになっています.逆については,新しい機能(バイナリモード)を使わなければ問題なく動くはずです.