← board

RTL gaps — string/number conversion + a bit-set type (surfaced by the demos)

Motivation

Two new platonic demo apps were written to exercise the surface, deliberately without workarounds:

They compile against an idiomatic RTL surface that does not yet exist. Rather than hand-roll the conversions in each app, capture the gap here.

Gap 1 — number/string conversion (a SysUtils/StrUtils slice)

Missing, both demos and essentially every real app want them:

FPC-compatible signatures so existing/Lazarus code is unaffected. Deterministic, integer-only core → byte-identical across all targets (good cross-target oracle).

Gap 2 — a bit-set / bit-array type (TBitArray-ish)

The sieve packs bits by hand (w := n div 32; bits[w] := bits[w] or (1 shl b)). That is fine as a demo of raw shl/and/or codegen, but the reusable type is wanted:

Naming/shape TBD (TBitArray vs a bitset unit) — decide when picked up. Watch the set of 1..9-from-runtime-values gap noted in feature-demo-sudoku; a proper bit-set type may be the pragmatic answer to that lane too.

Constraints

Acceptance

Log