CONTRIBUTE

Pick one difference. Make it identical.

The most useful contribution closes a verifiable behavior: an official .phpt case, an extension gap, a request-lifecycle gate, a documented divergence or reproducible tooling.

GOLDEN RULE

The oracle is PHP 8.5.7.

A patch is complete when the target case produces the same output as the reference runtime and every relevant named baseline remains regression-free.

A concrete workflow

  1. 01

    Find

    Choose a failing test, lifecycle case or missing high-impact function.

  2. 02

    Reproduce

    Run the same case under PHP and phpr.

  3. 03

    Isolate

    Reduce the diff to the smallest semantic contract.

  4. 04

    Fix

    Implement without plausible stubs or silent shortcuts.

  5. 05

    Gate

    Run the target suite plus relevant Zend, Doctrine, Symfony, WordPress or server gates.

Where contribution has the most leverage

.phpt gaps

Near-complete areas offer small, measurable patches with a precise oracle.

Same-VM lifecycle gates

Two-request parity, amplification and shutdown-order fixtures are the current server boundary.

Server hardening

Backpressure, exception bridging, HTTP semantics and sustained-load evidence need rigorous tests.

Remaining extensions

PostgreSQL, sodium, sockets and other surfaces should be driven by explicit application contracts.

Performance attribution

Paired measurements, census tooling and owner-level evidence beat speculative optimizations.

Documentation and tooling

Reproducible harnesses, diffs, watchdogs and architecture notes reduce the cost of every later fix.