feat: complete bridge-free native corpus runtime - #18
Draft
garaekz wants to merge 19 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
Completes the bridge-free native corpus pass before any C1 product decision.
Supported Pest- and PHPUnit-shaped sources now lower into Drove-owned frontends, Scope IR, lifecycle, Laravel contexts, and the Drover scheduler without silently falling back to Pest, PHPUnit, or Testbench execution. Compatibility bridges remain explicit migration aids; unsupported behavior fails closed.
Per-test isolation is unchanged from C1 through C30: one executor fork per test, no batching, and no inline/shared C1 mode.
At
304735f1, Drover now allocates its 256 KiB fatal-error reserve once before forking so children inherit it copy-on-write. The failure path and one-fork-per-test topology are unchanged.Exact proof
Hosted corpus evidence revision:
a6dac07d77ebdbe38020c43ebdb48878e7c003ff6b2cd358403a4d679c1450739c145073e9348b2ee9348b2eFilament ran last. Every parallel cohort preserved its semantic hash across C1-C30, every native case used one executor fork, the prepared Filament database remained byte-identical, and cleanup completed without residual snapshots or transient SQLite files.
The committed inventory covers 4 corpora, 249 source files, 1,992 cases, and 4,240 assertions (
0b42899557f64a4ea51a5fabba16e5b746dcd06fd6f52d71e0ab3e5aa8a3c29a).e552b3ea690663de49d81d6a16af191034795b471a5223a95b0f2ea73e446a6aff0d57789dce0272fe5e4bd4db07a035ae7fccbca184377a8f513a9bab5e16db4df932007dcd9cff7f5ff9c2206227d530d06cb6ea0c08fac945d8578f77cfc06e919872ea67244c504769080de6d1545d96a8e84233c12a8427f7da23e7065fN6 benchmark
The controlled N6 measurements below remain historical evidence bound to
610899ebe186121a8d603d49abc9114afe43f93b. The currenta6dac07dhead intentionally changes the benchmarked scheduler allocation path, so the table is not mislabeled as current. The isolated local A/B below measures that one change; a new sealed N6 run is still required before replacing the historical table.N6 contains 160/160 valid observations: 32 groups x 5 randomized repetitions, 26 baseline/native comparisons, seed 7331, C1/C2/C4/C8/C16/C30, 30 CPU cores, and a 16 GiB limit. Baselines run in separate pinned upstream environments. Times below are end-to-end medians in milliseconds.
C8 is the general knee: it is best for Livewire and Filament, within 7.3% of Pest's C30 minimum, and uses materially less memory than higher widths. InvoiceShelf is the explicit exception that continues scaling to C30.
There is no justified C1 preparation bypass. Pest preparation is 310.9 ms of 3,030.6 ms and Livewire-full preparation is 142.3 ms of 6,283.2 ms; removing it would leave both substantially slower than their upstream C1 baselines. Their next optimization target is per-case execution/lifecycle overhead, not prepared-state semantics.
At C8 the measured cgroup/PSS medians span 71.0/58.7 MiB through 230.0/223.0 MiB across the parallel Laravel cohorts, with Pest at 167.8/182.9 MiB and Filament at 143.5/115.9 MiB. Aggregate RSS is also recorded but double-counts shared fork pages, so cgroup and PSS are the decision metrics.
C1 optimization follow-up
A controlled local A/B mounted only the changed scheduler file into the same pinned Linux images. Every runnable case retained exactly one executor fork.
The Pest gain is intentionally modest because its dominant C1 cost is child work in Vite helpers, not scheduler handoff. Livewire-full remains dominated by its per-case filesystem cleanup.
memory.peakwas too noisy to claim an improvement: C1 was effectively unchanged and C30's median was 2.9% lower with overlapping ranges.These are diagnostic A/B measurements, not a replacement for the sealed N6 artifact.
Verification
All 20 hosted checks pass on exact head
a6dac07d77ebdbe38020c43ebdb48878e7c003ff, including External Corpus #30824774428, Compatibility Corpus #30824778782, topology/fault hardening, PCOV aggregation, native DSL/extensions/Laravel, PHP 8.4/8.5, macOS x86_64/arm64, static analysis, tests, and Composer archive verification.corpus-full-a6dac07d77ebdbe38020c43ebdb48878e7c003ff-attempt-1, GitHub digestsha256:fe77e83abfe5e77e5b09d63bd7adc029fca5723754df496d6db7456894641844.native-laravel-transaction-faults-a6dac07d77ebdbe38020c43ebdb48878e7c003ff, GitHub digestsha256:538f142cc49f970f476fb9a24d0584ed109715c1599f0943c22013726296b284.Boundary
Drove remains experimental. Native claims are limited to the declared surface and pinned cohorts; unsupported behavior is rejected rather than emulated implicitly. External design-partner validation remains a separate release gate and is not claimed by this PR.