CONTRIBUISCI

Scegli una differenza. Rendila identica.

Il modo più utile per aiutare phpr è chiudere un comportamento verificabile: un test .phpt, un builtin mancante, una divergenza documentata o uno strumento che renda il confronto più veloce.

REGOLA D'ORO

L'oracolo è PHP 8.5.7.

Una patch è completa quando il caso target produce lo stesso output del runtime di riferimento e l'intera baseline mantiene zero regressioni pass→fail.

Un flusso di lavoro concreto

  1. 01

    Trova

    Scegli un test fallito o una funzione mancante ad alto impatto.

  2. 02

    Riproduci

    Esegui lo stesso caso con PHP e con phpr.

  3. 03

    Isola

    Riduci il diff al comportamento semantico minimo.

  4. 04

    Correggi

    Implementa senza stub plausibili o scorciatoie silenziose.

  5. 05

    Verifica

    Esegui suite target, gate Zend e test applicativi rilevanti.

Dove il contributo vale di più

Test .phpt

Categorie con molti test vicini alla parità offrono patch piccole e misurabili.

Builtin core

Funzioni pure, deterministiche e usate da framework hanno un ritorno immediato.

Estensioni mirate

Driver o API richieste da un caso d'uso reale, implementate con contratti espliciti.

Fuzzing e robustezza

Input che raggiungono unwrap o panic devono diventare errori VM tipizzati.

Documentazione

Ricette riproducibili, mappa delle divergenze e spiegazioni architetturali riducono il costo di ingresso.

Tooling

Runner, diff, benchmark e report che rendono visibile il prossimo gap più importante.