After the classic Converse deletion (#4061): dangling references and decisions on the Charm++ side

オープン
#4,062 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cmake, cpp, linux

調査の方向性

Start by checking the listed callers and headers: src/libs/ck-libs/state_space_searchengine/searchEngine.C, src/ck-core/ck.C, src/ck-core/init.C, and src/conv-core/debug-conv.h. Compare each reference with the deleted classic implementation and the linked reconverse issues; the issue leaves several choices open, so first establish which decisions are in scope. Done means resolving the dangling references and recording decisions for the unsupported paths, including the charmc link flags.

索引モデルが issue の本文から書いたものです。

説明

Companion to #4061. The inventory of the 699 deleted files, grouped into 45 capabilities with a disposition for each, is at https://claude.ai/artifact/XuUvYjLttB9Ntz7XuMUjkd (section "Capabilities removed, and where each one stands"). This issue holds the Charm++-side items that still reference a deleted capability or need a decision; reconverse #296 holds the reconverse-side ones.

Dangling references to decide

  • CmiPoolAlloc: src/conv-core/cmipool.h is kept but cmipool.C is deleted. src/libs/ck-libs/state_space_searchengine/searchEngine.C still calls CmiPoolAllocInit(30). Either port the pool into reconverse or switch that library to CmiAlloc and drop the header.
  • Message compression: reconverse never compresses, and the classic compress*.C / lz4 / zlib files in arch/util are gone. The kept Charm++ tree has no caller of Converse-level message compression: the only compression references are CMK_USE_ZLIB blocks in ck-ldb (LBManager.C, readmodel.C: gzip for load-balancing dump files, using zlib directly) and in AMPI (disabled with && 0). Nothing to fix here unless compression is wanted back; decision in reconverse #296.
  • CmiStartQD in the record-replay path: src/ck-core/ck.C calls CmiStartQD for CkMessageReplayQuiescence; reconverse has no CmiStartQD. Check whether that path is compiled on reconverse, then either change the caller to CkStartQD or ask reconverse for the function.
  • CharmDebug hooks: src/conv-core/debug-conv.h and debug-conv++.C are kept; src/ck-core/init.C declares and calls CpdFreeze; the classic debug-conv.C (CpdInit, CpdFreeze, CpdNotify) is deleted and reconverse has none of it. CharmDebug has not been tried on reconverse. Decide whether CharmDebug is supported on the 9.0 line.
  • Debugging allocators (memory-paranoid, memory-leak, memory-record, memory-verbose, memory-charmdebug): gone with no reconverse equivalent. Sanitizers cover paranoid and leak; CharmDebug's memory views depended on memory-charmdebug. Goes with the CharmDebug decision.
  • Out-of-core (CMK_OUT_OF_CORE): decide later (2026-10-20). Nothing was deleted: the repository only ever held conv-ooc.h (checked in commented-out in 2003), ten guarded lines in cklocation.C, ckarray.C and ckmigratable.h, and the ooc option in buildcmake; no CooRegisterManager/CooRegisterObject implementation exists in the history, so the option fails at link in classic too. Options: drop the header, guards and build option, or keep them as the shape of a future design.
  • -rdynamic on the charmc link line for reconverse targets: reconverse #294 adds stack traces on CmiAbort and fatal signals; on Linux the application's own symbols appear in the trace only if the executable is linked with -rdynamic. reconverse's CMake interface adds it for CMake consumers; charmc-linked programs need it in the reconverse-linux-* conv-mach.sh.

Unknown

  • Windows: the win and *-win-x86_64 arch directories are deleted; reconverse and LCI have never been built on Windows. cc-msvc in src/arch/common is kept.

Slated elsewhere (for the record)

Isomalloc and migratable threads, and AMPI global privatization: AMPI stages 1-2. Seed balancers and their LBTopology neighborhoods: reconverse #185 re-port. Stack traces: reconverse #294. Converse futures: reconverse #295. MPI interop: reconverse #296.

🤖 Generated with Claude Code

主要言語
C++
スター
241
フォーク
62
平均マージ
1日 1時間
マージ済み PR(30日)
125

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

charmplusplus/charm のほかの issue

charmplusplus/charm の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。