Diagnostics
Every diagnostic has a stable code. The letter is its severity: E for errors, which stop a build, W for warnings and H for hints. The first two digits are its area: 01 lexing and layout, 02 parsing, 03 names and declarations, 04 shapes, 05 value domains and dtypes, 06 math in comments, 07 notebooks, 08 control flow and host scalars, 09 models, 10 devices, 11 mut and gradients, 12 modes and random operations, 13 data records and datasets, 14 logs and sinks, 15 optimizers, gradient transforms and schedules, 16 checkpoints, 17 export, 18 several devices, 19 Python calls and options on several devices, 20 fixed shapes and padding, 22 grouped sizes and shape aliases, 23 modules, overloaded functions and generic functions, 24 iterator chains: what they iterate and their independence (comprehensions before CTL-3), 25 the Python modules generated beside .ss files, 29 installed packages, 31 recording steps as CUDA graphs, 32 iterator chains: their syntax and stages, 33 exporting models for Hugging Face and serving engines. Codes are never reused.
Each section explains a code, shows a short program that produces it, and links to the rules it enforces. shapescript explain <code> prints a section in the terminal.