Skip to content

personal/egparedes: connectivities as types — address review comments - #34

Merged
egparedes merged 3 commits into
mainfrom
address-connectivities-feedback
Sep 24, 2026
Merged

egparedes merged 3 commits into
mainfrom
address-connectivities-feedback

Conversation

@egparedes

Copy link
Copy Markdown
Contributor

Reworks personal/egparedes/connectivities-as-types/ after the author's review:

  • Current design only. The status blockquotes, the "where the implementation departs" section, the "how the implementation answered them" list and the review-commit narration are gone. The Implementation section is a branch/PR pointer (connectivities-as-types-8-typed-positions, fix[next]: lower unstructured shifts with the offset's own tag gt4py#2898–#2912).
  • Supersedes shared/dimensions-as-types. The note is now self-contained on the dimension design (ADR 0028). The shared note gets a superseded banner and status: superseded (note: not in the AGENTS.md status vocabulary; the previous proposed was not either), and its index entry says so. It stays until this proposal moves to shared/.
  • Origin → Domain. NeighborConnectivity[Domain, Codomain], V2E.domain. The claimed ADR 0019 origin of the term was wrong; origin also collides with the buffer origin (__gt_origin__). The gt4py branch still spells it Origin; the note flags the pending rename.
  • What stays, and why. A table explains Connectivity, CartesianConnectivity, NeighborTable, NeighborConnectivityType and ts.OffsetType, and flags the two follow-ups (slimming NeighborConnectivityType, renaming OffsetType.source/target).
  • Declaration = static part of the table's type. The Concepts section and the Binding model state the "one table per declaration per binding context" invariant explicitly, with the shared-local-dimension relaxation.
  • Staggered[D] section. Meaning (ADR 0026), runtime representation, embedded shift convention, IR tag grammar and serialization, gtfn/DaCe treatment.

Appendices, the typing probe docstring and the index are updated to match.

- describe only the current design; implementation is a branch/PR pointer
- supersede shared/dimensions-as-types (banner, status, index entry)
- rename the connectivity's first type parameter Origin -> Domain
- explain what each kept runtime/compile-time artifact is and why it stays
- present the declaration as the static part of the table's type and state
  the one-table-per-declaration-per-binding-context invariant
- add a Staggered[D] section (meaning, runtime, IR, backends)
- NeighborConnectivityType -> NeighborTableType (declaration, dtype,
  skip_value, max_neighbors); ts.OffsetType -> ts.ShiftType with
  domain/codomain/tag; offset_provider_type -> table_types
- Implementation section describes the four-PR stack (A #2899, B #2907,
  C #2910, D #2912) into which the seven PRs are being consolidated
- the Origin spelling caveat and the slimming follow-up are resolved
…eighborTableType details

- stack #2917: A #2899, B #2907, C #2910, D #2912; #2908/#2909/#2911 closed
- NeighborTableType: built from the provider key via owner/sharers, structural
  fallback for tables without a declaration, check_neighbor_table returns it
- TableTypes / TableTypesLike
@egparedes
egparedes merged commit b1b8fb6 into main Sep 24, 2026
@egparedes
egparedes deleted the address-connectivities-feedback branch September 24, 2026 10:20
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