HipHop (транслятор)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
HipHop for PHP (HPHPc)
Разработчик Meta Platforms
Написана на C++, C, PHP
Первый выпуск 2 февраля 2010; 14 лет назад (2010-02-02)[1]
Последняя версия Заменён на HHVM[2][3] (2013; 11 лет назад (2013))
Состояние Разработка прекращена
Лицензия PHP License
HipHop Virtual Machine (HHVM)
Логотип программы HipHop Virtual Machine (HHVM)
Разработчик Meta Platforms
Написана на C++, C
Первый выпуск 9 декабря 2011; 12 лет назад (2011-12-09)[4]
Последняя версия 4.167.0[5] (24 августа 2022; 20 месяцев назад (2022-08-24))
Состояние активное
Лицензия PHP License and Zend License[6]
Сайт hhvm.com

HipHop for PHP (HPHPc, букв. HipHop для языка PHP) — транспайлер исходного кода, созданный компанией Meta Platforms и использовавшийся ранее в проектах компании. HipHop программно превращает исходный код, написанный на языке PHP, в оптимизированный код на C++, а затем использует компилятор g++ для его компиляции. HipHop включает в себя транслятор кода, альтернативную реализацию среды выполнения PHP, а также множество наиболее распространённых расширений PHP (англ. PHP Extensions), переписанных на C с целью повышения производительности[7].

HipHop был создан разработчиками социальной сети Facebook для экономии ресурсов их серверов. Код было решено выпустить 2 февраля 2010 года в виде открытого ПО[8]. Однако релиз кода был задержан из-за проблем с очисткой исходного кода от специфичных для Facebook расширений. Исходный код проекта стал доступен 20 февраля 2010 года[9].

Ими же был разработан HPHPi, представляющий собой экспериментальный интерпретатор PHP, предназначенный для отладки и быстрого прототипирования кода, не полностью совместимый с HPHPc. Интерпретатор разрабатывался с целью экономии затрат времени на частую перекомпиляцию программного кода в процессе разработки.

HHVM

В 2011-ом году в Meta Platforms (в то время Facebook) была разработана первая версия HHVM[en] — экспериментальной виртуальной машины, на тот момент предназначавшейся для исполнения и JIT оптимизации PHP кода. Наличие HHVM, в частности, позволило отказаться от параллельного использования интерпретатора HPHPi (в процессе разработки) и компилятора HPHPc (при эксплуатации). В 2013-ом году сервера facebook.com были переведены на использование HHVM[10].

20 марта 2014 года Meta Platforms был официально представлен язык программирования Hack[11], близкий к PHP и реализованный поверх HHVM, в котором дополнительно введена статическая типизация[12]. Первый вариант спецификации этого языка[13] опубликован 19 февраля 2015 года[14].

6 января 2015 года был окончен 9-месячный процесс перевода на использование HHVM серверов проекта Wikipedia, в ходе которого была проделана дополнительная работа по доработке HHVM[15][16][17].

В сентябре 2017 года Meta Platforms объявила[18], что более не ставит своей целью обеспечение совместимости HHVM с PHP (в пользу собственного языка Hack). В том же месяце началась миграция проекта Wikipedia на PHP 7[19].

См. также

Примечания

  1. Haiping Zhao. HipHop for PHP: Move Fast. Facebook (2 февраля 2010). Дата обращения: 2 августа 2014. Архивировано 8 января 2015 года.
  2. Drew Paroski. Speeding up PHP-based development with HHVM. Facebook (29 ноября 2012). Дата обращения: 2 августа 2014. Архивировано 16 января 2013 года.
  3. Paul Tarjan. Joining, Retirement, Testing, and Bankruptcy. hhvm.com (13 мая 2013). Дата обращения: 2 августа 2014. Архивировано 8 августа 2014 года.
  4. Jason Evans. The HipHop Virtual Machine. Facebook (2011-12-09.mdy.2024). Дата обращения: 2014-08-02.mdy.2024. Архивировано 30 ноября 2015 года.
  5. HHVM-4.167.0. Дата обращения: 30 августа 2022. Архивировано 30 августа 2022 года.
  6. facebook/hhvm: License. github.com. Facebook. Дата обращения: 2014-08-02.mdy.2024. Архивировано 23 мая 2021 года.
  7. HipHop for PHP: Move Fast Архивная копия от 4 декабря 2020 на Wayback Machine (англ.)
  8. PHP Creator Asks, Is Facebook’s HipHop Just a 'Nifty Trick'? (англ.)
  9. Сборка и запуск HipHop-PHP. Дата обращения: 20 июля 2013. Архивировано 23 июля 2013 года.
  10. Joining, Retirement, Testing, and Bankruptcy | HHVM. Дата обращения: 22 февраля 2015. Архивировано 28 февраля 2015 года.
  11. Julien Verlaguet, Alok Menghrajani. Hack: a new programming language for HHVM, facebook code (20 марта 2014). Архивировано 7 января 2019 года. Дата обращения 24 марта 2014.
  12. hacklang.org — официальный сайт языка Hack
  13. Specification for Hack. github. Дата обращения: 22 февраля 2015.
  14. Joel Marcey. Announcing a Specification for Hack, HHVM Blog (February 19, 2015). Архивировано 21 февраля 2015 года. Дата обращения 22 февраля 2015.
  15. Проект Wikipedia перешёл на использование HHVM для выполнения PHP-кода, OpenNET (07.01.2015). Архивировано 22 февраля 2015 года. Дата обращения 22 февраля 2015.
  16. Brett Simmers. Wikipedia on HHVM, HHVM Blog (January 6, 2015). Архивировано 22 февраля 2015 года. Дата обращения 22 февраля 2015.
  17. HHVM — MediaWiki. Дата обращения: 22 февраля 2015. Архивировано 23 июня 2016 года.
  18. The Future of HHVM | HHVM. Дата обращения: 23 марта 2019. Архивировано 28 апреля 2019 года.
  19. Migrate to PHP 7 in WMF production. Дата обращения: 24 марта 2019. Архивировано 21 октября 2020 года.

Литература

  • Josh Lockhart. Chapter 12 HHVM and Hack // Modern PHP: New Features and Good Practices. — O’Reilly Media. — P. 187-204. — 268 p. — ISBN 978-1-4919-0518-0.


Ссылки