PyCForge 1.3.41 — Typed record constructor expressions
Review build, 2026-10-18. Based on the saved 1.3.40 source archive.

CONVERSION COVERAGE
Typed functions can return a record constructor directly or pass it as a
positional argument: return Point(x, y), consume(Point(x, y)), and nested
calls such as consume(keep(Point(x, y))). These forms also work with imported
record aliases, branch returns and supported loop bodies. Existing fresh-local
construction, factory-result locals and record parameter forwarding remain.

Each record retains its declaring class identity and exact int/float/bool field
types. Matching field layouts do not unify different classes. C arguments are
staged once in source order, followed by one automatic const struct. Calls and
returns copy the value; no heap allocation or pointer to expired local storage
is introduced. Branch and loop temporaries stay in their source control region.

The active profile is typed-record-expressions-v1.4 / c-renderer-v1.4, with
nominal-immutable-constructor-expressions-v3 source policy. Serialized constructor
evidence records the exact class, owner, call and ordered arguments. Replay
rejects missing, redirected or reordered evidence and omitted plan obligations.
Older explicit profiles retain their earlier limits. A representative v1.3
cross-module program produces exactly the same C as it did in package 1.3.40.

VERIFICATION
- 33 new constructor tests cover 625 Python-versus-C integer input pairs,
  combined C and separate objects, imported aliases, mixed scalar fields,
  nested calls, branches, loops, 64-field records, cancellation, nominal/type
  mismatches, unsupported neighbors, proof tampering and deterministic exports.
- Link-time instrumentation of separate C objects observes scalar argument
  calls exactly once in left-to-right order and only in the selected branch.
- The broad selected regression run passed 617 tests and 1,537 subtests. Its
  one failure identified a duplicate HTML anchor in the new example; that
  anchor was corrected. Follow-up passed 76 tests and 618 subtests. The final
  constructor/Help run passed 47 tests and 451 subtests, including the added
  loop and short-circuit-boundary cases. No known failure remains in these runs.
- Installed-wheel checks passed 122 tests and 451 subtests: constructor
  expressions, cross-module records, record parameters/returns, HTML Help and
  normal editor scrollbar/folding behavior. All 875 installed application
  files match the final wheel and working source.
- Installed version checks pass for package metadata, startup, empty/open
  workspace titles, About and every Help page footer.

HTML DOCUMENTATION
Help includes a complete point-reflection and squared-distance example, an
updated three-module geometry example using an imported constructor alias,
and a separate C caller using a factory with a direct constructor return.
Explanations cover evaluation order, nominal types, value copies, practical
call forms and remaining limits. No development-cycle status was added.

All 75 documented Python examples pass native comparisons: 26 Typed and 49
Runtime. Every Typed example also passes separate C compilation. Five API
examples, four C callers, three multi-module examples and the three unchanged
README Python examples pass. All 28 Help pages open in Qt; 43 search checks
pass. Monospace code, links, anchors and wide/narrow example layouts were checked.

README AND PRESERVATION
README.md is byte-for-byte unchanged from 1.3.40, including its 1.3.40 heading,
all prose, code blocks, conversion table, bug tracker, final contact information,
and the three approved banner/screenshot links. The package and UI version is
1.3.41. Distribution verification pins the frozen README bytes while conversion
upgrades continue. PyPI rendering retains the 320-pixel banner, two screenshots,
and no extra navigation/mailto links.

The Runtime converter's 23 files, all 504 app icons and editor UI implementation
match 1.3.40. Only HTML Help resources change in the IDE tree. No screenshots or
design images were placed in the source project. Archive exclusions continue
to permit only required application icons.

DISTRIBUTION
Both archives pass twine check --strict and public distribution verification.
The same verifier also passes from a fresh source extraction. Metadata,
dependencies, licenses, installed application bytes and the frozen README are
checked. Fresh-source checks pass 29 tests and 612 subtests, with successful
PyPI README rendering. Each archive contains 504 required application PNG icons
and zero screenshots or other nonessential images. Verification evidence is in
evidence/record_expressions_1_3_41/; visual-review images are not packaged.

LIMITS AND PLATFORM
Record constructors require exact positional arity and scalar field types.
Keyword/default/variadic record calls, recursion, nested or heap fields,
mutation, alias assignment, identity tests, records in containers and direct
field reads on constructor/factory expressions remain unsupported. Calls
containing record constructors within and/or expressions reject; use explicit
if branches. The supported record shape remains 1–64 scalar fields and an exact
field-copying initializer. Existing scalar arithmetic bounds still apply.

Verified on Linux with Python 3.12, GCC and PySide6/Qt offscreen. The complete
repository suite was not rerun. Native Windows rendering and compiler ABI
behavior were not tested. No PyPI upload was made.

README SHA256
a54bf91aadb61d72cdfd37aa4aa27ae74255428d5c41a5e3951ef7a8cece713c
