Welcome to EverybodyWiki ! Sign in or create an account to improve, watchlist or create an article, a company page or a bio (yours ?)...


Compte Twitter EverybodyWiki Follow us on https://twitter.com/EverybodyWiki !




Peachpie (compiler)

From EverybodyWiki Bios & Wiki
Jump to navigation Jump to search







PeachPie Compiler
Peachpie logo
Developer(s)iolevel
Initial releaseJuly 18, 2016; 2 years ago (2016-07-18).:[1]
Repository
Written inC#[2]
Engine
    Lua error in Module:Wd at line 1991: attempt to index local 'id' (a nil value).
LicenseApache 2.0[3]
Websitewww.peachpie.io

PeachPie is an open-source PHP language compiler and runtime for .NET and .NET Core frameworks. It is built on top of the Microsoft Roslyn compiler platform and is based on the first-generation Phalanger project. PeachPie compiles source code written in PHP to CIL byte-code. Like Phalanger, PeachPie takes advantage of the JIT compiler component of the .NET Framework in order to handle the beginning of the compilation process. Its purpose, however, is not to generate or optimize native code, but rather to compile PHP scripts into .NET assemblies containing CIL code and meta-data. In July 2017, the project became a member of the .NET Foundation.[4]

Origins[edit]

PeachPie's architecture is based on the Phalanger project, which was originally the result of coursework at the Charles University in Prague, Czechia.[5] Since 2009, the Czech company DEVSENSE had maintained and supported the project. In 2016, however, making use of the recently introduced Microsoft .NET compiler platform – codenamed Roslyn – the compiler's architecture has been redesigned and rewritten for it to be implemented on top of the Roslyn API. Since then, the Czech company iolevel has been leading the development of this newly created second-generation compiler called PeachPie.

PeachPie has several advantages over Phalanger, both as a result of the Roslyn API and the reworked architecture of the compiler. While Phalanger was only able to target the full .NET Framework, which only ran on Windows, and cross-platform capabilities were achieved by targeting Mono, PeachPie also allows for a compilation to .NET Core, thus being cross-platform by default.[6] The benchmarks published to date point to performance improvements of PeachPie compared to its predecessor.[7][8][9] Additionally, PeachPie contains an advanced semantic analysis, which allows the compiler to generate C#-like symbols for enhanced interoperability features.

The project receives considerable support from Microsoft[10], having been invited to present at the virtual conference .NET Conf [11][12] and featured on Microsoft's "On .NET"[13][14], as well as the .NET Rocks podcast.[15] Since July 2017, PeachPie has been a member of the .NET Foundation. In December 2018, iolevel received the European Innovation Council's Horizon2020 grant to pursue their work on PeachPie compiler.[16][17][18]

Objectives[edit]

The project lists several main goals:[19][20]

  • Performance: since the PHP code is compiled to CIL and subsequently executed, rather than interpreted, theoretically this should lead to performance improvements.[21] The micro-benchmarks performed by the authors suggest an increased performance over standard PHP in isolated cases[22] and tests have shown that the project is able to run PHP code about twice as fast on Azure.[23] Using the independent TechEmpower plaintext benchmark, it was measured that WordPress running on PeachPie was able to serve 305,612 requests per second[24], whereas standard PHP served 45,616 requests per second.[25] PeachPie is also part of the frequently published TechEmpower benchmarking rounds[26], where, as of 2019, PeachPie is faster than any other PHP framework appearing in the benchmark.[27] Phalanger also offered considerable performance benefits over a 32-bit Windows version of PHP 5.4.[28][29][30]
  • Interoperability: the project allows users to interoperate between the PHP and .NET languages. As a result, unusual operations, such as injecting C# lambdas into a PHP Context or inheriting PHP classes in C#, are possible.[31] Therefore, users can utilize PHP libraries in their .NET projects and vice versa.[32]
  • Security: The compilation and analysis process in PeachPie can handle otherwise dangerous constructs, such as when a PHP application performs a Require on a file that had originally not been compiled. As a result, PeachPie claims to increase the security of compiled PHP applications. Since PeachPie compiles all the source code into one DLL file, the original sources do not need to be distributed along with the compiled application.
  • Cross-platformity: Since PeachPie can target .NET Core, which is compatible with the regular .NET Framework, Xamarin and Mono, and runs on Windows, MacOS and Linux,[33] PHP applications can be developed for all platforms, devices and operating systems.

Supported Applications[edit]

The PeachPie project enables entire PHP applications and frameworks to be compiled to the standard .NET DLL format and distributed, for example, as NuGet packages.[34] As of 2018, officially tested and supported applications include WordPress[35][36], MediaWiki[37], the software that runs the Wikipedia page, and CodeIgniter.[38]

See also[edit]


Others articles of the Topic Computer programming : Koseven (framework), Lua (programming language), Ada Lovelace, Cuckoo filter
Some use of "" in your query was not closed by a matching "".Some use of "" in your query was not closed by a matching "".

References[edit]

  1. iolevel (July 18, 2016). "PeachPie Compiler pre-release". Retrieved February 10, 2017.
  2. "PeachPie repository". github.com. [iolevel]. February 10, 2017. Retrieved February 11, 2017.
  3. "iolevel/peachpie: License". github.com. [iolevel]. Retrieved February 11, 2017.
  4. Galloway, Jon (2017-07-25). "Welcome Peachpie Compiler Platform to the .NET Foundation". The .NET Foundation.
  5. phpcompiler (2011-05-04), Phalanger: PHP .NET compiler revealed (1/2), retrieved 2017-02-08
  6. ".NET Core Framework - Go Cross-Platform with the .NET Framework". msdn.microsoft.com. Retrieved 2017-02-11.
  7. de Icaza, Miguel (2012-03-12). "Phalanger's PHP on Mono/.NET Updates". tirania.org. Retrieved 2017-02-11.
  8. Adams, Ben (2017-03-11). "Peachpie Plaintext Benchmark". Github.
  9. "Round 16 Results - TechEmpower Framework Benchmarks". 2018-06-06.
  10. Millar, Ethan (2016-05-11). "How Peachpie Compiler Leverages .Net Development Technology In PHP - Web Development Tutorial". Web Development Tutorial. Retrieved 2018-10-16.
  11. Microsoft Visual Studio (2017-09-20), Running PHP on .NET Core with Peachpie, retrieved 2018-10-16
  12. Code Mantisa (2018-09-18), S303 - Advanced C# PHP interoperability with PeachPie by Jakub Misek, retrieved 2018-10-16
  13. "Benjamin Fistein & Jakub Míšek - Peachpie PHP compiler for .NET". Channel 9. Retrieved 2018-10-16.
  14. "Peachpie". Channel 9. Retrieved 2018-10-16.
  15. ".NET Rocks! vNext". .NET Rocks!. Retrieved 2018-10-16.
  16. "European Innovation Council SME Instrument Phase 1" (PDF). ec.europa.eu. November 2018.
  17. "EIC SME Instrument data hub". sme.easme-web.eu. Retrieved 2019-02-02.
  18. Skoupá, Adéla (2019-01-18). "Inovativní nápady českých firem podpoří EU. Peníze dostane rehabilitační nástroj pro lidi po mrtvici či nástroj PeachPie, který ocenil i Microsoft". Hospodářské noviny (in čeština). Retrieved 2019-02-02.
  19. ".NET Foundation". dotnetfoundation.org. Retrieved 2018-10-16.
  20. Ben Yacoub, Hatem (2017-02-16). "Peachpie, The PHP Compiler and Runtime for .NET". PHP Magazine Network. Retrieved 2018-10-16.
  21. Yegulalp, Serdar. "Peachpie compiler aims to bring PHP to .Net". InfoWorld. Retrieved 2018-10-16.
  22. "Benchmarks – Peachpie". www.peachpie.io. Retrieved 2017-02-08.
  23. Klose, Ann-Kathrin (2017-09-04). "Peachpie: Wordpress per PHP-Compiler auf .NET nutzen". entwickler.de (in Deutsch). Retrieved 2018-10-16.
  24. Adams, Ben. "Peachpie Benchmarks". GitHub.
  25. "Round 13 results - TechEmpower". TechEmpower.
  26. "TechEmpower Framework Benchmarks". www.techempower.com. Retrieved 2018-06-16.
  27. "Ben Adams on Twitter". Twitter. Retrieved 2018-06-16.
  28. "Benchmarks". v1.php-compiler.net. Retrieved 2017-02-12.
  29. "Phalanger: Stuffing PHP With Mono, .NET - Phoronix". www.phoronix.com. Retrieved 2017-02-12.
  30. "Phalanger by DEVSENSE". v4.php-compiler.net. Retrieved 2017-02-13.
  31. Vaggalis, Nikos (24 October 2016). "Peachpie Open Source PHP to .NET Compiler". i-programmer.info. Retrieved 2017-04-08.
  32. Peipman, Gunnar. "Running PHP Applications on .NET Core - DZone Web Dev". dzone.com. Retrieved 2018-10-16.
  33. Richlander. ".NET Core Docs". docs.microsoft.com. Retrieved 2017-02-08.
  34. Hanselman, Scott. "The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie - Scott Hanselman". www.hanselman.com. Retrieved 2018-10-16.
  35. Hanselman, Scott. "Peachpie - Open Source PHP Compiler to .NET and WordPress under ASP.NET Core - Scott Hanselman". www.hanselman.com. Retrieved 2018-06-16.
  36. Hughes, Matthew (2017-02-28). "This company figured out how to run Wordpress on .Net". The Next Web. Retrieved 2018-06-16.
  37. "Setting up MediaWiki on .NET with Peachpie @ PeachPie | PHP compiler to .NET". www.peachpie.io. Retrieved 2018-06-16.
  38. "Performance Progress Report @ PeachPie | PHP compiler to .NET". www.peachpie.io. Retrieved 2018-06-16.

Category:software Category:Free compilers and interpreters Category:PHP software

Edited sources and added additional external ones[edit]

Removed most references to PeachPie websites, minor text mods and made tone more neutral[edit]

This article "Peachpie (compiler)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Peachpie (compiler). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.