Releases: peachpiecompiler/peachpie
v1.1.11
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 usingparams ReadOnlySpan<PhpValue>
instead of the legacyparams PhpValue[]
. - Use of
ArrayPool
across the library to avoid array allocations.
- Thanks to @arontsang for his
- 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
This release improves compatibility with WordPress, enhances performance, and adds some interoperability features.
New functions
filter_var_array
fputcsv
with correct parameters- stream_context_create() with params argument
- PHP 8.2 PCRE support for the n option
- spread array operator
Interoperabiity
- Support for using CLR events with PHP callable (https://docs.peachpie.io/net/type-system/#c-event)
- AssemblyAttribute MSBuild property.
get_
/set_
method automatically synthesizes a CLR property with the same name
Optimizations
- string evaluation uses much less allocations
version_compare()
is without allocationsglob
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
Maintenance release with fixes and updated parser.
v1.1.5
maintenance release; avoids a few falsy notices in array
functions and is_readable()
function
v1.1.4
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:
v1.0.25
This is the netstandard2.1
release with the same features as v1.1.3
v1.1.3
v1.1.2
v1.1.1
Fixes SDK to be used from Visual Studio.
v1.1.0
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)