From 92d96e589f50ab052cc54eb025c31ce9694148bd Mon Sep 17 00:00:00 2001 From: Yoshihiro Misawa Date: Mon, 21 Sep 2026 09:08:47 +0900 Subject: [PATCH 1/2] test: integrate native lifecycle conformance checks --- docs/v3-foundation-results.md | 17 +++++++++++++++++ src/ext/uchardet | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/v3-foundation-results.md b/docs/v3-foundation-results.md index b81c505..a6b33eb 100644 --- a/docs/v3-foundation-results.md +++ b/docs/v3-foundation-results.md @@ -3,6 +3,23 @@ 2026-09-20時点。Phase 1〜3全体の完了報告ではない。 +## native lifecycleの追加検証(2026-09-21) + +[uchardet #43](https://github.com/PyYoshi/uchardet/pull/43)を統合し、 +nativeを`1a13ad6186842b9defaeef01a071876e3cda9a61`へ固定した。 +[再現手順と比較範囲](../src/ext/uchardet/test/LIFECYCLE.ja.md)に従い、 +空入力・ASCII・UTF-8・cp1252の4入力を3巡する12比較をCTestへ追加した。 +finalize後のresetと途中の文書を破棄するresetについてfresh detectorを対照とし、 +同一feed後・1回のfinalize後の候補数、順序、encoding、language、confidence bit列、 +doneを比較する。languageのnullと空文字を区別し、getter再読の安定性も確認する。 + +ローカルの154 CTestは失敗なし(既存corpusの5 skipを含む)。 +GCC・Clang sanitizer・AppleClang・MSVC等の11 CIも成功した。 +これは小規模な通常入力の再利用検証であり、accuracyやchunk間一致の保証ではない。 +nativeの繰返しfinalize、finalize後feed、weight、error/OOM、大入力、並列利用は +このtestの対象外。Python wrapperのcloseのべき等性とnative C APIの保証を混同しない。 +engine・公開APIは変更せず、P01と#117全体は未完了のままとする。 + ## 統合済みnative基盤 - [uchardet #10](https://github.com/PyYoshi/uchardet/pull/10): build preset、Debug/sanitizer分離、compiler CI。8構成成功。 diff --git a/src/ext/uchardet b/src/ext/uchardet index 4138e44..1a13ad6 160000 --- a/src/ext/uchardet +++ b/src/ext/uchardet @@ -1 +1 @@ -Subproject commit 4138e4405bbb2fa4c0e5e2c4fdff1d85ad32f1a2 +Subproject commit 1a13ad6186842b9defaeef01a071876e3cda9a61 From 0c078bf77eb0a3c59874ae1cca5741d01ecc125f Mon Sep 17 00:00:00 2001 From: Yoshihiro Misawa Date: Mon, 21 Sep 2026 11:46:27 +0900 Subject: [PATCH 2/2] fix: integrate shared lifecycle symbol export --- docs/v3-foundation-results.md | 14 ++++++++++++-- src/ext/uchardet | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/v3-foundation-results.md b/docs/v3-foundation-results.md index a6b33eb..804788a 100644 --- a/docs/v3-foundation-results.md +++ b/docs/v3-foundation-results.md @@ -6,20 +6,30 @@ ## native lifecycleの追加検証(2026-09-21) [uchardet #43](https://github.com/PyYoshi/uchardet/pull/43)を統合し、 -nativeを`1a13ad6186842b9defaeef01a071876e3cda9a61`へ固定した。 +続く[uchardet #44](https://github.com/PyYoshi/uchardet/pull/44)の修正を含め、 +nativeを`f2873ba1fdf521fc7311fbb3c1272be83d87c667`へ固定した。 [再現手順と比較範囲](../src/ext/uchardet/test/LIFECYCLE.ja.md)に従い、 空入力・ASCII・UTF-8・cp1252の4入力を3巡する12比較をCTestへ追加した。 finalize後のresetと途中の文書を破棄するresetについてfresh detectorを対照とし、 同一feed後・1回のfinalize後の候補数、順序、encoding、language、confidence bit列、 doneを比較する。languageのnullと空文字を区別し、getter再読の安定性も確認する。 -ローカルの154 CTestは失敗なし(既存corpusの5 skipを含む)。 +ローカルの154 CTestは失敗なし(既存corpusの5件はconfigure時に対象外)。 GCC・Clang sanitizer・AppleClang・MSVC等の11 CIも成功した。 これは小規模な通常入力の再利用検証であり、accuracyやchunk間一致の保証ではない。 nativeの繰返しfinalize、finalize後feed、weight、error/OOM、大入力、並列利用は このtestの対象外。Python wrapperのcloseのべき等性とnative C APIの保証を混同しない。 engine・公開APIは変更せず、P01と#117全体は未完了のままとする。 +cChardetのshared sanitizer CIでは、既存公開関数`uchardet_is_done`のGNU/Darwin +export一覧への登録漏れがリンク失敗として現れた。#44で登録を補完し、 +Linux/macOS/WindowsのRelease shared build・lifecycle実行をnative CIへ追加した。 +全11 CIは成功。ローカルGCC Release shared build・CTest・symbol exportも確認した。 +公開headerの13関数、export一覧、GCC shared objectの定義済みdynamic symbolを +照合し、13関数すべてがexportされることも確認した。 +ローカルGCC sanitizerは環境の`/usr/lib64/libasan.so.8.0.0`欠落でリンクできず、 +実行成功とは扱わない。shared sanitizerの統合確認はcChardet CIで行う。 + ## 統合済みnative基盤 - [uchardet #10](https://github.com/PyYoshi/uchardet/pull/10): build preset、Debug/sanitizer分離、compiler CI。8構成成功。 diff --git a/src/ext/uchardet b/src/ext/uchardet index 1a13ad6..f2873ba 160000 --- a/src/ext/uchardet +++ b/src/ext/uchardet @@ -1 +1 @@ -Subproject commit 1a13ad6186842b9defaeef01a071876e3cda9a61 +Subproject commit f2873ba1fdf521fc7311fbb3c1272be83d87c667