peachpie icon indicating copy to clipboard operation
peachpie copied to clipboard

PHP 8.0 language support tracking issue

Open jakubmisek opened this issue 5 years ago • 0 comments

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] match expression (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
  • [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!)

jakubmisek avatar Jun 03 '20 21:06 jakubmisek