WEBSITE ALPHA · AI-assisted, source-reviewed documentation · Full-stack docs reconciled 2026-08-26
64x64base

Engine Specifications

The measurable shape of the x64base engine on one page: formats, ceilings, defaults, subsystems, and verification -- each figure with its source.

One page, the measurable facts. Figures are stated as of 2026-08-11 and carry their source; where a deeper reference page exists, this page gives the number and points rather than restating the mechanism. Nothing here is a roadmap item -- unbuilt things are marked chartered or absent, not implied.

Language, platform, license

ItemValue
Implementation languageC++20
Build systemsCMake presets; MSVC (Windows) and GCC/WSL (Linux) builds both exercised
Library structureseparate compiled libraries: xbase (tables/areas), xindex, memo, xexpr, dottalk_value, dottalk_tvui, under the dottalkpp host
Bundled carriersSQLite (compiled in; 3.50.x observed at runtime), LMDB (index backend)
LicenseGPL-3.0-only, declared at the repository root
Optional bindingspydottalk (pybind11) exposing a bounded native DbArea surface

Table formats (three flavors, one engine)

ItemValue
Classic x32version bytes 0x03 / 0x83 / 0xF5 (dBASE / Fox lineages). Support is scoped: tables, house memos, and house indexes -- see the scope note below
Visual FoxProversion bytes 0x30 / 0x31 / 0x32, incl. autoincrement and varchar headers; VFP currency supported
x64 dialectversion byte 0x64; extended 64-bit header (xbase_64)
Record addressing64-bit (recno64 / recCount64 authoritative; 32-bit accessors return -1 above INT32_MAX rather than clamping)
Header sequence slotautoq_next (64-bit next-autoincrement) present in the x64 header; hydrated at open; append-side wiring is a chartered lane, stated as such
Long namesup to 256-byte table/field names in x64 metadata (ceiling raised from 128 in 2026-07; default 128), with classic 10-byte fallback descriptors -- two name planes, both real
Field typesclassic types plus binary I/B/Y/T via a register-once codec registry; custom types register through the same path
Boundary proofX64_METRICS regression exercises structure above the legacy 16-bit record/header geometry ceilings

What classic x32 support means here, exactly

Classic 32-bit support is deliberately limited in scope, and the scope is worth stating precisely so nobody plans around a promise that was never made. What is supported is tables, memos, and indexes -- and specifically the house memos and house indexes we provide for v32:

In scope for x32Detail
Tablesclassic DBF table reading, writing, structure, cursor and record work
House memosthe memo carriers this project implements and maintains
House indexesthe INX and CNX containers this project implements and maintains, including realtime CNX order maintenance

That is the whole claim. This project is not a Clipper, dBASE, or FoxPro compatibility platform, does not aim to reproduce a legacy application runtime, and does not chase every historical index or memo variant produced by three decades of vendors. The x32 lane exists because teaching a database engine honestly means showing the classic generation beside the new one -- not because this is a migration target.

If you need broader classic coverage, other platforms exist and are better suited. Harbour, xHarbour, Alaska Xbase++, XSharp, and the commercial dBASE/DBF tool families all carry far deeper legacy compatibility, and the ecosystem comparison names them with links. Choosing one of those over this project for legacy work is the correct decision, and saying so costs this project nothing.

Deeper: DBF_64 Specification · x64 Capacity Math · DBF Flavors and Index Defaults

Memo subsystem

ItemValue
StoreDTX store, 64-bit object identifiers; canonical reference token is 16 hex characters
Semanticsappend-new: an update returns a NEW token; erase and reopen supported
Payload policypayload-agnostic -- the store never inspects contents; adversarially proven (seeded harness: 20,500 generations / 104,044 ops / embedded NUL and high bytes / 0 divergences across 4 seeds)
Demonstrated cargoplain text through whole binary databases (a 94 KB container carrying 13 tables + 11 indexes, verified byte-for-byte as a unit)
Known boundarythe memo store performs its own file I/O and is not yet covered by the RAM virtual filesystem -- measured, recorded, and chartered as the prerequisite for true RAM-resident memos

Deeper: FPT64 Memo Format

Index family

ItemValue
ContainersINX and CNX (classic generation, RUN1: 4-byte record numbers, table-authoritative ordering); CDX (x64 generation, RUN8: 8-byte)
Enginesnative maintenance and LMDB-backed keystore -- container format and maintenance engine are separate axes, chartered for full orthogonality
Capacity gateCNX refuses tables whose record count exceeds what 32-bit record numbers can address, with a corrective message naming CDX
Realtime maintenanceCNX maintains order on REPLACE with no rebuild (proven); native CDX upsert/erase remain stubs on the RAM path -- reported as staleness, never silently
Cross-flavor policyan explicit CNX attaches to an x64 table with an advisory (proven); the mirror direction is chartered
Transactional maintenanceSET INDEXTXN: buffered REPLACE/DELETE + COMMIT maintains the live index without rebuild (proven)

Deeper: CDX / LMDB Indexing · Indexing Rules

Runtime model

ItemValue
Work areas512 slots (a compatibility default with no architectural upper bound; per-slot cost measured at ~1.3 KB, allocated eagerly)
Relationsdeclared graph; traversal is refresh-driven; proven at 58 foreign-key relations over 43 open areas, walked by two independent consumers that agree by value
SELECTSQLSEL: WHERE, ORDER BY, LIMIT, COUNT(*), verified against an in-process SQLite oracle; no JOIN or GROUP BY yet, stated plainly
TransactionsWAL-backed COMMIT / ROLLBACK on buffered writes (proven at the record level)
Uniquenessa uniqueness registry with declaration (SET UNIQUE), validation, and index-maintaining repair
RAM virtual diskin-process, path-keyed byte files; hosts tables and native CDX; LMDB excluded by its own mmap contract; census-reporting; budget config with sizing recommendation and soft high-water
Lockingcross-process cooperative record/table locks, pid-stamped, with stale-owner recovery
Identitymember identities with roles/permissions; writes attributed to a real member

Workspaces

ItemValue
Snapshot formatsDTSHEMA 2 (default), DTSHEMA 3 (opt-in: measured flavor, own roots, cursor + selection state), MINIDB 1 (container: posture + table and index bytes)
Carriersfile or memo field -- one serializer, byte-identical text
Catalogself-creating WORKSPACES table: unique id, name, measured dimensions, size, recursion-guard fields, supersede lineage, author, timestamps, roots
Verificationevery memo save is read back through the token stored in the field and byte-compared
Hydrationdisk-to-RAM or memo-to-RAM (zero disk reads), timed on every run; ~70-95 ms for a 13-table / 92 KB set
Simultaneityone live workspace (load is a swap); co-residency blockers measured and registered, not discovered

Deeper: Workspaces

Verification surface

ItemValue
Curated regressions42 registered specs, 8 in the default suite; the registry stores each spec's doctrine, and the public list is generated from that same table
Oracles in useSQLite (row sets), shadow-model byte-compare (memo store), read-from-the-field byte-compare (workspace saves), census cross-check (RAM residency), derived-vs-declared reconciliation (governance)
Proof stylefield-value markers in transcripts; a build stamp on every proof; corrections recorded in place rather than erased

Deeper: Regression and Proof Testing · Proven Capabilities

Command and documentation surface

ItemValue
Registered commands245 canonical runtime registrations measured by the normalization gate; 239 central-shell keys projected into the website catalog; 212 promoted to SYSCMD. Each count names a different authority boundary.
Functions75 implemented function specs and 75 SYSFUNC rows; the website catalog projects 73 core FunctionDoc rows plus 2 self-registering extension examples.
Self-documentationHELP content, topics, and localization live in DBF tables the engine reads; manuals are generated from them; a cross-authority gate reconciles registry, catalog, help, and reflection on every gated commit
Localizationlocalized command surface proven for es/fr/de/it via the LANGUAGE regression

Figures on this page that can drift (counts, ceilings, versions) are maintained against the same gates that measure them; if a number here disagrees with a gate transcript, the transcript wins and this page is the one that gets corrected.