rfc:jit-ir

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:jit-ir [2023/09/21 06:05] – Change status to "Under Discussion" dmitryrfc:jit-ir [2023/10/24 09:43] (current) – Updated "Implemenetation" section dmitry
Line 1: Line 1:
 ====== PHP RFC: A new JIT implementation based on IR Framework ====== ====== PHP RFC: A new JIT implementation based on IR Framework ======
-  * Version: 0.9+  * Version: 1.0
   * Date: 2023-09-20   * Date: 2023-09-20
   * Author: Dmitry Stogov, dmitry@php.net   * Author: Dmitry Stogov, dmitry@php.net
-  * Status: Under Discussion+  * Status: Accepted
   * First Published at: http://wiki.php.net/rfc/php-ir   * First Published at: http://wiki.php.net/rfc/php-ir
  
Line 29: Line 29:
 At the current state the PR doesn't remove the sources of the old JIT implementation. It is possible to switch to the old implementation by configuring PHP with **--disable-opcache-jit-ir**. At the current state the PR doesn't remove the sources of the old JIT implementation. It is possible to switch to the old implementation by configuring PHP with **--disable-opcache-jit-ir**.
  
-JIT is a quite complex subsystem. Its first implemention will likely have bugs, but I am confident that these can be addressed. We have more time to fix potential issues, the sooner this proposal passes, and the patch is merged.+JIT is a quite complex subsystem. Its first implementation will likely have bugs, but I am confident that these can be addressed. We have more time to fix potential issues, the sooner this proposal passes, and the patch is merged.
  
-The main goal of a separate IR Framework development is the collaboration with other compiler experts (sharing expertise, contribution, etc.). +The main goal of a separate IR Framework development is the collaboration with other compiler experts (sharing expertise, contribution, etc.). I'm doing my best to make the IR project interesting outside the PHP world and involve others. In case of success, this will reduce the PHP "bus-factor".
  
 The necessary part of the IR Framework is embedded into the PHP source tree, and won't introduce any new external dependencies. The necessary part of the IR Framework is embedded into the PHP source tree, and won't introduce any new external dependencies.
  
-The details of the IR framework are complex, and I am working on a presentation with explanations to publish soonI have already shared this with a few core PHP developers     +The details of the IR framework are complex. This [[https://www.researchgate.net/publication/374470404_IR_JIT_Framework_a_base_for_the_next_generation_JIT_for_PHP|presentation]] explains design ideas and makes overview of the most important implementaion details.
  
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
Line 118: Line 118:
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
  
-Merge the new JIT implementation into PHP master?+Voting opened 2023-10-06 and closes 2023-10-19. 
 + 
 +<doodle title="Merge the new JIT implementation into PHP master?" auth="user" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle> 
 + 
 + 
 +Secondary vote: Should we keep the old JIT implementation for a while or remove it right after merge? 
 + 
 +Note, that old implementation is not going to be tested (by CI) and we can't guarantee its work anyway. 
 + 
 +<doodle title="Remove the old JIT implementation right after merging the new one?" auth="user" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle> 
  
 ===== Patches and Tests ===== ===== Patches and Tests =====
Line 127: Line 143:
 ===== Implementation ===== ===== Implementation =====
  
-After the project is implemented, this section should contain  +   - merged into master via 25cb2a40d640b64f8881a894f2247d46a781ef75 
- +   old JIT implementation is removed via be275433d936e41d95b2fd656464bcc4d7138b76
-  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 =====
rfc/jit-ir.1695276315.txt.gz · Last modified: 2023/09/21 06:05 by dmitry