• docs/v322_new.md zmodem_comparison.md src/bench/zmodem/README.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Aug 24 20:32:03 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