peachpie
peachpie copied to clipboard
PHP 8.0 language support tracking issue
Configuration:
- [x]
<LangVersion>allows to set 8.0, latest refers to 8.0, default 7.4
Language features:
- [x] Union types
- [x] syntax, mixed
- [x] type analysis, "null", nullability
- [ ] runtime type check
- [x] Attributes
- [x] new syntax
- [x] resolve CLR attributes as before
- [x] store metadata
- [x] PHP reflection
- [x] Constructor properties (https://github.com/peachpiecompiler/peachpie/commit/0ea8da8d3ebf13dd920019c815103ea2f0c58033, https://github.com/peachpiecompiler/peachpie/commit/c8f10e81933bcba819f3f4310d9b306485d4e064)
- [x] static return type
- [x]
matchexpression (https://wiki.php.net/rfc/match_expression_v2) - [ ] Nullsafe operator with short-circuit evaluation (https://wiki.php.net/rfc/nullsafe_operator)
- [ ] Named arguments (https://wiki.php.net/rfc/named_params)
- [ ] call_user_func*() and internal
PhpRoutine.Invoke(Context, PhpArray)to support named arguments - [ ] use in
ReflectionAttribute::newInstance()accordingly - [ ] Variadic functions and argument unpacking
- [ ] error when calling a virtual method that changes the parameter name of its parent
- [ ] call_user_func*() and internal
- [x] mixed type
- [x] Throw expression
- [x] Allowing ::class on objects
- [x] Non-capturing catches
- [x] Trailing comma in parameter lists
- [x] Stringable interface (https://github.com/peachpiecompiler/peachpie/commit/32d72d49fd00c84554217fe53198eaa2da4bd6f4)
Functions:
see for latest release status https://docs.peachpie.io/compatibility-status/
- [x] WeakMap
- [x] Attribute
- [x] str_contains, str_starts_with, str_ends_with
- [x] fdiv, get_resource_id
- [x] get_debug_type
- [ ] preg_last_error_msg
- [x] PhpToken
- [ ] resource to Object migration (CurlHandle, CurlMultiHandle, CurlShareHandle, GdImage, Socket, AddressInfo, openssl, XMLWriter, XMLParser)
Others:
- [ ] Calling non-static class methods statically result in a fatal error
- [ ] strict magic method signature
- [x] Locale-independent float to string casting (invariant, we can ignore current context finally!)