BBS:      TELESC.NET.BR
Assunto:  src/syncterm/Wren.adoc src/syncterm/scripts/syncterm.wren wrentest.wre
De:       Deuc¨
Data:     Tue, 28 Apr 2026 17:47:40 -0700
-----------------------------------------------------------
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) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]