rfc:jit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rfc:jit [2019/03/15 09:33]
dmitry
rfc:jit [2020/08/01 23:41] (current)
carusogabriel RFC was implemented in PHP 8.0
Line 1: Line 1:
 ====== PHP RFC: JIT ====== ====== PHP RFC: JIT ======
-  * Version: 0.9+  * Version: 1.0
   * Date: 2019-01-28   * Date: 2019-01-28
   * Author: Dmitry Stogov <dmitry@php.net>, Zeev Suraski <zeev@php.net>   * Author: Dmitry Stogov <dmitry@php.net>, Zeev Suraski <zeev@php.net>
-  * Status: Under Discussion+  * Status: Implemented (PHP 8.0)
   * First Published at: https://wiki.php.net/rfc/jit   * First Published at: https://wiki.php.net/rfc/jit
  
Line 404: Line 404:
 Currently we support x86 and x86_64 on POSIX platforms (tested on Linux with GCC and LVVM) and Windows (both non-ZTS and ZTS builds). We support "Hybrid" and "Call" VM with and without GCC explicit global register variables extension. Currently we support x86 and x86_64 on POSIX platforms (tested on Linux with GCC and LVVM) and Windows (both non-ZTS and ZTS builds). We support "Hybrid" and "Call" VM with and without GCC explicit global register variables extension.
 There are no any restrictions on C compiler and OS any more. There are no any restrictions on C compiler and OS any more.
- 
-===== Open Issues ===== 
-Make sure there are no open issues when the vote starts! 
  
 ===== Future Scope ===== ===== Future Scope =====
Line 414: Line 411:
 Support for JIT is more a strategic PHP question. JIT definitely requires a lot of work, but it may be actively developed only as a part of PHP, with common effort. Support for JIT is more a strategic PHP question. JIT definitely requires a lot of work, but it may be actively developed only as a part of PHP, with common effort.
  
-This project requires a 2/3+1 majority.+This project requires a 2/3+1 majority. Voting opened 2019-03-21 and closes 2019-03-28
  
 <doodle title="Include JIT into PHP 8?" auth="user" voteType="single" closed="true"> <doodle title="Include JIT into PHP 8?" auth="user" voteType="single" closed="true">
Line 422: Line 419:
  
 As PHP 7.4 is already branched and its engine is not expected to be significantly changed (consequently requiring corresponding changes to the JIT implementation), we can also consider including JIT in PHP-7.4 as an experimental feature (disabled by default), to provide early access and receive more feedback. This also requires a 2/3+1 majority. As PHP 7.4 is already branched and its engine is not expected to be significantly changed (consequently requiring corresponding changes to the JIT implementation), we can also consider including JIT in PHP-7.4 as an experimental feature (disabled by default), to provide early access and receive more feedback. This also requires a 2/3+1 majority.
 +
 +In case JIT is not included in PHP-7.4 and PHP-8 introduces language compatibility breaks (it already does), existing applications couldn't be tested with JIT without porting to PHP-8.
  
 <doodle title="Include JIT into PHP 7.4 (experimental)?" auth="user" voteType="single" closed="true"> <doodle title="Include JIT into PHP 7.4 (experimental)?" auth="user" voteType="single" closed="true">
Line 434: Line 433:
  
 ===== Implementation ===== ===== Implementation =====
-After the project is implemented, this section should contain  +Merged into PHP master by [[https://github.com/php/php-src/commit/9a06876072b9ccb023d4a14426ccb587f10882f3|9a06876072b9ccb023d4a14426ccb587f10882f3]] commit
-  - the version(s) it was merged into +
-  a link to the git commit(s) +
-  - a link to the PHP manual entry for the feature +
-  - a link to the language specification section (if any)+
  
 ===== References ===== ===== References =====
   - [[https://luajit.org/dynasm.html|DynAsm page]]   - [[https://luajit.org/dynasm.html|DynAsm page]]
   - [[https://corsix.github.io/dynasm-doc/|The Unofficial DynASM Documentation]]   - [[https://corsix.github.io/dynasm-doc/|The Unofficial DynASM Documentation]]
- 
-===== Rejected Features ===== 
-Keep this updated with features that were discussed on the mail lists. 
  
rfc/jit.1552642409.txt.gz · Last modified: 2019/03/15 09:33 by dmitry