HipHop for PHP

Cet article est une ébauche concernant un logiciel libre.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

HipHop for PHP
Description de l'image Webysther 20160330 - HHVM.svg.

Informations
Développé par Facebook
Dernière version 3.15.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/facebook/hiphop-phpVoir et modifier les données sur Wikidata
Écrit en C++ et CVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Compilateur
Licence Licence PHP
Site web http://github.com/facebook/hiphop-php

modifier - modifier le code - voir Wikidata (aide) Consultez la documentation du modèle

HipHop for PHP est un ensemble de logiciels créés par Facebook pour optimiser le développement, le débogage et l'exécution de code PHP.

Deux générations de produits

Il fait référence à deux générations de produits :

La première génération compilait un code transformé en C++ :

  • HPHPc transforme du code PHP en C++ et le compile en un exécutable ;
  • HPHPi offre un environnement simulant les mêmes conditions qu'HPHPc pour le développement et test du code.

La seconde génération est une machine virtuelle appelée HHVM et compilant, à l'instar de JVM pour le Java et du CLR pour la plate-forme .Net, le code en un langage intermédiaire, aussi appelé bytecode. Ce code est alors compilé et exécuté à la demande[2].

Historique

Les premiers projets de compilateurs

Les premiers développements de compilateurs sont phc[3] et « Roadsend PHP Compiler » (compilant en C) et Quercus[4] et Project Zero[5]. Il a été en développement deux années avant sa publication en logiciel libre le . Des difficultés ont fait prendre du retard au projet[6],[7].

Première génération — HPHPc, transformation en C++ et compilation

Facebook décide de développer son propre compilateur, sous la direction de Haiping Zhao.

Le premier produit développé est un compilateur de code PHP. Il est appelé dans un premier temps HipHop for PHP, puis dans un second temps HPHPc. Il transforme le code source PHP en C++ optimisé et utilise g++ pour le compiler en langage machine. HipHop contient un transformateur de code, une réimplémentation des dépendances de PHP, et une réécriture de beaucoup d'extensions communes de PHP afin de profiter de ces optimisations de performances[8].

HipHop a été créé par Facebook entre 2008 et 2010[9] pour diminuer la charge de ses serveurs. Il a été distribué avec plus de 300 000 lignes de codes écrites en C++ et en C en tant que logiciel libre sous les termes de la version 3.01 de la licence PHP.

Ils ont aussi développé HPHPi, qui est un interpréteur de code expérimental avec lequel il n'est pas nécessaire de compiler préalablement le code, permettant aux développeurs de déboguer leur code dans un environnement simulant les mêmes conditions d'exécution qu'HPHPc.

Seconde génération — HHVM

Le gain de performances et de possibilités d'optimisation arrivait à un plafond. En outre, le maintien de HPHPc et HPHPi, qui sont deux bases de code distinctes, devient de plus en plus difficile, tandis que le support de certaines fonctionnalités de PHP comme eval() n'était toujours pas implémenté.

Pour remédier à ces problèmes, dès 2010, un projet de créer une machine virtuelle est lancé et HHVM est née. Elle atteindra des performances similaires à HPHPc fin 2012[10]. Dès lors, Facebook l'utilise en production.

Articles connexes

  • Hack, langage proche du PHP utilisé sur la quasi-totalité du site de Facebook et s'exécutant au sein d'une machine virtuelle HHVM.

Notes et références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « HipHop for PHP » (voir la liste des auteurs).
  1. « Release 3.15.0 », (consulté le )
  2. Allan MacGregor, « An Introduction to HHVM », (consulté le ).
  3. « phpcompiler »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?).
  4. caucho.com/resin-3.0/quercus.
  5. www.projectzero.org/php « Copie archivée » (version du sur Internet Archive).
  6. « PHP Creator Asks, Is Facebook's HipHop Just a 'Nifty Trick'? ».
  7. (en) Documentation du dépôt le 8 février 2010.
  8. HipHop for PHP: Move Fast « Copie archivée » (version du sur Internet Archive)
  9. Message de Haiping Zhao développeur sur son blog : http://developers.facebook.com/blog/post/358
  10. Drew Paroski, « Speeding up PHP-based development with HipHop VM », sur Facebook Engineering's Notes, (consulté le )

Liens externes

  • http://github.com/facebook/hiphop-php HipHop for PHP sur GitHub]
  • HipHop Compiler for PHP? Transforming PHP into C++ — lecture given by HipHop Lead Engineer, Haiping Zhao at Stanford University (video archive).
v · m
Personnalités
Ressources
Implémentations
  • HipHop Virtual Machine (en) (HHVM)
  • HipHop for PHP
  • Parrot
  • Phalanger
  • Quercus
  • Zend Engine
Frameworks web
Test
Mapping objet-relationnel
Environnement de développement
Toolkit
v · m
Exécution informatique
Concepts généraux
Types de code
Compilation
anticipée
à la volée
Machines virtuelles
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail des logiciels libres