Skip to content

Wiki Log

Won-Kyu Park edited this page Aug 27, 2026 · 5 revisions

Wiki Log

Append-only ingest history for this wiki.

[2026-08-04] ingest | Initial system map from source

  • Source: simple_rcs/*.py, tools/*.py, README.md, pyproject.toml, tests/unit_tests/ (direct source reading, no external notes)
  • Tier: Current system
  • Created: Home, System Overview, Source Code Map, Storage Format, Diff Engines, CLI Tools, and their -en counterparts (12 pages total)
  • Updated: n/a (first pass)
  • Notes: Verified against current source, not just README prose — _format_block/calculate_block_hash read directly for Storage Format, public method list read directly for Source Code Map, CLI argument lists read directly from each tools/*.py for CLI Tools. README.md's comparison table and feature list were used as a cross-check, not copied verbatim.

[2026-08-04] ingest | Wiki-Backend-Design page relocated from main repo

  • Source: docs/wiki_backend_design.md in the main SimpleRCS repository (design notes + real SQLite benchmarks from an earlier session on using SimpleRCS as a wiki-page version-control backend)
  • Tier: Current analysis / design notes (storage-backend benchmarks are verified/reproducible; the "recommended direction" section is a proposal, not implemented)
  • Created: Wiki Backend Design (Korean only — no English counterpart yet)
  • Updated: Home, Home (English) link sections
  • Notes: Moved, not duplicated — the file no longer exists under docs/ in the main repo. Benchmark scripts referenced from this page live in the main repo's scripts/, not in this wiki.

[2026-08-27] correction | Re-measured 5-1 after a commit() return-value fix

  • Source: re-run of scripts/wiki_sqlite_bench.py in the main repo, after fixing SimpleRCS.commit() returning the whole stream instead of the version string on in-memory (BytesIO) instances
  • Tier: Current analysis (measured, reproducible)
  • Created: n/a
  • Updated: Wiki Backend Design §5-1 table and commentary, §5-2 per-commit timings
  • Notes: The old §5-1 numbers stored a full stream copy in the version column, which inflated design B. Design B is in fact flat as the theory predicts; the earlier "B gets slower than A" claim was a measurement artifact and is now retracted in place. The page's conclusion (a single BLOB column is good enough at wiki scale) is unchanged.

[2026-08-27] ingest | Write durability and crash recovery

  • Source: simple_rcs/simple_rcs.py commit() write path; RLIMIT_FSIZE interruption sweep run against a real commit; GNU RCS 5.10.1 source (src/rcsedit.c, src/b-fro.c, src/base.h) and its ci/co binaries; git source (lockfile.h, write-or-die.h, pack-write.c, object-file.c); Mercurial 7.2.4 source (transaction.py, revlog.py, revlogutils/deltas.py) plus a 401-commit repo built by running hg from that source tree
  • Tier: Current analysis (failure map and cross-system comparison are measured and reproducible) + plan/proposal (options A/B/C and the recommendation are not implemented)
  • Created: Write Durability
  • Updated: Home design-notes section
  • Notes: Every cross-system claim was read out of source or reproduced, not recalled. Two things that contradicted the initial framing and were corrected in place: RCS is a hybrid (trunk reverse-delta, branch forward-delta — verified by inspecting a branched ,v), and RCS's full rewrite is worse than our tail rewrite on the bit-flip axis even though it is better on the crash axis, because every commit passes the whole history through RAM and rename() then makes the corruption atomic and undetectable. The verify() KeyError found during this work is fixed separately in PR #17; the rest is unimplemented.

Clone this wiki locally