https://gitlab.synchro.net/main/sbbs/-/commit/9f1ed0221b7e8d4c67967ede
Modified Files:
src/syncterm/Wren.adoc src/syncterm/scripts/syncterm.wren wrentest.wren src/syncterm/wren_bind.c
Log Message:
SyncTERM: File.sha1 / File.md5 + missing docs and tests
File.sha1 and File.md5 hash the file's full content via xpmap and
the existing src/hash sha1.c / md5.c. Zero-length files are
special-cased to an empty buffer because xpmap rejects 0-sized
maps. Returned as raw digest bytes (Wren strings are byte-safe)
so they compare directly against SFTPEntry.hash from the
sha1s@syncterm.net /
md5s@syncterm.net SFTP extensions; format hex
yourself if you need it for display.
Also catches Wren.adoc + wrentest.wren up to recent work that
shipped without docs / tests:
- New Wren.adoc sections for Platform, Timer (+ TimerElapsed), SFTP
(+ FileFlag, SFTPEntry, SFTPStat, SFTPHandle, SFTPError, and the
shared async-op pattern used by Timer / SFTP / Input.nextEvent).
File doc gets the sha1 / md5 row added.
- wrentest.wren coverage:
Platform.name returns non-empty String.
File.sha1 / File.md5 of an empty file (exercises the
zero-length code path) and of "hello" (exercises xpmap).
Timer.trigger(ms=0) parks a fiber, the doterm sweep marks it
past-due, the drain resumes with a TimerElapsed.
Co-Authored-By: Claude Opus 4.7 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net