PyCForge 1.1.2 — conversion coverage review
==========================================

Base: the uploaded PyCForge 1.1.1 source, with its existing desktop workspace.
C-to-assembly remains in the separate PlutoAI project.
This archive has not been published to PyPI.

Implemented
-----------
The opt-in runtime-values backend emits self-contained C11 with owned UTF-8
strings, shared mutable lists and basic class instances, heterogeneous lists
and tuples, runtime annotation checks, nested filtered list comprehensions,
and lambdas with escaping, late-bound captured cells. Functions can pass and
return the same mutable object without making an independent copy.

The existing typed converter remains the default. The preview supports one
document and is explicitly identified in its menu, CLI option and diagnostic.
It does not execute the input Python or compile/run C inside PyCForge.

The embedded execution-only Ting runtime is upgraded to 0.10.0a21. NumPy
2.3.x and Numba 0.63.x are required. The existing splash performs genuine
numeric kernel warmup on a worker and keeps processing GUI events. All six
existing authenticated rulepacks are retained unchanged.

Try the review package on Windows
--------------------------------
Use 64-bit CPython 3.11, 3.12 or 3.13. The commands below use 3.12.
Extract the review ZIP into a new folder. Open PowerShell in that folder:

  py -3.12 -m venv .venv
  .\.venv\Scripts\python.exe -m pip install --upgrade pip
  .\.venv\Scripts\python.exe -m pip install .\pycforge-1.1.2-py3-none-any.whl
  .\.venv\Scripts\python.exe .\runtime_preview_smoke.py .\coverage_demo.py
  .\.venv\Scripts\python.exe -m pycforge.ide

Normal dependency installation requires internet access. No compiler is needed
to open the IDE or emit C. First numerical warmup can take longer than later
starts. The smoke check writes smoke-output/generated.c and report.json.
It does not execute coverage_demo.py or the generated C.

On Linux/macOS, use python3 -m venv .venv, .venv/bin/python, and the same wheel
and smoke script. Platform support of dependency wheels still applies.

Desktop checks
--------------
1. During startup, verify the Ting stage reports NumPy/Numba warmup. Move the
   splash while it works. Start a second time and check it opens normally.
2. Cancel during warmup. The main workspace must not open afterward.
3. Open coverage_demo.py, then select:
       Transpile > Transpile Runtime Values (Preview)
   Generated C should appear with warning PYC4699.
4. Change the strings or the closure's amount in the example and convert again.
   Save C, close/reopen the workspace, and confirm editing and saving still work.
5. Inspect Ting feedback: all six agents should be represented. Missing C-IR
   proof and external execution evidence should remain visible for the preview.
6. Switch to a simple default-profile example:
       def add(a: int, b: int) -> int:
           return a + b
   Use the ordinary Transpile action. It must still use the established backend.
7. Close the workspace while a linked file is being changed externally. There
   should be no late callback error from the closed window.

For a separate native C check
---------------------------
The generated coverage demo includes an optional entry point when an external
C11 toolchain defines PYCF_RUNTIME_MAIN. With a compatible 64-bit GCC:

  gcc -std=c11 -DPYCF_RUNTIME_MAIN smoke-output/generated.c -o demo -lm
  ./demo

Expected stdout (UTF-8):
  PyCForge: hé / 🙂 1 True
  4 6 8
  🙂 / éh :egroFCyP

On Windows a native tester must choose and record their own C11 toolchain;
these Linux harness results do not establish native Windows compiler support.

Known preview limits
--------------------
Annotations check values at parameter, return, declaration and field boundaries.
They do not permanently constrain a shared list through every alias. Whole-
program linked static type inference and mutation-aware specialization remain
future work.

The runtime uses an explicit arena, checked int64 arithmetic, finite binary64,
and workload limits. Intermediate allocations remain until the context is
destroyed. It is not intended for indefinitely running workloads.

Exact ForgeLens mapping and the established typed C-IR proof guarantees do not
yet apply. No imports, inheritance, exception handling, dicts/sets, generators,
defaults/keyword calls, arbitrary libraries, or full string API. See
runtime_values_1_1_2.md for the supported forms, ABI, budgets and failure rules.

Validation evidence
-------------------
See CONVERSION_AUDIT_1_1_2.txt for the eight audit fixes and current results.

The evidence folder records the tests actually run on Linux, native differential
execution, AddressSanitizer/UndefinedBehaviorSanitizer and allocator-failure
cleanup checks. LeakSanitizer cannot run in the hosted tracing environment;
allocation-balance injection is separate evidence, not a LeakSanitizer pass.
Native Windows installation and desktop execution remain unverified.

Send the smoke report, OS/Python version, reproduction source, selected action,
generated C, exact diagnostics and any independent compiler output for failures.
The source distribution includes the tests, contract and implementation.
