Skip to content

Fix: bindActions dropped ν-net join matchSpec (NU-030)#43

Merged
debe merged 1 commit into
mainfrom
bind_actions_fix
Jul 2, 2026
Merged

Fix: bindActions dropped ν-net join matchSpec (NU-030)#43
debe merged 1 commit into
mainfrom
bind_actions_fix

Conversation

@mpetris

@mpetris mpetris commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to 2.10.3. PetriNet.bindActions rebuilds every transition via rebuildWithAction to attach its action, but never carried matchSpec forward — a third drop site missed by the 2.10.3 composition fix.

A net composed with an intact ν-net join lost its correlation the moment actions were bound, reverting a correlated join-by-id to a plain FIFO AND join at runtime and pairing tokens by arrival order across overlapping fork/join generations.

  • rebuildWithAction now carries the transition's matchSpec as-is. bindActions does not rename places, so no remap is applied (unlike rebuildWithName).
  • Regression tests: bindActions_preservesMatchSpec (structural) and bindActions_matchedJoin_correlatesByName_notFifo (behavioral).
  • Bump java version to 2.10.4; CHANGELOG updated.

Follow-up to 2.10.3. `PetriNet.bindActions` rebuilds every transition via
`rebuildWithAction` to attach its action, but never carried `matchSpec`
forward — a third drop site missed by the 2.10.3 composition fix.

A net composed with an intact ν-net join lost its correlation the moment
actions were bound, reverting a correlated join-by-id to a plain FIFO AND
join at runtime and pairing tokens by arrival order across overlapping
fork/join generations.

- `rebuildWithAction` now carries the transition's `matchSpec` as-is.
  bindActions does not rename places, so no remap is applied (unlike
  `rebuildWithName`).
- Regression tests: `bindActions_preservesMatchSpec` (structural) and
  `bindActions_matchedJoin_correlatesByName_notFifo` (behavioral).
- Bump java version to 2.10.4; CHANGELOG updated.
@debe debe merged commit ec5a934 into main Jul 2, 2026
6 checks passed
debe added a commit that referenced this pull request Jul 2, 2026
…(NU-030)

Cross-language rollout of the bindActions matchSpec fix (PR #43, Java).
rebuildWithAction attaches an action by rebuilding the transition; the
TypeScript path dropped the join's matchSpec, reverting a correlated
join-by-id to a plain FIFO AND join once actions were bound (pairing
tokens by arrival order across fork/join generations). A bind renames
no places, so the match is carried as-is, unlike the compose/rename path.

- typescript: rebuildWithAction now carries matchSpec; structural +
  behavioral regression tests (both executors).
- rust: rebuild_with_action already carried it; added structural (core)
  + behavioral (runtime, both backends) regression guards.
- python: pytest that a bound matched join correlates by name, not FIFO
  (rides on the Rust runtime).
- coordinated version bump: TS 2.10.4, Rust 3.4.4, Python 2.13.2
  (Java 2.10.4 from PR #43); CHANGELOG entry made cross-language.
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.

2 participants