PyCForge 1.3.40 — Typed records across supplied modules
Review build, 2026-10-18. Based on the final 1.3.39 source archive.

CHANGES
Typed conversion now accepts direct imports of supported immutable record
classes from their defining supplied module, including aliases. Imported
functions can receive and return those exact record types. A caller may use an
inferred factory result without importing the class name. Record-only companion
modules are accepted when the complete bundle contains a top-level function.

Class identity stays tied to the defining module. Equal names or fields do not
make different classes interchangeable. C structs remain inline scalar values,
passed and returned by value without heap allocation. Separate C exports share
one layout per class and retain exact generated function and field names.

The new active profile is typed-record-modules-v1.3 / c-renderer-v1.3. Explicit
historical profiles preserve their earlier limits. The prior v1.2 profile's
record C output also matches 1.3.39 byte for byte on the retained boundary case.
Module source replay verifies aliases, target class identities, canonical IR and
ownership facts; C validation checks dependency paths for external record types.
Imported aliases have source mappings to their defining C struct. Cancellation,
nominal type checks and const member-write restrictions remain enforced.

VERIFICATION
- All 34 new cross-module tests pass. Coverage includes 625 Python-versus-C
  integer input pairs, combined output and separate C objects, import aliases
  and diamonds, factory-result inference, same-name nominal mismatches, mixed
  int/float/bool fields, independent C value copies, historical rejection,
  cancellation, deterministic exports, proof tampering and C dependency checks.
- Final selected regression suite: 590 tests and 1,842 subtests passed. It covers
  modules, records, numeric and keyword contracts, scopes, loops, file I/O,
  export, Help, distribution metadata and normal editor scrollbar behavior.
- Installed-wheel checks: 90 tests and 448 subtests passed, covering both record
  upgrades, HTML Help and normal scrollbar/folding behavior.
- All 74 HTML Python examples pass native comparisons: 25 Typed and 49 Runtime.
  Every Typed example also passes separate C compilation. Five API examples,
  four C callers, three module bundles and three README Python examples pass.
- The new models/geometry/main Help example runs as Python, combined generated
  C and separately compiled C. Each produces 40 for the documented arguments.
- All 28 Help pages open in Qt; 42 search checks pass. Monospace code and the
  new example's wide/narrow layouts were inspected. Five existing Runtime pages
  receive the missing current-version footer, without changing their examples.

PRESERVATION
The Runtime converter's 23 files and all 504 app icons match the final 1.3.39
archive byte for byte. Editor UI implementation and normal scrollbars are
unchanged. The README changes only its version and affected coverage statements.
All nine code blocks, the bug tracker and final contact text are unchanged.
Its only links are the exact approved banner and two 1.3.39 screenshot URLs.
PyPI Markdown rendering retains the 320-pixel banner, two screenshots and zero
navigation/mailto links. The old screenshots remain labeled 1.3.39.

DISTRIBUTION
Both release files pass twine check --strict. Public distribution verification
passes from the working source and a fresh source extraction. Metadata,
dependencies, licenses, package contents and exact README bytes are validated.
All 874 installed application files match the wheel and working source.
The archives contain 504 required application PNG icons and zero nonessential
images. The source manifest enforces screenshot/design-image exclusions.
Fresh-source checks pass 29 tests and 611 subtests; PyPI README rendering also
passes without any local screenshot files. Installed version checks cover
package metadata, startup, open/empty workspace titles, About and every Help
page footer. Final evidence is under evidence/record_modules_1_3_40/.

SCOPE AND PLATFORM
Linux, Python 3.12, PySide6/Qt offscreen and GCC. The complete repository suite
was not rerun. Native Windows UI and compiler ABI behavior were not tested.
No PyPI upload was made.

Records retain 1–64 int/float/bool fields and the exact field-copying initializer.
Only direct absolute named imports from supplied defining modules are added.
Relative/plain/star/local imports, re-exports and import cycles stay closed.
Record calls still require exact positional arguments. Inline constructors in
arguments/returns, record keyword calls, defaults, keyword-only/variadic
parameters, recursion, alias assignments, mutation, identity observations and
nested/string/container fields remain unsupported. Regenerate and rebuild the
whole C export after changes; no stable binary ABI is promised.

README SHA256
a54bf91aadb61d72cdfd37aa4aa27ae74255428d5c41a5e3951ef7a8cece713c
