Programming Language

Nocter

A self-contained systems language built around simplicity, encapsulation, and foolproof design.

/development/unicode/README.md

Unicode Data Generation

This directory owns the reproducible transformation from the pinned Unicode Character Database to the generated Nocter source consumed by std/internal/unicode. It does not define public text semantics; those belong to spec/35-static-unicode-text.md.

manifest.json is the input authority. It records the Unicode version, canonical source URL, byte length, and SHA-256 digest for every tracked file under inputs/17.0.0/. The generator verifies all of those fields before parsing data and never accesses the network.

Regenerate and check the committed product from the repository root:

node development/unicode/generate.js --write
node development/unicode/generate.js --check
node development/unicode/test.js

Generation parses the complete pinned property and casing corpus, rejects unknown locale-independent casing conditions, rejects empty mappings that the lookup representation cannot encode, validates every scalar lookup and mapping bound, and writes development/std/internal/unicode/tables.nct atomically only when its exact bytes change. Normal compiler, standard-library, and package builds consume that committed source directly.

Updating Unicode is one reviewed change: replace all input files, update every manifest field, run the generator, and update the public specification to name the new observable Unicode version.