<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Tue, 21 May 2013 18:42:23 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Derick Rethans' Blog: More source analysis with VLD]]></title>
      <guid>http://www.phpdeveloper.org/news/14075</guid>
      <link>http://www.phpdeveloper.org/news/14075</link>
      <description><![CDATA[<p>
<i>Derick Rethans</i> has been working on some updates to a tool he's developed, <a href="http://derickrethans.nl/projects.html#vld">VLD</a>, to make it more helpful and effecting in optimizing the opcodes in your scripts and find the dead opcodes and paths. He talks about these updates in <a href="http://derickrethans.nl/more-source-analysis-with-vld.html">this recent post</a>.
</p>
<blockquote>
Recently I've been working on some new functionality to visualise all the code paths that make up each function. These new routines sit on top of the routines that do dead code analysis. These new routines sit on top of the routines that do dead code analysis. Every branch instruction (such as if, but also for and foreach) is analysed and a list of branches is created. [...] Once all the branches and their links are found, another algorithm runs to figure out which paths can be created out of all the branches.
</blockquote>
<p>
He illustrates with a few examples, showing both the command that was executed and the resulting output with the new path information of a simple test file using a "for" loop and an "if/else" conditional.
</p>]]></description>
      <pubDate>Tue, 23 Feb 2010 10:49:26 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: PHP's two-pass compiler]]></title>
      <guid>http://www.phpdeveloper.org/news/11833</guid>
      <link>http://www.phpdeveloper.org/news/11833</link>
      <description><![CDATA[<p>
While working on an issue with debugging a script of his via XDebug, <i>Derick Rethans</i> was <a href="http://derickrethans.nl/phps_twopass_compiler.php">reminded of something</a> that is an integral part of the PHP language - its two phase compiler.
</p>
<blockquote>
During the first pass, it will find out to which opcode it needs to jump in the jump instructions. However, the PHP engine (and Xdebug) expects a memory address to jump to while executing your script. In the second pass, the compiler will then go over the generated opcodes and calculate the memory address to jump to from the jumps to opcode numbers. 
</blockquote>
<p>
Because of the way that XDebug was handling the checks (with the user-defined error handler) and how the opcodes inside of PHP are handled, the user-defined handler happened in between the first and second phases and the latter run couldn't find the resources it was looking for, thus the crash.
</p>]]></description>
      <pubDate>Wed, 28 Jan 2009 12:06:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: New VLD and translit releases]]></title>
      <guid>http://www.phpdeveloper.org/news/9906</guid>
      <link>http://www.phpdeveloper.org/news/9906</link>
      <description><![CDATA[<p>
<i>Derick Rethans</i> has <a href="http://derickrethans.nl/new_vld_and_translit_releases.php">posted about</a> new versions of two PHP extensions with "very distinctive purposes" - <a href="http://derickrethans.nl/vld.php">VLD</a> and <a href="http://derickrethans.nl/translit.php">translit</a>.
</p>
<p>
VLD is for the "hardcore hackers" out there to see what's happening behind the scenes for each request made to PHP and the translit extension makes it easier to "transliterate" information into other formats (with filters like "normalize_numbers" and converting text to Chinese).
</p>
<p>
You can grab the updated version through the standard pecl interface or from <a href="http://pecl.php.net/package/translit">their</a> <a href="http://pecl.php.net/package/vld">pages</a> on the PECL site.
</p>]]></description>
      <pubDate>Thu, 03 Apr 2008 11:17:42 -0500</pubDate>
    </item>
  </channel>
</rss>
