Deux problèmes assez importants, l'un relatif à un crash du langage lors d'un appel à une méthode statique à l'aide d'une expression et l'autre à une fuite de mémoire,  ont en effet été corrigé depuis Noël.

De plus, le processus de compilation a été consolidé afin de pouvoir compiler PHP sur les distributions de Linux les plus récentes.

La version finale de PHP 5.4 risque donc de ne pas être diffusée avant la fin de l'année, et je table maintenant sur une sortie vers la fin de janvier, la RC5 devant montrer le bout de son nez aux alentours du 7 janvier 2012.

Fonctionnellement parlant, cette version RC4 n'apporte rien de bien nouveau, mis à part l'ajout de la directive de configuration max_input_vars, qui permet, comme l'indique le fichier UPGRADING,  de définir le nombre maximum de variables, par défaut 1000, pouvant être contenu par les variables $_GET, $_POST et $_COOKIES.

Pour la petite histoire, cette directive a été ajoutée suite à la présentation lors du 28C3 d'un nouveau type d'attaque par déni de service, nommé hashDOS, et exploitant les faiblesses des tables de hachage en terme de performance dans certain contexte d'utilisation. 

Comme à mon habitude, j'ai également étudié le journal du dépôt subversion de PHP 5.4, et comme d'habitude, il a révélé bien plus de détails sur le travail effectué par les développeurs du langage entre la RC3 et la RC4.

Tout d'abord, j'ai eu la surprise d'y lire le nom de Jean-Marc Fontaine, ami et président de l'AFUP, puisqu'il a contribué à cette version via l'ajout de tests unitaires relatifs à spl_autoload() et stream_context_set_option().

Ce journal m'a également appris que la variable $_SERVER["SERVER_NAME"] est maintenant également renseigné par le serveur HTTP intégré à PHP 5.4.

J'y ai également appris que plusieurs problèmes relatifs à la mise en œuvre des traits avaient été corrigés, en étudiant la liste des nombreux bugs résolus n'apparaissant pas dans le fichier NEWS :

Fixed bug #60477 (Segfault after two multipart/form-data POST requests)
Fixed bug #60489 (Simple Typo In php.ini Files)
Bug fixed #48877 - bindValue and bindParam do not work for PDO Firebird
Fixed bug #60455: stream_get_line misbehaves if EOF is not detected together with the last read
bug fixed #48877 - bindValue and bindParam do not work for PDO Firebird
Fixed bug #60536 (Traits Segfault)
Fixed bug #60523 (PHP Errors are not reported in browsers using built-in SAPI)
Implement the solution for isset/string offsets, fix bug #60362
Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
Fixed bug #60570 (http wrapper leaks context resource if request fails/is redirected)

Enfin, parmi la grosse quarantaine de modifications effectuées sur le code source de PHP entre la RC3 et cette RC4 figure également les habituelles optimisations et corrections de tests unitaires et qui devraient faire de PHP 5.4 la version la plus fiable et la plus performante jamais diffusée.

Pour conclure, je rappellerais que malgré cela, cette version RC4 n'est toujours pas qualifiée pour être utilisée en production et doit donc en conséquence être testée sur un serveur dédié à cette tâche.

De plus, comme d'habitude, une version spécifique à Windows est disponible.