GNU Chess 6.3.0 / Ensemble 1.x
Slim build comparison
Smaller storage, with matching results on the tested chess corpus.
54.3 KiBless fixed-resource + stack reservation
30.3%reduction in that file-declared reservation
48 KiBprocess stack retained unchanged
English baseline 6.3.0.4 against slim English 6.3.0.6. German 6.3.0.7 shares the engine and adds 16 bytes of localized shell.
File-declared reservations
{{MEMORY_SVG}}Paragraph-rounded GEOS resource sizes. These totals exclude kernel handles, heap metadata, object relocation slack and UI/library allocations. They are not measured total runtime RAM.Table units:
{{MEMORY_TABLE}}
The all-resources total includes nonfixed resources even when they can be swapped out. Both totals include the unchanged 49,152-byte stack.
Where the savings come from
Representations are narrowed only where every legal value fits. The engine retains 32-bit arithmetic, 64-bit hashes, 256 history entries and the same transposition, pawn and material cache capacities. Search input safely aliases the current game; compact sorter state preserves tested move order.
{{STACK_SVG}}Compiler-reserved local variables per search function. Saved registers, return addresses, arguments and helpers are excluded.The full stack remains 49,152 bytes. Smaller local frames and observed high-water marks do not certify a smaller complete-process stack.
The initialization arena uses 34,260 bytes of its 34,336-byte limit. Paragraph alignment and an explicit 64-byte guard leave 76 unused bytes. A native-code 80-ply test and repeated resets made no further allocations; arena-tail and stack-gap canaries passed.
Native search BUSY intervals
Three repeats per position and depth, driven through the real Ensemble 1.2 UI in DOSBox Staging 0.83. Points show medians; whiskers show the observed minimum and maximum.
{{TIMING_SVG}}Sampled BUSY duration on the emulator host clock. It includes initial repaint, native scheduling/yields and paging, but excludes input delays and the full final board repaint. The logarithmic axis makes shorter searches visible.{{TIMING_TABLE}}
Matched normal-core, 80,000-cycle emulator guests; VGA 640 x 480, 16 MiB, 1,500 handles. Read-only sampling at nominal 2 ms intervals observes BUSY transitions. Nominal sampling is not an error bound; observed sampling gaps reached 49.216 ms. Short searches are sensitive to sampling and host/emulator load. These are not physical-PC benchmarks or a universal speed guarantee.
Inspect all 48 timing runs
{{RAW_TIMING_TABLE}}
Native system memory observations
{{NATIVE_MEMORY_SVG}}Actual matched 16 MiB native guests. The fixed-byte measure is the observed system heap increase on launch; app-owned allocation includes all heap blocks attributed to the application, resident or swapped.{{NATIVE_MEMORY_TABLE}}
Actual unmodified Ensemble 1.2 Perf heap fixed-byte counters. The program's displayed absolute Fixed value additionally includes a constant kernel-size contribution; these raw heap counters are not that displayed total. After searches, the global Perf Memory meter showed 837.3 KiB (previous) and 845.7 KiB (slim). It counts allocated memory including swapped blocks, not physical resident RAM. Matched configuration does not mean identical background/cache allocation state. No whole-system Memory reduction is claimed. These observations are separate from resource reservations and do not establish minimum RAM.
Tests that matched
113 host positions, 452 searches and 3,385 identical result records with 19,081,983 repeated checks; paired ASan and UBSan runs pass. Representation testing compares 9,989 values exhaustively; sorter testing compares 12,303 cases and exact move order.
The actual 16-bit geodes are also compared on eight FENs at depths 1-4, plus special moves, terminal states, repetition, self-play, saved/restored state and moved artwork. The finite suite checks native code, segmented pointers and lock thunks; it is not an exhaustive proof for every chess position.
{{INSTRUCTIONS_SVG}}Sum of the same eight native-code searches per depth. Counted units are Unicorn 16-bit guest instruction dispatches, including REP iterations/final tests as reported by Unicorn, not ISA-retired instructions or CPU cycles. Production application/runtime/thunks and synthetic RETF kernel stubs are included; real GEOS kernel, paging and graphics work are excluded. Host hooks insert no guest instructions.{{STACK_PEAK_SVG}}Highest observed stack use in the 65-record finite native-code suite: 38,920 to 23,380 bytes. These are observations, not full-process bounds. The 49,152-byte reservation stays unchanged.The 32 paired searches total 114,177,759 to 107,883,512 guest dispatches (5.51% fewer), under the stated boundary model. This is controlled guest work, not measured hardware speed.
Native runtime test details
{{NATIVE_DETAILS}}
Release identity and limits
{{HASHES}}
Tests use the supplied English Ensemble 1.2 installation under emulation. The German build targets that runtime too; no German system runtime was supplied. Native case statuses are retained in the accompanying report data. Physical hardware and other 1.x releases remain untested. Search is synchronous and remains bounded to requested depths 1-4; unrestricted desktop GNU Chess strength is not claimed.
The package contains source, rebuild instructions, exact-binary quick-rebuild checks, PNG/SVG exports and per-case raw CSV/JSON/JSONL evidence. This HTML works offline and loads no external resources.
{{JSON_DOWNLOAD}}