扩展库 / skiplist

skiplist

有序字符串键值表。

支持完整长度的键和值、原子覆盖、全量有序键和闭区间遍历。

2026-10-30 修复 C 范例读取 OOM 后漏数据却返回成功的问题,正常输出不变。新增 18 条二进制/中文/长值记录的完整故障扫描,七类查询覆盖 174 个失败点并各自达到成功,保留 RNG 与结果快照;跨函数三结果和 C/XLang 二进制快照范例均通过。十个实际原型、两平台九条普通独立程序及 Linux sanitizer 已验。默认门禁末项仍为顶层对象 AOT 退出错误,M2 未关闭;失败现场与原始退出码现完整保留,非整包发布签收。

API

接口用途
skiplist.create()创建有序键值表;分配失败时抛 MemoryError,系统随机源失败时保留 XRT 原错误
set / get / contains / remove管理键值
keys / range按键字节序遍历
count / clear总数与清空

范例

import skiplist
skiplist.SkipList table = skiplist.create()
table.set("a", "first")
table.set("b", "second")
println(table.range("a", "b").length)  // 2

区间两端均包含;每个实例由 XRT 系统随机源独立播种 XRT RNG 层级序列,不回退到可预测固定种子。创建、插入、覆盖、读取及结果遍历的分配故障已用 C/XLang 定向验证,失败的写入保持原值。2026-10-26 Windows/Linux 复验已通过 C、语言 JIT、核心及双语公开范例 AOT;Linux 还通过 ASan/UBSan。但顶层分配故障用例的独立 EXE 在两平台退出阶段均报 RuntimeError,默认包门禁保持红色,尚不签收发布级;不可把顶层对象移入 main 绕过。C 计数返回 int64_t,可在 LP64 平台直接与 XLang int 互通。C 所有权及复杂度见包内 README。