Skip to content

Release v1.5.0 - #38

Merged
nyoki-mtl merged 1 commit into
mainfrom
export-release-v1.5.0
Oct 18, 2026
Merged

nyoki-mtl merged 1 commit into
mainfrom
export-release-v1.5.0

Conversation

@nyoki-mtl

@nyoki-mtl nyoki-mtl commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

定跡の編集原本とエンジン参照を共有する Native Book API を追加します。
部分参照、コメント付き編集、差分保存、保全付き復旧、別名救出と compaction を提供します。
保存形式は wire version 4(magic RSSHGBK4)で、可変長整数と独立した Zstandard ブロック圧縮を採用します。
ブロック局面数は 1..=16384 を指定でき、既定と推奨値は 64 です。圧縮後と展開後はそれぞれ 64MiB 以下に制限します。
depth の意味は文書単位の depth_kind で指定し、0 は未指定、1 は探索深さ、2 は定跡内の後退解析距離、未知の u32 値も保持します。
Native 候補手の回数は保存せず、回数を持つ外部入力は既定の strict 変換で拒否し、明示的な lossy 変換で欠落を報告します。
BookError は 3 variant を追加して #[non_exhaustive] とするため、利用側の match にはワイルドカード分岐が必要です。
book feature のビルドには Zstandard の C 実装をコンパイルする C コンパイラが必要です。Python の wheel 利用時には不要です。

旧 Book、MemoryBook、StaticBook、BookBuilder とハッシュキー API は削除します。
旧 v2 ファイルだけから局面を復元できないため、元の棋譜または外部定跡からの再生成が必要です。
固定長 v3 も新 reader では受理せず、入力から再生成します。
外部形式と所有 IR からは write_native_book と NativeBookImportOptions で変換します。

指し手の先後反転と左右反転、先後反転した PackedSfen の出力も追加します。
王手候補表の駒種対応を修正し、王手生成、捕獲候補の走査と一手詰めの局面複製を改善します。

検証:make check(Rust 737 件、Python 246 件、doc-test 30 件)、release 確保検査、feature 単独を含む rustdoc と mdBook が成功しました。
上限拡張を含む最終ソースから Windows の標準版と AVX2 版の配布物を再作成し、新規環境でそれぞれ 31 件成功しました。
展開した Rust crate を利用する外部 consumer の検査と、配布物内の Rust ソースの byte 単位の一致確認も成功しました。
両 sdist をリポジトリ外で再ビルドし、生成 wheel の隔離検査もそれぞれ 31 件成功しました。
実 YBB 全 17,000,703 局面、137,543,442 候補手で保持フィールドが一致し、ShogiLens での同一ファイル編集後に nnue と az が再参照できました。
これらはローカルの検証であり、公開 PR の各 OS CI と公開後のレジストリ取得は別途確認します。

公開候補の python-release.yml 手動実行で、標準版 5 環境と AVX2 版 3 環境、および両 sdist の build が成功しました。branch ref のため PyPI publish は実行していません。

- Native Book v4(RSSHGBK4)で部分参照、コメント付き編集、差分保存、復旧、別名救出とcompactionを追加。圧縮ブロックは1〜16,384局面を指定でき、既定と推奨は64局面
- 旧Book系APIとNativeの回数を削除。旧v2と固定長v3は元入力から再生成する。外部入力の回数欠落はstrict変換で拒否し、明示的なlossy変換で報告する
- depth_kindは0が未指定、1が探索深さ、2が定跡内の後退解析距離。未知のu32値も保持する。BookErrorに3 variantを追加してnon_exhaustiveとし、利用側のmatchにはワイルドカード分岐が必要
- MoveとMove32の先後反転と左右反転、先後反転したPackedSfen出力を追加。Rustはflip()、Pythonはflip_side()、左右反転はmirror_file()
- check_candidate_bbの駒種対応を修正し、非王手局面の王手生成、CapturePlusProの走査と王手中の一手詰めの局面複製を高速化
- 王手生成の独立参照テスト、release版の確保検査、feature単独のビルドとrustdoc検査を整備
@nyoki-mtl
nyoki-mtl merged commit 0cb1581 into main Oct 18, 2026
15 checks passed
@nyoki-mtl
nyoki-mtl deleted the export-release-v1.5.0 branch October 18, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant