rfc:jit
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:jit [2019/02/06 09:49] – dmitry | rfc:jit [2020/08/01 23:41] (current) – RFC was implemented in PHP 8.0 carusogabriel | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: JIT ====== | ====== PHP RFC: JIT ====== | ||
- | * Version: | + | * Version: |
* Date: 2019-01-28 | * Date: 2019-01-28 | ||
* Author: Dmitry Stogov < | * Author: Dmitry Stogov < | ||
- | * Status: | + | * Status: |
* First Published at: https:// | * First Published at: https:// | ||
Line 27: | Line 27: | ||
When enabled, native code of PHP files is stored in an additional region of the OPcache shared memory and op_array-> | When enabled, native code of PHP files is stored in an additional region of the OPcache shared memory and op_array-> | ||
- | We use DynAsm (developed for LuaJIT project) for generation of native code. It's a very lightweight and advanced tool, but does assume good, and very low-level development knowledge of target assembler languages. | + | We use DynAsm (developed for LuaJIT project) for generation of native code. It's a very lightweight and advanced tool, but does assume good, and very low-level development knowledge of target assembler languages. |
PHP JIT doesn' | PHP JIT doesn' | ||
Line 401: | Line 401: | ||
</ | </ | ||
- | ===== Open Issues | + | ===== State and compatibility |
- | Make sure there are no open issues when the vote starts! | + | 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 " |
+ | There are no any restrictions on C compiler and OS any more. | ||
===== Future Scope ===== | ===== Future Scope ===== | ||
Line 408: | Line 409: | ||
===== Proposed Voting Choices ===== | ===== Proposed Voting Choices ===== | ||
- | This project requires a 50%+1 majority. | + | 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. Voting opened 2019-03-21 and closes 2019-03-28. | ||
<doodle title=" | <doodle title=" | ||
Line 415: | Line 418: | ||
</ | </ | ||
- | 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), | + | 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), |
+ | |||
+ | In case JIT is not included in PHP-7.4 and PHP-8 introduces language compatibility breaks (it already does), existing applications couldn' | ||
<doodle title=" | <doodle title=" | ||
Line 428: | Line 433: | ||
===== Implementation ===== | ===== Implementation ===== | ||
- | After the project is implemented, | + | Merged |
- | - the version(s) it was merged | + | |
- | | + | |
- | - a link to the PHP manual entry for the feature | + | |
- | - a link to the language specification section (if any) | + | |
===== References ===== | ===== References ===== | ||
- [[https:// | - [[https:// | ||
- [[https:// | - [[https:// | ||
- | |||
- | ===== Rejected Features ===== | ||
- | Keep this updated with features that were discussed on the mail lists. | ||
rfc/jit.1549446561.txt.gz · Last modified: 2019/02/06 09:49 by dmitry