https://gitlab.synchro.net/main/sbbs/-/commit/3da58365d10c2a83c8c4bfb8
Added Files:
src/syncterm/wren_bind_conn.c wren_bind_conn.h wren_bind_fs.c wren_bind_fs.h wren_bind_hook.c wren_bind_hook.h wren_bind_internal.h wren_bind_screen.c wren_bind_screen.h wren_bind_sftp.c wren_bind_sftp.h
Modified Files:
src/syncterm/CMakeLists.txt GNUmakefile wren_bind.c
Log Message:
SyncTERM: split wren_bind.c into per-class-group modules
wren_bind.c grew past 5500 lines as Wren foreigns accumulated; split
it into per-class-group .c files so each class group can be read,
edited, and grep'd in isolation.
Layout after split:
wren_bind.c 1052 BBS + FlowControl, REPL, Clipboard, Timer,
Platform, BINDINGS table, lookup_class
wren_bind_screen.c 1678 Screen, Input, KeyEvent, MouseEvent, Cell,
Cells, Font, Hyperlinks, Color, Palette,
CustomCursor, VideoFlags
wren_bind_fs.c 1109 Directory, File, Host (with the live-foreign
registry that invalidates open Directory /
File foreigns on rename / remove)
wren_bind_sftp.c 920 SFTP, SFTPEntry, SFTPStat, SFTPHandle,
SFTPError + the zero-copy pending → deliver
handoff
wren_bind_hook.c 411 Console (log buffer), Hook (registration
entry points + RE1 setjmp catcher),
HookHandle (GC-safe entry wrapper)
wren_bind_conn.c 390 Conn, CTerm, ExtAttr, LastColumnFlag
Stays in wren_bind.c because they touch each other or the VM
internals: BBS owns FlowControl (BBS.flowControl returns a
FlowControl); REPL.compile_ uses wrenCompileSource which isn't
part of wren.h; Timer/Platform/Clipboard are too small to warrant
their own modules.
wren_bind_internal.h holds the shared SWF_* foreign-type tag enum,
the wren_foreign_header that every foreign struct starts with, and
the static inline slot_foreign_type / load_class_into_slot /
wren_throw helpers — pulled into every module so foreigns can
type-check each other across module boundaries.
The single BINDINGS[] table stays in wren_bind.c, walked linearly
by wren_bind_lookup_method (~250 entries — bsearch isn't worth the maintenance cost of keeping the table sorted).
Co-Authored-By: Claude Opus 4.7 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net