Repository navigation
Fix P3 compiler, runtime, checker, and tooling backlog - #3487
Conversation
#3477) Share the runtime-parent own-element operation between direct and lexical super, preserve the bound receiver cell through field initializer arrows, and recognize arrows discovered before their class template. Repeated direct/lexical super calls consult the same binding after parent effects. The ordinary-field controls pass in both modes with saved IL verification; broader private/accessor/parameter-property callback transport remains in #3477.
…p (Refs #3048) Retain the inherited virtual slot for the same exact guest key and allocate a distinct CLR spelling when another guest key would alias it. Dictionary-backed generic fields now retain guest dispatch instead of selecting an unrelated derived CLR getter. Saved-IL verification passes all 56 adjacent mapping/storage controls, including cross-owner writes, generic ancestry, same-key overrides, and ordinary CLR ABI checks.
…xical super (Fixes #3477) Direct and lexical super share one class-owned operation for ordinary/computed fields, private brands, auto-accessors, and current canonical constructor parameter cells. Parent construction carries new.target before parent effects and mixed repeated calls consult the same receiver binding. Verify 54 combined saved-IL rows, 282 adjacent capture/default-parameter regressions, independent TypeScript/Node special-element oracles, and named/implicit parent controls. Existing generic-owner and intrinsic construction boundaries remain separately tracked in #3484 and #3485; unsupported private accessor parsing is #3483. Native admission remains unchanged.
…trix (Refs #3099) The complete unchanged source matches TypeScript 6.0.3 and Node v22.23.2, ending in 2 true after the #3099 fix. Retain every bound Map, Reflect Set/Array, Promise executor, and native admission assertion. Both matrix rows and both alternate-Promise controls pass saved-IL verification in isolated outputs.
|
Important Review skippedToo many files! This PR contains 214 files, which is 114 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.
|
Keep the benchmark's exact allocations, shapes, key order, overwrite operations, checksums and timing budgets while consuming the expected TS2783 diagnostic. Both pinned TypeScript and SharpTS reject an unused expectation if that overwrite disappears. Refs #3098
Accept colon-separated reasons on ts-expect-error and ts-ignore while preserving file-level pragma boundaries, unused TS2578 checks, and next-line diagnostic scope. Ten pinned TypeScript 6.0.3 oracle cases, four actual CLI controls, and 30 directive/JSX/embedding/CLI regressions pass in isolated outputs.
…3297) Keep all three-receipt, local-flow, same-token metadata, foreign-output, body, offset, and forgery controls on an explicit Promise.resolve source fixture. The unchanged Original source separately verifies saved IL and output, zero Task producers, omitted Promise runtime, the exact unrelated ClassDefinition prototype fallback, and the finite typed-buffer proof in all reference/symbol modes. All 62 focused and neighboring native/Promise-size controls pass; production admission is unchanged.
…#3052) Reconcile raw managed Both, ThrowCall and source-class calls with the explicit capability fix while preserving native rejection, legacy MethodCallable wrapper reflection, exception and ambiguity controls, exact Func delegates, and all 24 callable carriers. An explicit CallOnly wrapper retains null-context and List argument-conversion assertions; call counters prove raw Call never executes. All 53 focused and neighboring capability controls pass with saved-IL verification, and pinned TypeScript 6.0.3/Node oracles confirm the source behavior. Production code is unchanged.
Reject unrecognizable PKCS#12 file inputs at the public signing entry point after the completed PE exists. Keep thumbprint and actual tool-kind rules, valid certificate signing, private transaction checks, password protection, and all deadlines unchanged. Add six public-entry controls; retain every existing signer and CLI assertion. The earlier Windows CI signing timeout's root cause remains unestablished. Fixes #3489
Run the same discovered standalone inventory across eight CI and release shards instead of six after Windows shard 4 reached the unchanged 35-minute deadline with 704 passing rows and no assertion failure. Keep the LPT planner, category exclusions, whole-method ownership, portable filter bound, 35-minute test step, 40-minute job and hang guards unchanged. Exact discovery proof preserves all 690 methods and 4,360 entries under the same inventory digest, with 545 entries per shard. Workflow policy, planner negative controls, eight capacity/deadline mutation controls and actionlint pass; actual completion remains gated on fresh CI.
…3490) Copy the raw trace and structured mode, scenario, entry point, original failure and observed child stdout/stderr/timeline before temporary-stage cleanup. Keep original exceptions, every assertion and timeout, successful cleanup, and intentional zero-timeout controls unchanged. Main CI and macOS desktop always upload only this diagnostic directory. A real smoke-host success/forced-failure pair proves byte-identical retention versus no pass artifacts and original exception propagation; a missing-trace control excludes unrelated staged files. All 14 SharpPaint/retention rows pass, including existing editing/themes/model/timeout cases; workflow policy, four upload mutation negatives and actionlint pass.
Fix the P3 compiler, interpreter, checker, native admission, and tooling defects in the original issue inventory, with individual issue commits and focused regressions. Also repair ten P3 defects discovered during verification. Previously corrected main-branch cases receive fresh verification rather than duplicate implementation changes.
The changes preserve the existing emitted-size limit, test coverage, conformance gates, exclusions, retry policies, and CI deadlines. Regression expectations that explicitly preserved corrected defects are updated against independent Node oracles; lifecycle metadata controls retain native admission refusals and compact/class-free omission checks. Process-heavy core tests and the independent custom-native-host acceptance now run in complementary required jobs; partition proofs verify exact coverage without overlap or loss. Dense numeric Array updates use a measured, guarded fast path with semantic fallbacks.
The standalone capacity followup uses eight shards per platform in CI and release workflows. All 690 methods and 4,360 discovered rows retain the same inventory digest, with 545 rows per shard and no overlap or omissions. Final CI verifies all 8,720 executions across both platforms; the slowest test step is 29.85 minutes and the slowest job is 33.78 minutes. The existing 35-minute test / 40-minute job limits and 24,000-character filter bound are unchanged; no empirical timing weights or retries are introduced.
Validation recorded so far:
Final verification for
f9d85818835fd5b341749db1e2a9d208e984f1b2is complete: CI, Native generated programs, and Desktop GUI all succeed, with 41 successful check contexts and three expected skips. The Windows editor job passed its single controlled rerun; its original unexplained timeout, bounded replay evidence, and artifact/runtime limitations remain tracked in #3494. No source or assertion, deadline, retry-policy, or coverage change was made for that rerun.CI followups preserve the benchmark runtime byte-for-byte through a checked expected diagnostic, retain the exact declared lifecycle method handle for NativeAOT, accept TypeScript colon descriptions on line directives, and make Task proof fixtures explicitly select their real Promise producers while retaining every adversarial check and separate zero-producer coverage. Final integration also supplies the scoped undefined sentinel in early Map/Set fixture wiring, preserves explicit callable bridges while rejecting raw public-Call objects, and rejects malformed PFX content before external signing-tool discovery without importing keys or changing transaction/time limits. The original signing CI stall was not reproduced; the exact malformed-input path is now deterministically local. The existing class-free emitted assembly ceiling remains 291,840 bytes.
SharpPaint parameter changes now invalidate preview readiness, and results from superseded parameters, document revisions, layers, or closed dialogs cannot replace the current preview. The reducer regression fails before the fix and passes interpreted and compiled with verified IL; both complete editing workflows pass with the existing 180 ms debounce, 15-second readiness guard, and three-minute process limit. Unexpected SharpPaint failures retain their trace, original exception, output, and process timeline before temporary cleanup, and CI uploads that evidence even when tests fail.
New independently reproduced issues are tracked in #3473, #3476, #3478, #3479, #3480, #3482, #3483, #3484, and #3485. The separate macOS first-preview timeout is tracked in #3492; its cause is unproven, and the stale-result correction is not claimed to explain it. Recurring macOS NuGet routing failures are tracked in #3493. The unexplained Windows interop-hover timeout is tracked in #3494; three same-checkout packaged-artifact replays passed the original 20-second guard, but the raw failing DLL was not retained and no cause or source fix is claimed. The controlled reruns pass; original failures remain recorded separately and these P2 issues stay open. No dependency lockfile or audit-fix upgrade is included.
Refs #1400, #1405: repository implementation and package preparation are complete, but both issues remain open pending their actual visual checklist in development/installed-VSIX profiles and first public NuGet onboarding. Public DebugAdapter package lookup still returns HTTP 404. No package was published and no visual criterion is being inferred from API assertions.
For #3374, the nested method argument regression has unchanged coverage. No semantic root cause was established; the original Linux main run passed the full suite and all nine adjacent rows, and the final-head Linux CI now passes the complete core suite. The CI partition change in #3378 retains exact coverage and the existing deadlines.
Automatic review: CodeRabbit skipped review because the PR exceeds its 100-file limit and review capacity is unavailable. Its generated notice was reviewed; it produced no inline findings. Independent compiler, interpreter, checker, native-admission, and workflow reviews found and resolved the documented followups.
Issue closure references verified against the original inventory and new P3 findings:
Fixes #3031
Fixes #3033
Fixes #3034
Fixes #3035
Fixes #3036
Fixes #3037
Fixes #3038
Fixes #3039
Fixes #3041
Fixes #3043
Fixes #3044
Fixes #3047
Fixes #3048
Fixes #3049
Fixes #3050
Fixes #3051
Fixes #3052
Fixes #3053
Fixes #3054
Fixes #3055
Fixes #3056
Fixes #3057
Fixes #3058
Fixes #3059
Fixes #3060
Fixes #3061
Fixes #3062
Fixes #3063
Fixes #3064
Fixes #3065
Fixes #3066
Fixes #3067
Fixes #3068
Fixes #3069
Fixes #3070
Fixes #3071
Fixes #3072
Fixes #3073
Fixes #3074
Fixes #3075
Fixes #3076
Fixes #3077
Fixes #3078
Fixes #3079
Fixes #3080
Fixes #3081
Fixes #3084
Fixes #3085
Fixes #3086
Fixes #3089
Fixes #3093
Fixes #3094
Fixes #3098
Fixes #3099
Fixes #3106
Fixes #3111
Fixes #3112
Fixes #3113
Fixes #3114
Fixes #3121
Fixes #3124
Fixes #3159
Fixes #3297
Fixes #3370
Fixes #3371
Fixes #3372
Fixes #3374
Fixes #3378
Fixes #3379
Fixes #3391
Fixes #3393
Fixes #3399
Fixes #3412
Fixes #3425
Fixes #3434
Fixes #3472
Fixes #3474
Fixes #3475
Fixes #3477
Fixes #3481
Fixes #3486
Fixes #3488
Fixes #3489
Fixes #3490
Fixes #3491