mirror of
https://github.com/php/web-php.git
synced 2026-04-01 12:12:16 +02:00
183 lines
8.8 KiB
PHP
183 lines
8.8 KiB
PHP
<?php
|
|
// $Id$
|
|
$_SERVER['BASE_PAGE'] = 'ideas.php';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc';
|
|
site_header("SoC Ideas");
|
|
?>
|
|
|
|
<h1>Ideas for Google Summer of Code Projects</h1>
|
|
|
|
<p>Here you'll find a couple of ideas for Google Summer of Code projects. This list is not exhaustive and you may
|
|
propose any "crazy" idea you may have though.</p>
|
|
|
|
<p>Before you submit your proposal, you are encouraged to contact the possible mentors for the project you are applying.
|
|
If the project hasn't any mentor assigned or if you are submiting an off-list project, please contact one of our
|
|
<a href="/mailing-lists.php">mailing lists</a> to discuss the proposal before submiting it.</p>
|
|
|
|
<p>If your project is to be written in PHP, please make sure you read the
|
|
<a href="http://pear.php.net/manual/en/standards.php">PEAR Coding Standards</a> when applying.</p>
|
|
|
|
<p>If you are applying for a project in the PHP code itself (in C), you may find useful the PHP hackers guide, which
|
|
also includes our C coding standards (TBD).</p>
|
|
|
|
<p>Your proposal should include the following:</p>
|
|
<ul>
|
|
<li>Name and e-mail</li>
|
|
<li>Detailed description of what you intent to do including, if possible, a list of quantifiable results</li>
|
|
<li>Project Schedule: How long will the project take? When can you begin work?</li>
|
|
<li>Availability: How many hours per week can you spend working on this? What other obligations do you have this summer?</li>
|
|
<li>Bio: Who are you? What makes you the best person to work on this project?</li>
|
|
</ul>
|
|
|
|
<hr/>
|
|
<p> </p>
|
|
|
|
<a name="ze"></a>
|
|
<h2>Zend Engine</h2>
|
|
|
|
<h3>New Reference Counting Implementation</h3>
|
|
<p><strong>Description</strong>: The Zend Engine, the compiling and interpreting kernel of PHP, uses
|
|
<a href="http://en.wikipedia.org/wiki/Reference_counting">reference counting</a> to keep track of which
|
|
objects are no longer referenced and thus can be destroyed. A major weakness of the Zend Engine's
|
|
current reference counting implementation is that it cannot detect reference cycles, that is objects
|
|
that reference each other in a circular graph structure which is not referenced itself from outside the
|
|
circle.<br/>The work would involve implementing a reference counting algorithm that can cope with
|
|
circular references, for instance the one described <a href="http://www.research.ibm.com/people/d/dfb/papers/Bacon01Concurrent.pdf">here</a>
|
|
and integrate it into the Zend Engine.<br/>
|
|
<strong>Possible mentor(s)</strong>: <a href="mailto:derick@php.net">Derick Rethans</a></p>
|
|
|
|
<hr/>
|
|
|
|
<a name="qa"></a>
|
|
<h2>Quality Assurance</h2>
|
|
|
|
<h3>Code Coverage Improvement</h3>
|
|
<p><strong>Description</strong>: PHP regression test suite code coverage could be better. Improving the coverage means creating tests that will solicit parts of code currently not activated by the existing tests.<br/>
|
|
<strong>Possible mentor(s)</strong>: (not yet assigned)</p>
|
|
|
|
<h3>Automatic Code Checker</h3>
|
|
<p><strong>Description</strong>: The PHP API has a couple of varargs functions that are error prone and may easily cause segfaults
|
|
in PHP, especially on less used platforms. The list of such functions include zend_parse_parameters*(), zend_error() and a few
|
|
others. Our current check script is made in PHP and is regex based. It is available at <a href="http://cvs.php.net/viewvc.cgi/php-src/scripts/dev/check_parameters.php?view=markup">http://cvs.php.net/viewvc.cgi/php-src/scripts/dev/check_parameters.php?view=markup</a>. This script is difficult to maintain and generates way too many false-positives.
|
|
The work would involve constructing or probably reusing a parse tree for the PHP code and its extensions (mixed C/C++) and generate
|
|
error messages for the problems found. A sample output of the script mentioned is available at: <a
|
|
href="http://gcov.php.net/viewer.php?version=PHP_HEAD&func=params">http://gcov.php.net/viewer.php?version=PHP_HEAD&func=params</a>.<br/>
|
|
<strong>Possible mentor(s)</strong>: <a href="mailto:nlopess@php.net">Nuno Lopes</a></p>
|
|
|
|
<hr/>
|
|
|
|
<a name="docs"></a>
|
|
<h2>Documentation</h2>
|
|
|
|
<h3><a href="http://wiki.phpdoc.info/LiveDocs">Livedocs</a></h3>
|
|
<p><strong>Description</strong>:
|
|
Livedocs is a tool to display DocBook XML files in a web browser on the fly,
|
|
without the need of building all HTML target files first. It was started as
|
|
a project to simplify the task of PHP Manual contributors, to check their
|
|
changes as they will show up in the documentation. To use Livedocs, a little
|
|
preprocessing work is needed, but after that, the script collection even works
|
|
on modified XML files. <br/>
|
|
|
|
The main advantage of Livedocs for the PHP Manual is the dramatically reduced
|
|
time-to-live interval, since modified XML files can be pushed to servers
|
|
without the need of building all the HTML files even for small changes.
|
|
Additionally to this, Livedocs also does a good job of providing search
|
|
results for keywords found in the manual, as well as keeping track of
|
|
relations of translated files to their English equivalents, notifying
|
|
readers, if they read a seriously outdated translation.
|
|
<br/>
|
|
Possible projects on livedocs include: improve docbook compatibility,
|
|
implement a browser-based docbook editor (maybe based on an existing one:
|
|
<a href="http://summerofcode.wordpress.com/2006/09/29/beacon-02/">[1]</a>
|
|
<a href="http://bitfluxeditor.org/">[2]</a>, ...),
|
|
make livedocs more generic (i.e. not so phpdoc specific), etc... (your imagination is the limit!)
|
|
<br/>
|
|
<strong>Possible mentor(s)</strong>: (not yet assigned)</p>
|
|
|
|
<hr/>
|
|
|
|
<a name="other"></a>
|
|
<h2>Other</h2>
|
|
|
|
<h3>Support for Mutation Testing in PHPUnit</h3>
|
|
<p><strong>Description</strong>: <a href="http://en.wikipedia.org/wiki/Mutation_testing">Mutation Testing</a>,
|
|
or Automated Error Seeding, is an approach where the testing tool makes some
|
|
change to the tested code, runs the tests, and if the tests pass displays a
|
|
message saying what it changed. This approach is different than code coverage
|
|
analysis, because it can find code that is executed by the running of tests but
|
|
not actually tested. It is not meant as a replacement for code coverage analysis,
|
|
but complementary.<br/>More information can be found
|
|
<a href="http://www.phpunit.de/wiki/Ideas#SupportforMutationTesting">here</a>.
|
|
<br/><br/><strong>Possible mentor(s)</strong>: <a href="mailto:sebastian@php.net">Sebastian Bergmann</a></p>
|
|
|
|
<h3>PHP 5 Core Refactory Of Jaws Project</h3>
|
|
<h3><a href="http://www.jaws-project.com">Jaws Project</a></h3>
|
|
<p><strong>Description</strong>:
|
|
The idea is to completely revamp the internals of Jaws by moving it to PHP 5 and fully exploit it's bells
|
|
and whistles to create a better developer and user experience.<br/>
|
|
|
|
It would not only be a E_STRICT update but a full usage of the various new extension and in addition it might
|
|
sport external libs from PEAR, eZC, Zend and others where it makes sense
|
|
|
|
<br/><br/><strong>Possible mentor(s)</strong>: <a href="mailto:davidc@php.net">David Coallier</a>, <a href="mailto:dufuz@php.net">Helgi Þormar Þorbjörnsson</a> </p>
|
|
|
|
<h3>Debugger front-end for Xdebug</h3>
|
|
<p><strong>Description</strong>: Xdebug is finally nearing version 2 and the
|
|
only really important thing missing is a good and simple client that can speak
|
|
the DBGp to interact with Xdebug. This project would mean that a student
|
|
writes a simple GUI application (QT/KDE/GTK/Gnome) that can do this.<br/>
|
|
|
|
This GUI application should be as standalone as possible, run on Linux (and
|
|
Windows) and implement the full DBGp specification, including setting
|
|
breakpoints, seeing stack traces, inspecting variables and stepping through
|
|
code. Editting scripts in the interface should not even be possible.<br/>
|
|
|
|
<br/>More information can be found about the protocol
|
|
<a href="http://xdebug.org/docs-dbgp.php">here</a>.
|
|
<br/><br/><strong>Possible mentor(s)</strong>: <a href="mailto:derick@php.net">Derick Rethans</a></p>
|
|
|
|
|
|
<!--
|
|
Note: SoC 2006 Ideas. these need to be either ported to the "new style" or cleaned up
|
|
|
|
<a name="php"></a>
|
|
<h4>Core PHP</h4>
|
|
|
|
<ul>
|
|
<li>Unicode conversion of all internal functions for PHP 6</li>
|
|
</ul>
|
|
|
|
<a name="pear"></a>
|
|
<h4>Pear</h4>
|
|
|
|
<ul>
|
|
<li>PHP 4 to PHP 5 (and PHP 6?) conversion script</li>
|
|
<li>Expand PEAR::MDB2_Schema to cover all aspects of schema evolution
|
|
<a href="http://pooteeweet.org/files/phptek06/database_schema_deployment.pdf">[1]</a>
|
|
</li>
|
|
<li>New package to read, create or modify OpenDocument files</li>
|
|
<li>Create a 5.1+ port of MDB2</li>
|
|
</ul>
|
|
|
|
<a name="pecl"></a>
|
|
<h4>Pecl</h4>
|
|
|
|
<ul>
|
|
<li>Transaction Manager - Possible mentor Andi</li>
|
|
<li>OCR Extension - Possible mentor Andi</li>
|
|
<li>Script pre-processor - e.g. Support for C-like #define statements</li>
|
|
<li>Named Pipe stream protocol transport</li>
|
|
<li>SCTP stream protocol transport</li>
|
|
</ul>
|
|
|
|
<a name="other"></a>
|
|
<h4>Other</h4>
|
|
|
|
<ul>
|
|
<li>re2php - Add PHP Support to <a href="http://re2c.sf.net/">re2c</a></li>
|
|
<li>ANTLR - Add PHP Code Generation Target to <a href="http://www.antlr.org/v3/index.html">ANTLR 3</a>
|
|
</ul>
|
|
-->
|
|
|
|
<?php site_footer(); ?>
|