Skip to content

Chapel: clean up chpl 2.8.0 unstable-API warnings in src/chapel/*.chpl #33

Description

@hyperpolymath

Follow-up to #29 / #31 (Wave-3 Chapel rehabilitation).

The Wave-3 rehab in #31 cleared the errors on chpl 2.8.0 (FileSystem.stat → OS.POSIX.stat; string-throws propagation; forall ref-shadow). The unstable-API warnings were intentionally left out of scope. This issue tracks them so they don't drift.

Inventory (from the audit sub-agent run during the #31 work):

  • _pad symbol names unstable — 6 instances in src/chapel/FFIBridge.chpl (lines 185, 251, 253, 284, 348, 351). Fix: rename _padpad_a / pad_b etc. Pure mechanical edit; no semantic change.
  • dmapped keyword unstable — 3 instances in src/chapel/ManifestLoader.chpl (lines 85, 114, 195). Fix: replace {range} dmapped new blockDist({range}) with blockDist.createDomain({range}). New factory function is the chpl 2.x idiom.
  • DynamicIters module unstablesrc/chapel/DocudactylHPC.chpl:29. Probably can't be fixed without a stable replacement; document the dependency and live with the warning OR pin pragma "no-doc" if available.
  • string.c_str() unstable — ~12 sites across DocudactylHPC.chpl + FaultHandler.chpl. No clean replacement in 2.8.0; either suppress or accept.
  • c_addrOf on cross-locale arrays unstableManifestLoader.chpl:198 (broadcast mode forall). Audit confirmed the usage is safe (forall i in entryDom do docEntries[i] = localEntries[i]); the warning is spurious. Suppress with a pragma or refactor to avoid the cross-locale c_addrOf call.

These warnings don't fail the build but they pollute CI output and signal API drift risk. Suggested approach: one PR for the _pad + dmapped mechanical fixes (clearly safe), then a second PR judging the remaining cases (DynamicIters / string.c_str() / c_addrOf) which may need pragmas or design discussion.

Not urgent — file so the inventory survives.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtKnown shortcut, drift, or hygiene owed - includes cleanup

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions