Skip to content

Releases: peachpiecompiler/peachpie

v1.1.11

20 Feb 14:52
Compare
Choose a tag to compare

Release 1.1.11 is here!

What's new?

  • PHP 8.4 parser, although not all PHP 8.4 constructs are supported. This update mainly improves compilation speed and memory usage.
  • Support for typed class constants.
  • Better support for SQLite, thanks to @arontsang #1152 .
  • SplFileObject support for CSV parsing.

Performance

  • Compilation time has been improved thanks to the updated parser and reduced allocations in general.
  • Runtime performance improvements; mainly because of reduced allocations during runtime and lower GC pressure.
    • Thanks to @arontsang for his IPhpCallable.Invoke() implementation using params ReadOnlySpan<PhpValue> instead of the legacy params PhpValue[].
    • Use of ArrayPool across the library to avoid array allocations.
  • Fixed analysis of compact() which broke type analysis - this fix improves WordPress performance on a few places.
  • Fixed analysis of local variables if there are more than 32 of them - this broke type analysis.

Fixes

There are many minor fixes to the compiler and runtime. The most significant fix addresses type analysis of local variables. Please see the commits for details.

v1.1.10

23 Aug 13:13
Compare
Choose a tag to compare

This release improves compatibility with WordPress, enhances performance, and adds some interoperability features.

New functions

Interoperabiity

Optimizations

  • string evaluation uses much less allocations
  • version_compare() is without allocations
  • glob uses less allocations
  • overload resolution using named arguments: better compile time method binding, avoids some dynamic calls in run-time.

Fixes

  • Diagnostic for printf with more than 9 arguments checks the arguments correctly.

v1.1.9

24 May 12:45
Compare
Choose a tag to compare

Maintenance release with fixes and updated parser.

v1.1.5

25 Jan 12:48
Compare
Choose a tag to compare

maintenance release; avoids a few falsy notices in array functions and is_readable() function

v1.1.4

23 Jan 12:49
Compare
Choose a tag to compare

This release has updated PHP syntax parser and PHAR parser. This fixes a few issues as well as it allows parsing a complete range of PHP 5,7 and PHP 8 sources. (It doesn't mean it compiles all the PHP 8.2 quirks and features tho - see #765 and #959)

PHPDoc

Updated Doc Comments parser, and dropped support for type hinting from PHPDoc; this feature was useful when there was no type-hinting in PHP itself. Currently, function parameters and properties can be type-hinted using PHP syntax.

Fixes:

  • post-increment of aliased variable (#1086)
  • match with multiple conditions (#1098)

v1.0.25

16 Nov 21:19
Compare
Choose a tag to compare

This is the netstandard2.1 release with the same features as v1.1.3

v1.1.3

16 Nov 21:18
Compare
Choose a tag to compare

maintenance release,

  • fixes header() function so it won't report warnings on CLI
  • fixes PDO execute() #1069
  • mysqli_report()
  • PHP 8 Attribute class
  • faster file_exists()

v1.1.2

08 Oct 17:07
Compare
Choose a tag to compare
  • fixes White Screen of Death when running from Visual Studio (reverts use of I/O pipelines) (#1070)
  • implements mysqli_report()
  • fixes PDO statement execute (#1069)
  • MySql and MySqli err code is correct (not -1 always)

v1.1.1

05 Oct 09:42
Compare
Choose a tag to compare

Fixes SDK to be used from Visual Studio.

v1.1.0

03 Oct 10:54
Compare
Choose a tag to compare

Targeting net5.0 and newer now, so we can make use of the latest API. When running on older .NET runtimes, please use the 1.0.x versions.

Sample project file .msbuildproj:

<Project Sdk="Peachpie.NET.Sdk/1.1.0">
  <PropertyGroup>
    <OutputType>library</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="**/*.php" />
  </ItemGroup>
</Project>

Breaking

  • Requires .NET Runtime 5.0 or higher.

Optimizations

  • ASP.NET Core middleware takes advantage of I/O pipelines.
  • avoids allocations in ASP.NET Core request pipeline and string encoding.
  • avoids more allocations in request handling, hash, random_int, mbstring, stripcslashes, URL encoding, echo of complex strings, bin2hex.

Fixes

  • Compiling of use of a trait whose definition is ambiguous (#1063)