Repository navigation
LayerKeySort Mini v1.0.0
LayerKeySort Mini v1.0.0
The first Stable release of LayerKeySort Mini, an independent MIT-licensed
C17 library for maintaining local mutable sequences with stable live occurrence
handles. This is a separate product from LayerKeySort Full v4.0.0. Full retains
its historical tags/releases and the repository-wide Latest designation.
Mini uses tag mini-v1.0.0; historical Full v1.0.0 is unrelated.
Functionality and contract
The complete public surface is exactly 18 functions and three public types:
creation/destruction, size, first/last, next/prev, item lookup, front/back/before/
after insertion, removal, four known-handle movement operations, and current
order comparison returning exactly -1, 0 or +1. Payloads may be NULL or duplicate
pointers; each insertion creates a distinct occurrence. Applications own payloads.
Live handles survive movement and unrelated removal; removing their occurrence
or destroying the order invalidates them. Detectable errors preserve the order,
and insertion allocation failures are atomic. Compatible 1.x releases preserve
the documented API contract; private layouts are not a public ABI promise.
Architecture and limitations
A non-intrusive doubly linked list gives O(1) known-handle movement, insertion,
removal and basic queries (excluding allocator cost), O(n) arbitrary comparison,
and O(n) traversal/destruction. There is one allocation per occurrence. Pointer
chasing and O(n) comparison are accepted costs, not claims of performance
superiority. The documented benchmark is a qualified historical measurement.
Mini does not implement Full's snapshots, persistence or advanced ordering
workflows. It also has no automatic sorting, indexed random access, distributed
ordering, built-in locking, stale/invalid-handle detection or third-party runtime
dependencies. Shared order access requires caller synchronization; invalid or
freed handles are outside the contract and may cause undefined behavior.
Verified release evidence
Source commit: 3f52798 (main).
Annotated tag: mini-v1.0.0.
| Product verification | Exact-commit run | Result |
|---|---|---|
| Mini: Ubuntu GCC13.3.0, Clang18.1.3, MSVC19.51.36260.0, AppleClang21.0.0.21000101, Clang ASan/UBSan | https://github.com/RXY712200/LayerKeySort/actions/runs/37767313001 | 5/5 success |
| Full: existing compiler/architecture matrix and extended sanitizers | https://github.com/RXY712200/LayerKeySort/actions/runs/37767313042 | 6/6 success |
The Mini suite includes public contract checks, private reciprocal-link/ownership
invariants, the independent four-seed array model (24,000 operations), adversarial
cases, 24 allocation failure/recovery cases, the 190-case legal-pointer error
matrix and the example. All four CTest tests passed in each required environment.
Actual Linux ASan/UBSan builds instrument the library and tests, including the
separately compiled internal implementation, with leak detection/halt-on-error.
Reproducible Mini-only package generation, Git-blob equality, independent extracted
CMake/CTest, direct/CMake consumers and optional Full/Mini coexistence passed.
Full's frozen API and existing distribution/release-tool verification passed.
Local Windows GCC 16.2.0 strict Debug/Release, independent extraction and static
analysis passed. Local sanitizer runtimes are unavailable; sanitizer evidence
comes from Linux CI. Tests cover bounded seeds/sizes and checked toolchains;
these results do not guarantee all ABIs, workloads or concurrent application use.
Download, verify and build
Use the two attached product assets:
- LayerKeySort-Mini-v1.0.0-source.zip: only Mini's complete source, public
header, CMake, tests, examples, documentation, benchmark/optional validation
fixtures and MIT License. No Full production files are included. - LayerKeySort-Mini-v1.0.0-SHA256SUMS.txt: SHA-256 checksum manifest.
GitHub's automatic Source code ZIP/tar.gz is the whole repository and is not
the Mini-only distribution. Download both attached assets into one directory:
sha256sum -c LayerKeySort-Mini-v1.0.0-SHA256SUMS.txt
unzip LayerKeySort-Mini-v1.0.0-source.zip
cd LayerKeySort-Mini-v1.0.0
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --config Debug
ctest --test-dir build -C Debug --output-on-failuremacOS: shasum -a 256 -c can verify the manifest. Windows PowerShell:
Get-FileHash -Algorithm SHA256 and Expand-Archive. Use CMake3.16+, a C17
compiler and a matching build tool; MinGW may need -G "MinGW Makefiles".
Integrate with the public header and C source directly, or link CMake target
layerkeysort_mini through add_subdirectory. Install/export packaging is not
required. Optional coexistence never becomes a standalone Mini dependency.
| Asset | Bytes | SHA-256 |
|---|---|---|
| LayerKeySort-Mini-v1.0.0-SHA256SUMS.txt | 102 | 722c2d9aa5bace6ce7d15cdb5f876c270d9a0c3105b882f8e1d041db9743141a |
| LayerKeySort-Mini-v1.0.0-source.zip | 46677 | 96b21a4d9177a98991e27712063dab7ce4d91a4adc0a76e420e8ab74263089c4 |
English README
| 简体中文
| Contract
中文摘要
Mini v1.0.0 是首个正式 Stable:独立 C17 库,18个公开函数,稳定存活句柄,
支持插入、删除、移动、遍历与比较,业务对象由调用者拥有。双向链表带来已知
句柄移动O(1)、任意顺序比较O(n)和逐节点分配成本。没有持久化、自动排序、
随机访问、自动加锁或失效句柄检测。下载附加的仅Mini源码ZIP及校验文件,
不要把GitHub全仓库Source code包当作Mini独立包。Full v4.0.0及其历史发布
保持不变,仓库Latest仍指向Full。源码提交、准确CI与附件摘要见上方记录。