Skip to content

v3.2.2

Choose a tag to compare

@acwright acwright released this 18 Sep 06:15
· 22 commits to main since this release

A patch release that puts back something 3.2.1 took away.

What happened

3.2.1 fixed a real defect: wait.for returned no stream position, so anything the machine printed after the call answered was unreachable by any client. That fix is still here, and it is still the point.

But 3.2.1 also cut output at the match. That made a transcript a function of the output and the pattern — genuinely nicer — at the cost of removing data from a field callers already read. A harness that simply concatenates what each call returned lost whatever followed the match in the same delivered chunk, which is the very loss the fix was about. Two of the AC6502 documentation site's samples went red on it, deterministically.

What 3.2.2 does

  • output holds everything received again, exactly as it did in 3.2.0 and before. Nothing that worked then is broken now.
  • matchEnd is new: the index in output where the pattern matched. Slice there if you want the deterministic transcript 3.2.1 gave you; ignore it and you keep every byte.
  • cursor stays — the stream position output ends on. Hand it back as the next call's since (or 6502 dbg send --since) and nothing is lost or seen twice. This was the part genuinely missing, and all the original bug needed.

6502 dbg send --since is unchanged.

Upgrading

If you are on 3.2.0 or earlier, nothing you do changes. If you are on 3.2.1 and wrote code that relies on output ending at the match, slice at matchEnd instead — one line, and it then behaves the same on every version from 3.2.2 on.

2221 tests, every golden and trace unmoved, and the documentation site's 153-case sample suite passes in full.