ideas:php6:engine

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
Last revisionBoth sides next revision
ideas:php6:engine [2014/03/05 15:01] jpauliideas:php6:engine [2014/08/15 13:41] – PHP6 -> PHP 7 derick
Line 1: Line 1:
-==== PHP6 ZendEngine thoughts ====+==== PHP 7 ZendEngine thoughts ====
  
 Note: Note:
Line 10: Line 10:
   * number of contributors   * number of contributors
   * timetable (2 years development)   * timetable (2 years development)
- 
- 
  
   * Cleanup API and dead code   * Cleanup API and dead code
Line 17: Line 15:
     * Clear conventions between macros and functions     * Clear conventions between macros and functions
     * Clear those     * Clear those
 +
 +  * Update dependencies.
 +    * Notably support Bison 3.0+.
  
   * Define a true C/C++ API   * Define a true C/C++ API
Line 24: Line 25:
   * Keep the extension-based build. Smaller pieces, better code maintaining   * Keep the extension-based build. Smaller pieces, better code maintaining
     * Merge SPL to the engine (at least, deep engine related stuff in SPL, such as the exception classes, the iterators and the functions like class_parents())     * Merge SPL to the engine (at least, deep engine related stuff in SPL, such as the exception classes, the iterators and the functions like class_parents())
 +    * Rework Phar. Phar has too many engine hooks and voodoos, this must be rethought
  
   * Ehance extensions power   * Ehance extensions power
     * Keep distinction between zend extensions and php extensions ? https://wiki.php.net/internals/extensions     * Keep distinction between zend extensions and php extensions ? https://wiki.php.net/internals/extensions
-    * Use of other engine hooks ? other VM hooks ?+    * Use of other engine hooks ? other VM hooks ? (object store hooks, hashtable hooks ..? ) 
 +    * Remove old PHP4 support in ext code 
 +    * Refactor error handler for extensions to be able to stack them like zend_execute
  
   * VM   * VM
     * Executor rewrite     * Executor rewrite
-      * JIT executor+      * JIT executor (http://llvm.org/devmtg/2008-08/Lopes_PHP-JIT-InTwoDays.pdf)
       * Threaded VM       * Threaded VM
          * IO threads ?          * IO threads ?
Line 42: Line 46:
     * OPCache integration     * OPCache integration
     * OPcode binary data based compiler (phalanger, phpcompiler.org, bcompiler, roadsend)     * OPcode binary data based compiler (phalanger, phpcompiler.org, bcompiler, roadsend)
 +    * Create a flag to prevent separation of arguments in function calls ?
  
   * Arrays/Objects struct data sharing   * Arrays/Objects struct data sharing
Line 54: Line 59:
     * Improve DTrace usage     * Improve DTrace usage
     * Give Linux process-probes a try (SystempTap, perf, OProfile)     * Give Linux process-probes a try (SystempTap, perf, OProfile)
 +    * Add more debug level (we already have bunch of macros, such as "AGRESSIVE_DEBUG")
  
   * See also   * See also
     * [[ideas/php6|Global PHP6 ideas]]     * [[ideas/php6|Global PHP6 ideas]]
 +    * http://hg.python.org/cpython/file/
 +    * http://morepypy.blogspot.fr/2009/03/applying-tracing-jit-to-interpreter.html
ideas/php6/engine.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1