• docs/v322_new.md zmodem_c

    From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Fri Jul 24 23:28:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4aea68fa4104640b40f8c658
    Modified Files:
    docs/v322_new.md zmodem_comparison.md
    Log Message:
    docs/zmodem, v322: record the buffered streaming send as shipped

    The sexyz send-throughput redesign shipped in sexyz.c 3.4 (buffer the
    producer, hand whole spans to the ring; ~11 -> ~115 MB/s, 44 -> 0.85
    CPU-s, error gate 5/5, two-thread architecture kept). Update the
    release notes with a sysop-facing entry, and flip the comparison doc's
    "open / rewrite the sender" framing to "done" in the TL;DR, the
    component table, the version table and recommendation 2. The detailed prototype-by-prototype investigation is left in place as the record of
    how the fix was found; the status markers now point at the shipped
    result.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Mon Aug 24 20:32:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/96fb86d1ebf3b1bd5668640b
    Modified Files:
    docs/v322_new.md zmodem_comparison.md src/bench/zmodem/README.md
    Log Message:
    docs/zmodem: profile the receive path, in both directions of the split

    The receive path had only ever been timed, never profiled, and the one figure in this document was read against the sender's then-broken throughput rather than against the receivers sexyz competes with. Corrected, with the tooling
    to keep it honest.

    The measurement that matters is not about sexyz. Splitting the layers the way section 3.2 did for sends puts 76% of the deficit inside zmodem.c, which SyncTERM shares in full, and the engine's three receive functions cost 82.6 instructions per received byte where lrz's entire receiver costs 24.1.

    Also recorded: the syscall mix, which is the opposite of the send-path bug -- receive is pure userspace compute and sexyz issues the fewest reads of any receiver measured; that the indirect calls are not the cost, disproved by an A/B adding one more per byte for 0.5%; that there is no per-file receive cost; that none of it is visible below about 1 Gbps; and that code layout alone
    moves these numbers 5%, so single-digit percentages here mean nothing.

    zmtx/zmrx 2.02 joins the comparison as the fastest receiver measured.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net