Releases: peachpiecompiler/peachpie
v1.0.10
v1.0.9
Improvements
- properties from C#' explicit type declaration can be used in PHP
- dynamic method call deals with CLR'
ref
parameters - PHP'
array
implicit cast to C#Dictionary<,>
#997 - dynamic method call implicitly casts between
int
/long
andenum
- generated IL of array initializers is smaller #1000
- using
MySqlConnector
version 2.0.0
Fixes
- fixes
chr()
for ascii printable characters #981 - fixes
rawurlencode()
to comply with RFC 3986 #998 - fixes PDO's commit() and rollback() - pending data need to be disposed #990
- class declaration done as it is in PHP #992
- fixes type inferring in loops #993
- cURL requests maintain cookies during subsequent execs #999
- fixes type inferring in functions with indirect variable access and
unset
/export
/eval
/include
#1002 - fixes
stream_socket_accept()
and$timeout
: previous unfinished accept was not ended, socket server was unusable stream_socket_server()
handles the stream context "socket" options
v1.0.8
What's Changed
- fixed empty() and isset() semantic with __isset() and __get() magic methods #979
- fixed a few library functions argument handling
- fixed nullability check 18924c9
- fixed
bcmod
00d5cdb - added mysqli_fetch_column, fetch_column
- more fixes
New Contributors
- @andrew-demb made their first contribution in #976
- @TomatorCZ for discovering issues and finding fixes
- @Firensis for running semantic analysis on the peachpie code
Full Changelog: v1.0.6...v1.0.8
v1.0.6
Next minor release of the PeachPie platform. Implements and fixes the following major issues:
New Features
- PHP 8.1 language syntax support (
never
, oct number syntax) (see #959 for progress) - smaller emitted IL in case of default value types
PdoStatement
is enumerableArrayObject
is enumerablememory_limit
not reported as unsupported- optimizations
Fixes
- #957 list with nested arrays does not crash the compiler
- PDO
FETCH_COLUMN
- fixes
ArrayObject
- fixes array key numeric conversions
v1.0.5
Next release of the PeachPie platform for .NET. New features, maintenance, mostly fixes.
See the full list of changes at v1.0.0...v1.0.5
Features
- number conversions are culture invariant
- avoids some allocations
- compatible DateTime representation
&new
operation won't create a referenced value anymore, just a warning diagnostic- better debug sequence points
- parser respects
8bit
string literals - improved support for
System.Nullable{T}
CLR type - support for
System.Decimal
CLR type - support for value types (structs passed from outside)
"date.timezone"
option- emits smaller IL in general
Fixes
- nullref issues with
printf
,spritnf
,vsprintf
- comparison of 8bit string values
- compilation of ambiguous classes containing trait uses
- and more!
v1.0.0-preview5
https://www.nuget.org/packages/Peachpie.NET.Sdk/1.0.0-preview5
5th preview release: mainly fixes bugs and implements more or PHP's BCL
Release highlights:
Improvements & Compatibility
- casting double to string respects invariant culture a960e1f
ReflectionAttribute::newInstance()
bcmath
implementationget_mangled_object_vars()
- updates ini options
fscanf()
,vfprintf()
password_algos()
PhpToken
,token_name()
ASP.NET
- correct
session_name()
on asp.net 7416187 - session state is shared with
$_SESSION
items
Fixes
- NullReferenceException when compiling an empty attribute
- NullReferenceException when function returns void #887
sscanf()
with more than one output parameter #889- PCRE \p followed by single letter #886
- duplicit Compile items #890
- empty type information infered by compiler #882
- .NET indexers readded (e.g. access to Dictionary) 65e01e3
v1.0.0-preview4
The 4th preview release introduces performance improvements, new features, and fixes.
New Features
- emitting and understanding C#-8 like nullability context
- compiler evaluates more expressions, arithmetic, file_exists(), constants, inclusions
- simplified emitted code for functions that return a value or FALSE
- improved type analysis
- nested CLR classes can be used
ASP.NET Core
- PHP warnings and notices logged using
Microsoft.Extensions.Logging.ILoggerFactory
- enabled support for composer autoload-files
- correct resolution of requested script
PHP 8.0 Compatibility
- initial support for PHP 8 attributes
- constructor properties
- union types
- str_contains(), fdiv(), Stringable, ValueError, etc.
- T_* constants
- ReflectionAttribute
see #765 for the progress on PHP 8 compatibility
Fixes
- library functions updated
- library functions signature compatible with PHP
- removed functions and classes that supposed to be internal
- library functions categorized under correct extension names
- PDO fetchAll() fix for FETCH_GROUP
- DateInterval, curl_multi, wordwrap() fixes
- each() correctly copies returned value
v1.0.0-preview3
Third preview release fixes and implements the following features:
- Implements
curl_reset()
(fixes guzzle) - asp net core request handler understands the requested path info
- double to string conversion respect the PHP notation (
INF
,NAN
) fstat
on Unix- SimpleXmlElement is json serializable
- more eventual runtime error messages
- fewer allocations in runtime and libraries
- fixed autoloading mechanism when there are PHPDoc comment in the file (improves perf. of composer packages)
- fixed invalid IL generated by typed
__invoke
function (fixes guzzle) - fixed
stream_select()
on SSL sockets (fixes SMTP plugin iolevel/wpdotnet-sdk#70) - fixed
array_merge
andarray_merge_recursive
(fixes Elementor plugin iolevel/wpdotnet-sdk#90) - fixed reflection of variadic function parameters (noticeable in case of
max
andmin
)
v1.0.0-preview2
This release fixes the previous 1.0.0-preview1 release.
- PHP 8
Stringable
interface - added
set_time_limit()
- added Sdk property:
$(BasePath)
- emits debug sequence points for property initializers
- fixes run of
phpunit
project DirectoryIterator
andSplFileInfo
uses internal stream wrappers- phar stream wrappers for file_exists()
- fixes
array_unique()
- fixes
DateInterval
- fix: property initializer can be a conditional expression
- fix: compile-time conversion from void to NULL
v1.0.0-preview1
This release is the first preview of the upcoming version 1.0.0
. NuGet packages are versioned as 1.0.0-preview1
. See https://www.peachpie.io/getstarted for creating new projects with PeachPie. Update existing projects by changing the version accordingly.
What's new
Supported PHP 8.0 features
- Non-capturing catches
- Throw expression
match
expression::class
on variables- union types
- Trailing comma in parameter lists
- Constructor property promotion
Improvements
- base class library fixes
- parsing HEREDOC fixes
- parse_ini improvements
- XML and DOM updates
- stability improvements
- performance improvements (fewer allocations)
ASP.NET Core integration
- add support for
netstandard2.0
(netstandard2.0
,netstandard2.1
,netcoreapp3.0
,netcoreapp3.1
,net5.0
) - new API for request handling
app.UsePhp( options )
andservices.AddPhp( options )
- see https://docs.peachpie.io/net/hosting/aspnetcore/ for details