$ show cdervis/cppstat
This repository is a curated, structured dataset of C and C++ standard features (from C99 to C++29) with per-compiler support status across multiple toolchains (GCC, Clang, MSVC, Xcode, etc.). It includes YAML data files defining features, toolchain releases, and frontend metadata, along with a C++ validation tool that enforces schema compliance and semantic consistency (e.g., verifying that referenced tool versions exist and issue trackers are properly used). The dataset is designed to power a reference website (cppstat) and is accompanied by detailed Markdown explanations for each feature. While the primary artifact is the data itself, the validator and CI pipeline demonstrate strong data engineering practices, making the repository a reliable source for compiler feature support information.
The LLM identified 3 files worth highlighting for reuse:
A standalone C++23 validator that loads YAML data files, converts them to JSON, validates against JSON Schema (features.schema.yaml, frontend.schema.yaml), and performs additional semantic checks such as verifying that tool names and versions match declared releases, that issue identifiers are only used when a frontend defines an issue tracker, and that support entries have correct structure. It supports both single-file and repository-wide validation modes. This component is reusable for any YAML-based dataset that requires schema and cross-reference validation, and demonstrates a clean separation of schema definition, validation logic, and error reporting.
A JSON Schema (expressed in YAML) that defines the structure of feature entries: required fields (desc), optional fields (paper, lib, support, ftm, content, keywords), and constraints on support entries (either compact strings or objects with tool, status, note, issue). This schema is the authoritative contract for the dataset and can be reused as a template for defining similar structured data collections with validation.
A set of test fixtures (YAML files) designed to exercise the validator's handling of inline support entries (compact strings) and mixed support formats. The directory includes both valid and invalid cases, demonstrating a systematic approach to testing data validation logic. This pattern of organizing test data by scenario (valid/invalid) with descriptive directory names is reusable for any validation tool testing.