ideas:php6

This is an old revision of the document!


Author: Pierre Joye Status: Draft only

List possible changes, updates, additions for php6.

Each of them will require a RFC then, at least for important or large changes.

  • OpCache integraton
  • Unicode support
  • Improve OPcodes, compilation and runtime (perf, features, jit, fixed address jump usage, etc)
  • internals API Cleanup
  • Improve cleanup stream APIs
  • HTTP2 support (avoid our own implementation, nghttp2?)
  • Reliable, userfriendly RNG APIs (internally and userland)
  • Getter/Setter
  • Annotation Support
  • Userland APIs improvement for all PHP types (OO instead of breaking BC)
  • JIT compiler (libjit?)
  • C++ Usage
  • inclusion of the new crypto extension (maybe support other backends than openssl)
  • bundle pecl's http (add http2 support too)

OpCache integraton

Opcache has been bundled with 5.5.0. A real integration did not happen yet while stabilizing it was the highest priority.

Integration may mean to merge in the engine, partially or totally.

Questions:

  • Change opcodes to ease opcodes caching and optimization
  • Add necessary changes to support JIT compilation to native, most likely only partial part of the running code (a function/method or a portion of a function method). This part is totally undefined now, see the JIT section

Unicode support

Unicode is one of the most requested feature. Our last attempt failed and we should be very careful about how we design and implement unicode support.

UTF-16 has been shown to be a failure (also confirmed by many other projects usage). UTF-8 seems to be the best choice as default (or unique?) encoding for string values, besides binaries string (basically what we have now).

Questions:

  • Use of intl for any advanced operations, localization or conversion?
  • Support of UTF-8 for the language itself, as PHP currently allows non ascii encoding in scripts, I would recommend to stop supporting it, except in comments.
ideas/php6.1392615132.txt.gz · Last modified: 2017/09/22 13:28 (external edit)