PyCForge 1.3.42 — Structured immutable Typed records
Review build, 2026-10-18. Based on the saved 1.3.41 source archive.

CONVERSION COVERAGE
Typed conversion now supports direct field reads on constructors and factory
results, including nested paths and fixed record collection elements. Exact
nominal records may contain earlier declared immutable records. Layouts remain
inline and acyclic, with 1–64 fields per class, at most eight record levels,
and at most 256 expanded scalar leaves per record.

Fixed local record lists and tuples contain 1–64 values of one exact class,
with at most 4096 scalar leaves across the array. Supported operations include
in-range literal indexing (including negative literals), fresh record locals
from elements, positional element forwarding, and ordered for loops with
break/continue/else. Loop record targets are scoped to their own loop body.

Constructors, scalar argument calls, factory receivers and collection elements
are evaluated once in source order. Nested C structs and automatic read-only
arrays are copied by value, without heap allocation or escaping local pointers.
The C validator preserves const through nested record and array receivers.
Separate C exports retain dependency-ordered shared declarations and exact
nominal field types in the ABI manifest.

The new profile is typed-record-structures-v1.5 / c-renderer-v1.5. Source policy
is nominal-immutable-structures-v4; C IR carries the additive optional policy
immutable-record-structures-v1. Source replay authenticates nested field types,
receiver expressions, collection identities/capacities and container access/
iteration facts. Required lowering evidence and obligations are checked.
Explicit older profiles retain their earlier feature boundaries. A representative
v1.4 cross-module constructor program produces byte-identical C to 1.3.41.

AUDIT CORRECTIONS
- Reproduced an earlier private-field mismatch: Python raises AttributeError
  for external item.__value, but 1.3.41 could produce a successful C field read.
  Typed record fields beginning with __ now reject before lowering, including
  explicit historical profiles. This is a correctness fix, not new private-field
  support.
- Nested record annotations reject imports placed after the class definition,
  matching Python's definition-time name availability.
- Async-only input now reports the specific ineligible synchronous-function
  diagnostic instead of a misleading absence-of-function message.
- Current release/contract audit expectations were synchronized with v1.5.
  Historical profile and generated-C snapshots remain checked independently.
  An older UI test was corrected to expect the normal Python editor scrollbar
  already introduced in 1.3.38; the editor implementation was not changed.

VERIFICATION
- 58 new tests exercise the three features, exact types, loop regions, 64-element
  indexing boundaries, maximum depth/leaf counts, mixed scalar fields, imported
  aliases, invalid neighbors, cancellation through the existing record tests,
  proof alteration, C IR const propagation and deterministic exports.
- 625 input pairs compare Python with combined C at -O0 and -O2 and with separate
  C objects. Link-time instrumentation observes nested argument calls once and
  in source order. Maximum expanded collection layouts also compile and run.
- Final installed-wheel checks pass 204 tests and 464 subtests, covering the
  record upgrades from 1.3.39 through 1.3.42, module exports, HTML Help and editor
  scrollbar/folding behavior. All 878 installed application files match the
  final wheel and source. Displayed metadata, startup/workspace/About versions
  and every Help footer agree on 1.3.42.
- A focused audit follow-up passes 116 tests and 527 subtests. Cumulative container,
  module, C IR, numeric, conditional, call, scope and loop checks pass 152 tests
  and 248 subtests. Final record/feature-matrix/version checks pass 62 tests and
  69 subtests. Counts overlap; they are not a count of distinct tests.
- An earlier-upgrade audit passes 105 tests and 71 subtests before encountering
  the obsolete scrollbar assertion. Its follow-up passes 36 tests and 32
  subtests, including that corrected assertion. Thirty-one platform/environment
  checks were skipped in the earlier run.
- Release-contract follow-up passes 54 tests and 30 subtests, with five skipped
  checks whose required historical/environment conditions are unavailable.
- An exploratory whole-repository run was stopped before completion. This report
  does not claim a full-repository pass. Final acceptance uses the targeted runs
  listed here and their recorded follow-ups.

HTML DOCUMENTATION
A dedicated Structured records page contains complete translation, particle
advance and kinetic-energy examples, exact limits and C value-copy behavior.
Existing coverage, record, module-export, import and safety-limit pages were
reviewed and synchronized. No development-cycle status was added to Help.

All 78 documented Python examples pass native comparison: 29 Typed and 49
Runtime. Every Typed example also compiles as separate C objects. Five API
examples, four C callers, three module examples and three unchanged README
examples pass. All 29 Help pages load in Qt, and 46 search checks pass. Links,
anchors, monospace code, and wide/narrow page presentation were reviewed.

PRESERVATION AND DISTRIBUTION
README.md remains byte-for-byte frozen at the approved 1.3.40 content, including
its heading, all prose and code, bug tracker, contact information and the exact
three banner/screenshot URLs. The screenshots remain labeled 1.3.39. PyPI
rendering retains the 320-pixel banner and exactly two screenshots.

The Runtime backend's 23 files, all 127 IDE Python files and all 504 required
icons match 1.3.41. No editor, scrollbar or theme changes were introduced.
No screenshots, banners or other design images were added to the source.
Both archives pass twine check --strict and the public distribution verifier.
Fresh-source tests pass 29 tests and 625 subtests, including Help, metadata and
archive policy; README rendering also passes from the fresh source tree.
Each archive contains exactly 504 required app icons and no nonessential images.
Verification evidence is under evidence/record_structures_1_3_42/.

LIMITS AND PLATFORM
Record mutation, identity/equality/truth observations, direct name aliases,
recursive layouts, forward/quoted annotations, dynamic indices, slices,
collection escape/mutation, nested collections and record dictionaries/sets
remain unsupported. Constructors and record-boundary calls use exact positional
arguments. Record calls in and/or expressions and chained comparisons require
explicit branches or scalar locals. Scalar arithmetic bounds remain unchanged.
Large values/batches consume automatic storage and may increase copying cost.

Verification uses Linux, Python 3.12, GCC and Qt offscreen. Native Windows/macOS
compiler and UI behavior were not tested. No PyPI upload, engine rename or
MISRA compliance claim was made.

README SHA256
a54bf91aadb61d72cdfd37aa4aa27ae74255428d5c41a5e3951ef7a8cece713c
