<?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: Squashed and Compiled</title>
	<atom:link href="http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/</link>
	<description>Just another Blog.mozilla.com weblog</description>
	<lastBuildDate>Sun, 12 Feb 2012 07:38:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: rainman</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-1413</link>
		<dc:creator>rainman</dc:creator>
		<pubDate>Sun, 03 Jun 2007 04:44:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-1413</guid>
		<description>Hi,
 can any one tell me how can i modify AST in Elsa and print the modified AST as pretty print?

i have been trying to use Elsa, for a project in which i have to modify some statements which uses global variables and pretty print/regenerate the source code.

But Elsa prints always from the main source even i change the AST at runtime.
Authors email is bouncing from the main site.

Thanks.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
 can any one tell me how can i modify AST in Elsa and print the modified AST as pretty print?</p>
<p>i have been trying to use Elsa, for a project in which i have to modify some statements which uses global variables and pretty print/regenerate the source code.</p>
<p>But Elsa prints always from the main source even i change the AST at runtime.<br />
Authors email is bouncing from the main site.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yoric</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-77</link>
		<dc:creator>Yoric</dc:creator>
		<pubDate>Tue, 30 Jan 2007 13:06:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-77</guid>
		<description>Quick comment about the ML rant: I would *love* to be able to write actual code for the Mozilla platform in OCaml or Haskell. I don&#039;t mean XPCom-related stuff, for which I consider Python and JS2 will be more appropriate.

What I do mean is the actual implementation of JS or my upcoming project related to static analysis of JS code. Do you think there&#039;s any chace this might happen in any discernable future ?</description>
		<content:encoded><![CDATA[<p>Quick comment about the ML rant: I would *love* to be able to write actual code for the Mozilla platform in OCaml or Haskell. I don&#8217;t mean XPCom-related stuff, for which I consider Python and JS2 will be more appropriate.</p>
<p>What I do mean is the actual implementation of JS or my upcoming project related to static analysis of JS code. Do you think there&#8217;s any chace this might happen in any discernable future ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anders</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-46</link>
		<dc:creator>Anders</dc:creator>
		<pubDate>Fri, 05 Jan 2007 17:50:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-46</guid>
		<description>I&#039;m sorry, I did not mean to imply a criticism of Taras work. My skepticisms was solely based on my ignorance of the Mozilla code base. And I was curious as to what had changed since, some bright people, I assume, have chosen to use xpcom. But it sound as if, the clarity of hindsight have revealed unnecessary use in a specific module.

I didn&#039;t suggest that the wrappers would be created by hand. I just wondered if it was feasible to extend Taras work to the entire code base for added speed, less bugs and less verbose code while wrappers could maintain backwards compatibility with the outside world. I assumed, while speaking of things I have no knowledge, that the wrappers could be generated from the idl.</description>
		<content:encoded><![CDATA[<p>I&#8217;m sorry, I did not mean to imply a criticism of Taras work. My skepticisms was solely based on my ignorance of the Mozilla code base. And I was curious as to what had changed since, some bright people, I assume, have chosen to use xpcom. But it sound as if, the clarity of hindsight have revealed unnecessary use in a specific module.</p>
<p>I didn&#8217;t suggest that the wrappers would be created by hand. I just wondered if it was feasible to extend Taras work to the entire code base for added speed, less bugs and less verbose code while wrappers could maintain backwards compatibility with the outside world. I assumed, while speaking of things I have no knowledge, that the wrappers could be generated from the idl.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan Eich</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-45</link>
		<dc:creator>Brendan Eich</dc:creator>
		<pubDate>Fri, 05 Jan 2007 05:06:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-45</guid>
		<description>In the interest of not reinventing wheels and maximizing leverage, could GNU indent do a decent job cleaning up patched files, even with the pretty-printer&#039;s flaws? From what I hear there will be p-p fixes for Oink, but perhaps we don&#039;t need to reinvent indent?  It has lots of options.

/be</description>
		<content:encoded><![CDATA[<p>In the interest of not reinventing wheels and maximizing leverage, could GNU indent do a decent job cleaning up patched files, even with the pretty-printer&#8217;s flaws? From what I hear there will be p-p fixes for Oink, but perhaps we don&#8217;t need to reinvent indent?  It has lots of options.</p>
<p>/be</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan Eich</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-44</link>
		<dc:creator>Brendan Eich</dc:creator>
		<pubDate>Fri, 05 Jan 2007 04:54:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-44</guid>
		<description>Anders, XPCOM&#039;s best use-case is for APIs exposed by dynamically linked libraries that evolve independently.  Its overhead is negligable given low relative inter-DLL call counts.

In Gecko, XPCOM or a primordial form of it was overused inside Gecko, where there are (or should be) no DLL boundaries, for private APIs that are not usable by other, independently evolving code.  The overhead here in code space and runtime is significant (we will quantify it as we go), and deCOMtamination consists of getting rid of this bogus COM-like glue.

Sure, it&#039;s possible to implement code using canonical C++ forms and synthesize APIs &quot;on the outside&quot; -- that&#039;s an explicit goal of Mozilla 2 (see my blog).  But we don&#039;t want to do it by hand, since we have some suitable public APIs already, and too many unsuitable private COMtaminated ones, plus hundreds of thousands of lines of internal code that calls the latter private APIs.

Hence Taras&#039;s fine work based on the Oink framework.

(Taras, are you filing Elsa bugs as you go? Let me know.)

/be</description>
		<content:encoded><![CDATA[<p>Anders, XPCOM&#8217;s best use-case is for APIs exposed by dynamically linked libraries that evolve independently.  Its overhead is negligable given low relative inter-DLL call counts.</p>
<p>In Gecko, XPCOM or a primordial form of it was overused inside Gecko, where there are (or should be) no DLL boundaries, for private APIs that are not usable by other, independently evolving code.  The overhead here in code space and runtime is significant (we will quantify it as we go), and deCOMtamination consists of getting rid of this bogus COM-like glue.</p>
<p>Sure, it&#8217;s possible to implement code using canonical C++ forms and synthesize APIs &#8220;on the outside&#8221; &#8212; that&#8217;s an explicit goal of Mozilla 2 (see my blog).  But we don&#8217;t want to do it by hand, since we have some suitable public APIs already, and too many unsuitable private COMtaminated ones, plus hundreds of thousands of lines of internal code that calls the latter private APIs.</p>
<p>Hence Taras&#8217;s fine work based on the Oink framework.</p>
<p>(Taras, are you filing Elsa bugs as you go? Let me know.)</p>
<p>/be</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anders</title>
		<link>http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/comment-page-1/#comment-41</link>
		<dc:creator>Anders</dc:creator>
		<pubDate>Thu, 04 Jan 2007 12:26:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mozilla.com/tglek/2007/01/03/squashed-and-compiled/#comment-41</guid>
		<description>In the presentation, you posted in your &quot;Static Analysis&quot; post on Dec 5th, there are a lot of reasons why you would want to *not* use xpcom. But I would guess that there also are some reasons why you *would* want to use xpcom. I guess you would use xpcom if you expected the runtime to be changed from out under you and wanted your app to continue running with no recompilation. Now it apparently have been decided that at least in some cases this separation isn&#039;t needed. But are there some sort of published policy or list of objects that should or should not use xpcom?

Wouldn&#039;t it be possible to implement all classes using C++ features (ie. with exceptions, namespaces and without xpcom refcounting, but perhaps with GC) and just have some auto generated wrappers that would add the backwards compatible xpcom facade (eg. by inheriting from both the xpcom interface and the implementation, catching the exceptions and return error codes instead). That way you wouldn&#039;t need to deCom and all usages in one monolithic patch, but the object could be deComed first and the implementations later as needed. Also in this way every class could be deComed leaving no risk of overdeComification.

But since I don&#039;t quite know the justification or use case for xpcom in mozilla, I find this decomification quite scary.</description>
		<content:encoded><![CDATA[<p>In the presentation, you posted in your &#8220;Static Analysis&#8221; post on Dec 5th, there are a lot of reasons why you would want to *not* use xpcom. But I would guess that there also are some reasons why you *would* want to use xpcom. I guess you would use xpcom if you expected the runtime to be changed from out under you and wanted your app to continue running with no recompilation. Now it apparently have been decided that at least in some cases this separation isn&#8217;t needed. But are there some sort of published policy or list of objects that should or should not use xpcom?</p>
<p>Wouldn&#8217;t it be possible to implement all classes using C++ features (ie. with exceptions, namespaces and without xpcom refcounting, but perhaps with GC) and just have some auto generated wrappers that would add the backwards compatible xpcom facade (eg. by inheriting from both the xpcom interface and the implementation, catching the exceptions and return error codes instead). That way you wouldn&#8217;t need to deCom and all usages in one monolithic patch, but the object could be deComed first and the implementations later as needed. Also in this way every class could be deComed leaving no risk of overdeComification.</p>
<p>But since I don&#8217;t quite know the justification or use case for xpcom in mozilla, I find this decomification quite scary.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

