Skip to content

chore: ビルド不能で放置された cc/occ/ を撤去 (#84)#104

Merged
thawk105 merged 3 commits into
masterfrom
p7-remove-cc-occ-impl
May 15, 2026
Merged

chore: ビルド不能で放置された cc/occ/ を撤去 (#84)#104
thawk105 merged 3 commits into
masterfrom
p7-remove-cc-occ-impl

Conversation

@thawk105
Copy link
Copy Markdown
Owner

概要

cc/occ/ (K&R OCC 実装) を撤去する。#84 の調査で、これは「foreach への入れ忘れ」ではなく構造的に現行ビルドシステムへ接続できない状態であることが判明したため。

撤去の理由 (#84 調査結論)

  • ビルド不能: CMakeLists.txt が無く legacy Makefile のみ。その Makefile が include する include/MakefileForMasstreeUse はツリーに存在せず、ba947f4 の移動以前から build は壊れていた。
  • concept 非適合: クラス名が TxnExecutor (現行は TxExecutor)、API も legacy uint64-key API で現行の TxExecutorLike concept (include/tx_executor_concept.hh) に適合しない。
  • 6 年放置: 最後の機能更新は 2020-06-18。以降は移動と reformat の機械的変更のみ。
  • silo と重複: OCC 系の代表は現行 API 適合・4 ワークロード対応・wired 済みの cc/silo/ が担えている。
  • 可逆: K&R OCC の実装は git 履歴 (5c74d3b〜7a8fe9f) に残るので、必要になれば復元して現行 API で書き直せる。

変更内容

  • cc/occ/ ディレクトリを削除 (14 ファイル)。
  • docs/protocols_ja.md / docs/protocols_en.md の「デフォルトではビルドしないもの / Not built by default」セクション (cc/occ/ への dangling な参照) を削除。_ja / _en セット更新の Hard rule に従い同一コミット。
  • トップレベル CMakeLists.txtforeach(_proto …) は元から occ を含まないため変更不要。

確認

  • grep -rn "cc/occ" がリポジトリ全体で 0 件 (mocc は別プロトコルなので対象外、誤検出なし)。
  • cmake -S . -B build (configure) が成功する。

Closes #84

thawk105 added 3 commits May 15, 2026 01:42
新プロトコル用テンプレートだった cc_format/ を削除する。Makefile ベースで
本体の CMake ビルドから乖離しており、README.md の手順も行番号ベースで内部
リファクタリングのたびに陳腐化していた。トップレベル CMake からは参照されて
おらず、リポジトリ全体に dangling な参照は無い (grep 確認済み)。

テンプレートの役割は docs/contributing の「新しいプロトコルを追加する」
セクションに概念ベースで置き換える (別コミット)。生成スクリプト案が廃止
された経緯は #34 を参照。
cc_format/ 削除で失われた「新プロトコル用テンプレート」の役割を、
contributing_ja / contributing_en の「新しいプロトコルを追加する」
セクションで概念ベースに置き換える。

行番号ベースの指示は意図的に書かない (内部リファクタリングで陳腐化
するため。これが #83 の動機)。代わりに以下を概念ベースで記載:

- 出発点は「目的に近い既存プロトコル (silo 等) をコピー」
- cc/<name>/ 各ファイルの役割 (CMakeLists.txt / エントリポイント /
  transaction.hh / result.cc / util.cc 等)
- ccbench_add_protocol() ヘルパーへの乗せ方とトップレベル CMake の
  foreach への登録
- TxExecutorLike concept による TxExecutor 契約のコンパイル時強制
- 機械的にチェックできる完了チェックリスト

_ja を原典として更新し、_en も同一コミットで揃える (Hard rule)。
cc/occ/ (K&R OCC 実装) は現行ビルドシステムに接続できる状態に無く、
入れ忘れではなく構造的にビルド不能であることが #84 の調査で判明したため
撤去する。

理由 (#84 の調査結論):

- ビルド不能: CMakeLists.txt が無く legacy Makefile のみ。その Makefile
  が include する include/MakefileForMasstreeUse はツリーに存在せず、
  ba947f4 の移動以前から build は壊れていた。
- concept 非適合: クラス名が TxnExecutor (現行は TxExecutor)、API も
  legacy uint64-key API で現行の TxExecutorLike concept
  (include/tx_executor_concept.hh) に適合しない。
- 6 年放置: 最後の機能更新は 2020-06-18。以降は移動と reformat の機械的
  変更のみ。
- silo と重複: OCC 系の代表は現行 API 適合・4 ワークロード対応・wired
  済みの cc/silo/ が担えている。
- 可逆: K&R OCC の実装は git 履歴 (5c74d3b〜7a8fe9f) に残るので、必要に
  なれば復元して現行 API で書き直せる。

あわせて docs/protocols_{ja,en}.md の「デフォルトではビルドしないもの」
セクション (cc/occ/ への dangling な参照) を削除する。トップレベル
CMakeLists.txt の foreach は元から occ を含まないため変更不要。

Closes #84
@thawk105 thawk105 merged commit fda2107 into master May 15, 2026
3 checks passed
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.

[P7] cc/occ/ をビルドに接続するか撤去するか決める

1 participant