<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: CPP Strikes Back</title>
	<atom:link href="http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/</link>
	<description>Taras&#039; blog on Snappy, Startup, Telemetry and other Firefox peroformance matters</description>
	<lastBuildDate>Tue, 27 Nov 2012 16:50:13 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: tglek</title>
		<link>http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/comment-page-1/#comment-1283</link>
		<dc:creator>tglek</dc:creator>
		<pubDate>Mon, 14 May 2007 16:13:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/#comment-1283</guid>
		<description><![CDATA[Detecting that CPP is moving about code is easy. However marking that for human correction isn&#039;t really viable. I can&#039;t force people to write 0 instead of NULL or nsnull in their code. 
http://mcpp.sourceforge.net/ is what I&#039;ll be integrating into elsa. I know it is possible as it has been done before, but didn&#039;t get integrated into the upstream elsa.

Regarding the second comment, squash aims to be that bridge between the ast and the source-code. It&#039;s tricky, but if I succeed, it could make C++ a lot easier to refactor.]]></description>
		<content:encoded><![CDATA[<p>Detecting that CPP is moving about code is easy. However marking that for human correction isn&#8217;t really viable. I can&#8217;t force people to write 0 instead of NULL or nsnull in their code.<br />
<a href="http://mcpp.sourceforge.net/" rel="nofollow">http://mcpp.sourceforge.net/</a> is what I&#8217;ll be integrating into elsa. I know it is possible as it has been done before, but didn&#8217;t get integrated into the upstream elsa.</p>
<p>Regarding the second comment, squash aims to be that bridge between the ast and the source-code. It&#8217;s tricky, but if I succeed, it could make C++ a lot easier to refactor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Orendorff</title>
		<link>http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/comment-page-1/#comment-1282</link>
		<dc:creator>Jason Orendorff</dc:creator>
		<pubDate>Mon, 14 May 2007 15:12:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/#comment-1282</guid>
		<description><![CDATA[Just thinking out loud here:

On the other hand, reading preprocessed code and then going back and blindly patching the source seems error-prone from the start.

I feel like I&#039;ve seen this problem before.  When I hack XML, I want to use a high-level API, but I also want round-tripping.  The high-level libraries always seem to throw away the low-level information only needed for round-tripping, like whitespace around attributes.  (Some parsers go further, irreversibly expanding entity references, throwing away comments, etc.  Your CPP problem is similar to the problem of handling entity references in XML.)

What you really need is a library that keeps the (low-level) raw source code--and can fix it up for whatever (high-level) AST changes you make.]]></description>
		<content:encoded><![CDATA[<p>Just thinking out loud here:</p>
<p>On the other hand, reading preprocessed code and then going back and blindly patching the source seems error-prone from the start.</p>
<p>I feel like I&#8217;ve seen this problem before.  When I hack XML, I want to use a high-level API, but I also want round-tripping.  The high-level libraries always seem to throw away the low-level information only needed for round-tripping, like whitespace around attributes.  (Some parsers go further, irreversibly expanding entity references, throwing away comments, etc.  Your CPP problem is similar to the problem of handling entity references in XML.)</p>
<p>What you really need is a library that keeps the (low-level) raw source code&#8211;and can fix it up for whatever (high-level) AST changes you make.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Orendorff</title>
		<link>http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/comment-page-1/#comment-1279</link>
		<dc:creator>Jason Orendorff</dc:creator>
		<pubDate>Mon, 14 May 2007 15:04:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.org/tglek/2007/05/11/cpp-strikes-back/#comment-1279</guid>
		<description><![CDATA[*delurk*

So, are you planning to write an Elkhound-based CPP for Elsa?  The word &quot;integrate&quot; makes it sound like you&#039;re going to integrate an existing CPP, and I don&#039;t understand how that will solve your problem.

I don&#039;t mean to encourage you to do the &quot;easy&quot; thing, but it&#039;s pretty easy to auto-detect this bug when it happens, right?  Just compare the .i line you *think* you&#039;re modifying against the .cpp line you&#039;re actually modifying.  So... How often does this come up?  How often would it come up if you special-cased nsnull?  Can&#039;t your tool easily detect this kind of bug and spit out error markers which a human can then review?

I don&#039;t mean to pester you, just very interested in this problem.]]></description>
		<content:encoded><![CDATA[<p>*delurk*</p>
<p>So, are you planning to write an Elkhound-based CPP for Elsa?  The word &#8220;integrate&#8221; makes it sound like you&#8217;re going to integrate an existing CPP, and I don&#8217;t understand how that will solve your problem.</p>
<p>I don&#8217;t mean to encourage you to do the &#8220;easy&#8221; thing, but it&#8217;s pretty easy to auto-detect this bug when it happens, right?  Just compare the .i line you *think* you&#8217;re modifying against the .cpp line you&#8217;re actually modifying.  So&#8230; How often does this come up?  How often would it come up if you special-cased nsnull?  Can&#8217;t your tool easily detect this kind of bug and spit out error markers which a human can then review?</p>
<p>I don&#8217;t mean to pester you, just very interested in this problem.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
