[cfe-dev] Clang comparison page

Taras Glek taras.judge at shaw.ca
Mon Dec 10 21:11:33 PST 2007

Chris Lattner wrote:
> On Dec 10, 2007, at 7:17 PM, Taras Glek wrote:
>> Chris Lattner wrote:
>>> Hi All,
>>> I whipped up this page to help answer some commonly asked questions  
>>> about how clang compares to other compilers:
>>> http://clang.llvm.org/comparison.html
>>> Comparisons like this are often very sensitive so please let me 
>>> know  if I am saying anything unfair/non-objective, or am forgetting 
>>> anything.
>> Hi Chris,
>> I think this is a fairly fair comparison. Would you mind mentioning 
>> my oink fork, pork? It addresses some of the shortcomings that you 
>> mentioned. The main differences between oink and pork are that
>> * Integrates with MCPP to allow to "accurately map from a source 
>> location in the AST to the original position before preprocessing.". 
>> Several Mozilla-specific refactoring tools are provided
>> * Is actively developed (some full-time developers)
>> * Provides a scriptable static analysis tool, Dehydra
> Sure, since Pork is still evolving, I won't go into too much detail.  
> How about including this at the end:
>     <p>Note that there is a fork of Elsa known as "Pork". It addresses 
> some of
>        these shortcomings by loosly integrating a preprocessor. This 
> allows it
>        to map from a source location in the AST to the original 
> position before
>        preprocessing, providing it better support for static analysis and
>        refactoring.  If you are interested, please see the Pork page.</p>
> From your blog, my understanding is that the preprocessor really isn't 
> integrated: it emits a .i file and a log of expansion information 
> (embedded into the source as comments?) which is then parsed by Elsa.  
> This is right?
Yes, MCPP embeds a macro expansion log into comments. I chose the 
"loose" integration in hopes that any projects that need to undo the 
preprocessor can reuse this instead of writing a preprocessor from 
scratch. Additionally, having annotated macro expansion is handy for 
debugging anything to do with macro expansions.

Your summary works for me.


More information about the cfe-dev mailing list