gsoc:2008

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
gsoc:2008 [2008/03/25 17:06]
auroraeosrose
gsoc:2008 [2008/07/20 18:18]
johannes mid-term survey
Line 47: Line 47:
 Make a tool to convert Zend bytecode into [[http://llvm.org|LLVM]] bitcode. In a first phase this could replace the Zend dispatcher/executor and in a 2nd phase it could perform some simple operations inline (while still relying on the Zend engine for non-trivial opcodes). Make a tool to convert Zend bytecode into [[http://llvm.org|LLVM]] bitcode. In a first phase this could replace the Zend dispatcher/executor and in a 2nd phase it could perform some simple operations inline (while still relying on the Zend engine for non-trivial opcodes).
 Benchmarking plus optimization opportunities exploration are a plus. Benchmarking plus optimization opportunities exploration are a plus.
 +
  
 ===== Algorithm Optimizations ===== ===== Algorithm Optimizations =====
Line 53: Line 54:
 PHP has some algorithms that aren't asymptotically optimal. E.g. some string handling functions are O(nk), although they could be implemented in O(n). Analysis of the current situation and implementation of better algorithms (along with many tests) are the job. PHP has some algorithms that aren't asymptotically optimal. E.g. some string handling functions are O(nk), although they could be implemented in O(n). Analysis of the current situation and implementation of better algorithms (along with many tests) are the job.
  
 +[NOTE: we have had MANY applications for this idea, it would be smart to submit another idea as well]
  
 ===== Implement Unicode into PHP 6 ===== ===== Implement Unicode into PHP 6 =====
Line 103: Line 105:
  
  
-===== Put Ilia's Optimizer in APC =====+ 
 +===== Make Ilia's Optimizer Production Ready =====
 //Possible mentor: Derick, Ilia.// //Possible mentor: Derick, Ilia.//
  
-APC features some optimizer interface, but there is actually very little optimizations done. Ilia has been working on an optimizer which needs to be tested, and cleaned up, and analyzed before it can be part of APC.+APC features some optimizer interface, but there is actually very little optimizations done. Ilia has been working on an optimizer which needs to be tested, and cleaned up, and analyzed before it can be part of APC. There is quite a bit of work to do here, including porting to PHP 5.3 (and HEAD). There are also other possible optimizations to be done. After working on this, you'll have a very good understanding of PHP's internals.
  
 ===== Rewrite the run-tests.php script ===== ===== Rewrite the run-tests.php script =====
-//Possible mentor: Sebastian.//+//Possible mentor: Sebastian, Travis.// 
 + 
 +**Note from Travis Swicegood:**  Why rewrite run-tests.php when it's already been done with the PHPT project.  See http://phpt.info for the project's Trac.  It still has room for improvement.  Parallel test processing is on the list for two major releases out (see http://phpt.info/ticket/12 for stubbed out info on how to do that in PHP), but if someone wants to implement it before then I'd be happy to help.  Multiple output support is already built-in, but new Reporters could definitely be added as could micro-benchmark support. 
  
 The run-tests.php script that is used to run PHP's suite of PHPT tests has grown over the years and needs to be refactored. Two areas of improvement include leveraging multi-core systems to run tests in parallel and support for micro-benchmarks in addition to tests. The run-tests.php script that is used to run PHP's suite of PHPT tests has grown over the years and needs to be refactored. Two areas of improvement include leveraging multi-core systems to run tests in parallel and support for micro-benchmarks in addition to tests.
Line 121: Line 127:
  
 ===== PhD: The PHP based Docbook renderer ===== ===== PhD: The PHP based Docbook renderer =====
-//Possible mentor: Hannes Magnusson.//+//Possible mentor: [[bjori@php.net|Hannes Magnusson]].//
  
 [[doc:phd|PhD]] is the application that is used to render both the online manual on [[http://www.php.net/manual|www.php.net]] and the [[http://php.net/download-docs|downloadable manual pages]]. [[doc:phd|PhD]] is the application that is used to render both the online manual on [[http://www.php.net/manual|www.php.net]] and the [[http://php.net/download-docs|downloadable manual pages]].
Line 135: Line 141:
  
 Just like in the Google Summer of Code 2007, proposals for PHPUnit (which participates under the umbrella of the PHP Project) projects can be submitted. As before, proposals of this kind are considered with a lower priority. Ideas can be found [[http://www.phpunit.de/wiki/Ideas|here]]. Just like in the Google Summer of Code 2007, proposals for PHPUnit (which participates under the umbrella of the PHP Project) projects can be submitted. As before, proposals of this kind are considered with a lower priority. Ideas can be found [[http://www.phpunit.de/wiki/Ideas|here]].
- 
- 
- 
- 
  
  
Line 183: Line 185:
  
 Other features missing from PHP's object orientation include delegates, return type hinting and property type hinting - as well as discrete property accessors, as opposed to <nowiki>__get/__set</nowiki> family of magic handlers.  Other features missing from PHP's object orientation include delegates, return type hinting and property type hinting - as well as discrete property accessors, as opposed to <nowiki>__get/__set</nowiki> family of magic handlers. 
 +
 +
 +===== SimpleTest : web browser and web testing in PHP =====
 +//Possible mentor: [[marcus@lastcraft.com|Marcus Baker]], [[tswicegood@gmail.com|Travis Swicegood]], [[perrick@noparking.net|Perrick Penet]].//
 +
 +SimpleTest participates under the umbrella of the PHP Project : its ideas - mainly related to its PHP web browser - can be submitted. "JavaScript powered PHP browser", "Switchable HTML parsers", "Web Form Fuzzer" and others can be found directly on the [[http://simpletest.org/en/ideas.html|SimpleTest ideas web page]].
 +
 +
 +
 +
 +
 +
 +
 +===== XDebug Profiling Web Frontend =====
 +//Possible mentor: [[davidc@php.net|David Coallier]], [[derick@php.net|Derick Rethans]]//
 +
 +Written by Derick Rethans, XDebug is the most powerful tool to help every developers and debuggers in the debugging and profiling of their algorithms, applications, classes, methods, anything related to PHP.
 +
 +XDebug can generate profiler output files that are easy to load with KCacheGrind and WinCacheGrind. However, many people do not have that installed, and all the OSX people have no tool to run the profiled file (Unless they install KDE on X and then install KCacheGrind). 
 +
 +A very elegant and simple way to resolve this "cross platform" issue is to create a Web Interface that would behave just like KCacheGrind but would not require any system installation (else than the PHP/JS/HTML/etc code itself)
 +
 +This project of course involves the creation of graphs, mathematical calculations, ajax, and of course PHP algorithms in order to display the data in a very accurate way.
 +
 +You can get start by [[http://xdebug.org|getting XDebug]] and trying it out. (See the [[http://xdebug.org/docs/profiler|profiler]] section)
 +
 +====== Evalution summary ======
 +
 +There's a summary of the GSoC mid-term evaluation survey results on http://schlueters.de/~johannes/GSoC-Survey/summary.ods
gsoc/2008.txt · Last modified: 2017/09/22 13:28 (external edit)