扩展库 / progress

progress

进度状态与文本渲染。

无自动输出、光标控制或全局结果缓冲;可用于终端、日志、Web 与服务端任务。

API

2026-10-29 发布阻断 M2:模块级真实进度对象仅查询状态,Windows/Linux 的 JIT 和独立构建成功,EXE 却打印 PASS 后报状态错误、退出 1;相同局部对象对照正常。默认门禁已接入有指纹/超时/失败现场的共享专项,旧局部路径绿灯不能替代完整生命周期验收。未改算法、ABI 或渲染字符串接管路径,不能通过提前销毁规避。

接口用途
create(total)创建进度对象
advance / set按步进或绝对量更新
setPrefix / setWidth控制单行文本外观;前缀拒绝控制字符、行分隔符、不可见格式符和双向控制符
current / total / percent / done / render查询和渲染

范例

import progress
progress.ProgressBar bar = progress.create(10)
bar.advance(5)
println(bar.render())
bar.set(3)
println(bar.current, bar.total, bar.percent)

不自动写终端;百分比和进度格数按精确整数阈值向下取整,即使总量接近 int64 上限也不提前进位。C 总量、步进和当前值使用与 XLang int 一致的 int64_t ABI。C 渲染结果是需用 xrtFree 释放的独立 char*;XLang render() 直接接管其所有权,不复制正文,但仍需扫描一次取得长度。C 操作成功后清除前一次错误,析构不擦除调用方诊断。边界与测试证据见包内 README。

双语范例覆盖绝对设置、状态读取和超量饱和。当前 Windows/Linux 默认门禁均通过严格 C、Linux ASan/UBSan、语言边界与分配故障、私有入口拒绝,以及公开 XLang/C 范例的独立 EXE。C 范例在 GCC、xl run、xl build 三条路径均与固定黄金输出一致。能力限任务计数与单行文本渲染,不含终端自动绘制;命令和边界见包内 README。