<?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 for BKeeney Briefs</title>
	<atom:link href="http://www.bkeeneybriefs.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bkeeneybriefs.com</link>
	<description>Software Development Using REALbasic</description>
	<lastBuildDate>Fri, 12 Mar 2010 17:11:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on REALbasic and LLVM by Geoff Perlman</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-263</link>
		<dc:creator>Geoff Perlman</dc:creator>
		<pubDate>Fri, 12 Mar 2010 17:11:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-263</guid>
		<description>Project estimating is never easy and the bigger a project is, the more difficult estimating it accurately becomes. However, the last time we made a big compiler change we estimated it would take 2 years and that&#039;s exactly how long it took. Now that was changing the entire compiler. This is NOTHING like that. But the results will speak for themselves. There&#039;s really little point in debating this now.</description>
		<content:encoded><![CDATA[<p>Project estimating is never easy and the bigger a project is, the more difficult estimating it accurately becomes. However, the last time we made a big compiler change we estimated it would take 2 years and that&#8217;s exactly how long it took. Now that was changing the entire compiler. This is NOTHING like that. But the results will speak for themselves. There&#8217;s really little point in debating this now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Anony Mouse</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-262</link>
		<dc:creator>Anony Mouse</dc:creator>
		<pubDate>Fri, 12 Mar 2010 16:42:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-262</guid>
		<description>&lt;a href=&quot;#comment-261&quot; rel=&quot;nofollow&quot;&gt;@Geoff Perlman &lt;/a&gt; wrote, &quot;As for LLVM, we already have it working for RBScript which was the biggest part of the job.&quot;

90% of the job takes 10% of the time, the remaining 10% of the job takes 90% of the time.  

No offense, but REAL Software&#039;s track record hasn&#039;t been particularly stellar when it comes to estimating how long projects are going to take.</description>
		<content:encoded><![CDATA[<p><a href="#comment-261" rel="nofollow">@Geoff Perlman </a> wrote, &#8220;As for LLVM, we already have it working for RBScript which was the biggest part of the job.&#8221;</p>
<p>90% of the job takes 10% of the time, the remaining 10% of the job takes 90% of the time.  </p>
<p>No offense, but REAL Software&#8217;s track record hasn&#8217;t been particularly stellar when it comes to estimating how long projects are going to take.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Geoff Perlman</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-261</link>
		<dc:creator>Geoff Perlman</dc:creator>
		<pubDate>Fri, 12 Mar 2010 14:47:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-261</guid>
		<description>The move to Cocoa has taken a really, really long time. It&#039;s taken more than twice as long as we had originally expected. And there are a lot of factors involved with that. A big one is that a lot of modernization of the underlying code has taken place. For instance, REAL Studio started out on Classic Mac OS which handle events entirely differently from Windows or Linux. Next we supported Windows which meant adapting the event model (designed for Classic Mac OS) to Windows. Next we supported Mac OS X via Carbon (which conveniently, gave us a way to use the old event model) and finally Linux. Like Windows, Linux has a much more modern event model than Classic Mac OS. But we were still supporting Classic Mac OS so the easiest thing to do was to use the event model we already had.

Then it comes time to move to Cocoa. Trying to use the old event model requires jamming a square peg into a round hole. Since Windows and Linux have event models that are modern like Cocoa, we ripped out all the plumbing left over from the Classic Mac OS days and modernized the event model. This refactoring was expensive but worth it in the long run.

As for LLVM, we already have it working for RBScript which was the biggest part of the job. The move to LLVM is nothing like the move to Cocoa and you won&#039;t be required to deal with both of those at the same time because we will still be supporting Carbon for a while and as of today, I don&#039;t see any reason why you would be forced to use Cocoa with LLVM.

Lastly, I don&#039;t know where Bob got his information about how long it might take to get LLVM working with our debugger, but our engineers that are working on this have told me that getting the debugger working is not going to be a big job at all. It&#039;s not going to be trivial, but it&#039;s not going to be months of work either.

So don&#039;t worry about it. These are all steps in the right direction. Yes, sometimes they take longer than any of us would like but they are still progress.</description>
		<content:encoded><![CDATA[<p>The move to Cocoa has taken a really, really long time. It&#8217;s taken more than twice as long as we had originally expected. And there are a lot of factors involved with that. A big one is that a lot of modernization of the underlying code has taken place. For instance, REAL Studio started out on Classic Mac OS which handle events entirely differently from Windows or Linux. Next we supported Windows which meant adapting the event model (designed for Classic Mac OS) to Windows. Next we supported Mac OS X via Carbon (which conveniently, gave us a way to use the old event model) and finally Linux. Like Windows, Linux has a much more modern event model than Classic Mac OS. But we were still supporting Classic Mac OS so the easiest thing to do was to use the event model we already had.</p>
<p>Then it comes time to move to Cocoa. Trying to use the old event model requires jamming a square peg into a round hole. Since Windows and Linux have event models that are modern like Cocoa, we ripped out all the plumbing left over from the Classic Mac OS days and modernized the event model. This refactoring was expensive but worth it in the long run.</p>
<p>As for LLVM, we already have it working for RBScript which was the biggest part of the job. The move to LLVM is nothing like the move to Cocoa and you won&#8217;t be required to deal with both of those at the same time because we will still be supporting Carbon for a while and as of today, I don&#8217;t see any reason why you would be forced to use Cocoa with LLVM.</p>
<p>Lastly, I don&#8217;t know where Bob got his information about how long it might take to get LLVM working with our debugger, but our engineers that are working on this have told me that getting the debugger working is not going to be a big job at all. It&#8217;s not going to be trivial, but it&#8217;s not going to be months of work either.</p>
<p>So don&#8217;t worry about it. These are all steps in the right direction. Yes, sometimes they take longer than any of us would like but they are still progress.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by pj</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-260</link>
		<dc:creator>pj</dc:creator>
		<pubDate>Fri, 12 Mar 2010 13:18:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-260</guid>
		<description>Maybe the move to LLVM sounds excellent but I doubt whether they are able to do it. The transition to Cocoa looks too heavy, it takes too long. The team is getting smaller, the tasks are enormous. I have not heard about the new developers in the RS. I do not expect LLVM before 2013. I think I learn better Objective-C before the RS present stable version with support for Cocoa and LLVM...</description>
		<content:encoded><![CDATA[<p>Maybe the move to LLVM sounds excellent but I doubt whether they are able to do it. The transition to Cocoa looks too heavy, it takes too long. The team is getting smaller, the tasks are enormous. I have not heard about the new developers in the RS. I do not expect LLVM before 2013. I think I learn better Objective-C before the RS present stable version with support for Cocoa and LLVM&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Bob Keeney</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-259</link>
		<dc:creator>Bob Keeney</dc:creator>
		<pubDate>Wed, 10 Mar 2010 15:00:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-259</guid>
		<description>&lt;a href=&quot;#comment-258&quot; rel=&quot;nofollow&quot;&gt;@Geoff Perlman &lt;/a&gt; 
They weren&#039;t my estimates.  They were estimates from someone with way more knowledge about LLVM than me.  They are also reasonably familiar with RB.</description>
		<content:encoded><![CDATA[<p><a href="#comment-258" rel="nofollow">@Geoff Perlman </a><br />
They weren&#8217;t my estimates.  They were estimates from someone with way more knowledge about LLVM than me.  They are also reasonably familiar with RB.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Geoff Perlman</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-258</link>
		<dc:creator>Geoff Perlman</dc:creator>
		<pubDate>Wed, 10 Mar 2010 13:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-258</guid>
		<description>It&#039;s probably not wise to make estimates on how big of a project this is without knowing all the details.</description>
		<content:encoded><![CDATA[<p>It&#8217;s probably not wise to make estimates on how big of a project this is without knowing all the details.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Mars Saxman</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-256</link>
		<dc:creator>Mars Saxman</dc:creator>
		<pubDate>Tue, 09 Mar 2010 22:49:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-256</guid>
		<description>&lt;i&gt;In theory since RS would no longer be writing the complier shouldn’t there be less bugs as the LLVM team is much larger than the RS team and we can bet quality is very important to those LLVM folks (reading the list of LLVM users is noteworthy)?&lt;/i&gt;

RS will still be responsible for its own compiler. LLVM is not a whole compiler, but a toolkit for optimization and code generation. A compiler uses LLVM to generate code; it is only one piece of the compiler toolchain. The LLVM project RS is working on will replace the existing backend code generator components with a module that calls out to LLVM.

The LLVM code is certainly better tested than anything RS has ever produced, but I do not expect that switching to it will have any noticeable effect on the already-very-rare occurrence of backend bugs. The existing backends are a small fraction of the overall compiler size, and they are some of the most reliable modules in all of REALbasic. 

The primary thing you should expect from a switch to LLVM is that performance-sensitive code will likely perform better. The existing backends do very little in the way of optimization, while LLVM offers a wide array of well-tested optimizations. In most situations this won&#039;t matter, but if your app has some tight data-processing loop, you will probably be very happy about what LLVM  does to its performance. It is also likely that your executables will be somewhat smaller.</description>
		<content:encoded><![CDATA[<p><i>In theory since RS would no longer be writing the complier shouldn’t there be less bugs as the LLVM team is much larger than the RS team and we can bet quality is very important to those LLVM folks (reading the list of LLVM users is noteworthy)?</i></p>
<p>RS will still be responsible for its own compiler. LLVM is not a whole compiler, but a toolkit for optimization and code generation. A compiler uses LLVM to generate code; it is only one piece of the compiler toolchain. The LLVM project RS is working on will replace the existing backend code generator components with a module that calls out to LLVM.</p>
<p>The LLVM code is certainly better tested than anything RS has ever produced, but I do not expect that switching to it will have any noticeable effect on the already-very-rare occurrence of backend bugs. The existing backends are a small fraction of the overall compiler size, and they are some of the most reliable modules in all of REALbasic. </p>
<p>The primary thing you should expect from a switch to LLVM is that performance-sensitive code will likely perform better. The existing backends do very little in the way of optimization, while LLVM offers a wide array of well-tested optimizations. In most situations this won&#8217;t matter, but if your app has some tight data-processing loop, you will probably be very happy about what LLVM  does to its performance. It is also likely that your executables will be somewhat smaller.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by npalardy</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-254</link>
		<dc:creator>npalardy</dc:creator>
		<pubDate>Tue, 09 Mar 2010 03:48:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-254</guid>
		<description>When we talk about the framework there are two pieces - one written in C++ that constitutes things like FolderItems, Pictures, Graphics, and anything else that is &quot;built in to RB&quot;. There are some portions that are written in RB as well. The pieces may call into the C++ based framework por may be subclasses of things in the C++ framework - things like HTTPSockets, POP3Sockets, SMTPSockets and quite a number of others.

The &quot;Framework&quot; is all of these things - but some can be dead stripped (the stuff built in REALbasic itself) and some can&#039;t (the C++ based stuff)

The move to LLVM is, fortunately for us, something that already knows how to emit machine code for a wide variety of processors. So REAL does not need to spend time creating that. And there are other bits that LLVM includes like optimizations and the infrastructure to add many more.

What REAL has to focus on it the bits that they need to do whether they write the actual compiler or not - converting RB code into some intermediate representation (also known as the &quot;front end&quot;) This front end has to exist for any compiler - it&#039;s just a matter of what the front end turns the RB code into - currently it&#039;s one form and for LLVM it will be in LLVM&#039;s virtual instruction set (see http://llvm.org/docs/LangRef.html)

LLVM then takes that, optimizes it etc and eventually a back end portion emits real machine code from the optimized LLVM code.

Then it all gets linked - I&#039;m not sure if LLVM provides native linkers for all platforms RB targets or not. That may be something REAL needs to create - I&#039;m not that familiar with all the bits that LLVM has.</description>
		<content:encoded><![CDATA[<p>When we talk about the framework there are two pieces &#8211; one written in C++ that constitutes things like FolderItems, Pictures, Graphics, and anything else that is &#8220;built in to RB&#8221;. There are some portions that are written in RB as well. The pieces may call into the C++ based framework por may be subclasses of things in the C++ framework &#8211; things like HTTPSockets, POP3Sockets, SMTPSockets and quite a number of others.</p>
<p>The &#8220;Framework&#8221; is all of these things &#8211; but some can be dead stripped (the stuff built in REALbasic itself) and some can&#8217;t (the C++ based stuff)</p>
<p>The move to LLVM is, fortunately for us, something that already knows how to emit machine code for a wide variety of processors. So REAL does not need to spend time creating that. And there are other bits that LLVM includes like optimizations and the infrastructure to add many more.</p>
<p>What REAL has to focus on it the bits that they need to do whether they write the actual compiler or not &#8211; converting RB code into some intermediate representation (also known as the &#8220;front end&#8221;) This front end has to exist for any compiler &#8211; it&#8217;s just a matter of what the front end turns the RB code into &#8211; currently it&#8217;s one form and for LLVM it will be in LLVM&#8217;s virtual instruction set (see <a href="http://llvm.org/docs/LangRef.html)" rel="nofollow">http://llvm.org/docs/LangRef.html)</a></p>
<p>LLVM then takes that, optimizes it etc and eventually a back end portion emits real machine code from the optimized LLVM code.</p>
<p>Then it all gets linked &#8211; I&#8217;m not sure if LLVM provides native linkers for all platforms RB targets or not. That may be something REAL needs to create &#8211; I&#8217;m not that familiar with all the bits that LLVM has.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by jjb</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-253</link>
		<dc:creator>jjb</dc:creator>
		<pubDate>Mon, 08 Mar 2010 21:41:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-253</guid>
		<description>I&#039;ve read this and GP&#039;s blog about LLVM and I don&#039;t know if I understand it or not.
LLVM language possibly/probably has a relatively small number of commands.
Valid LLVM code is presumably &#039;valid&#039; for all supported platforms but you&#039;re going to need a different sequence of those instructions to produce a pleasing/meaningful result on an iphone as opposed to a PC.
So for every platform the LLVM supports RB has to enable the developer to produce a suitable sequence of LLVM language instructions for later compilation to that platform&#039;s machine language.
And this still means lots of work at level of the IDE/front-end compiler/etc?
When REAL talk about their framework is that what it is, the IDE and the front end compiler or is there more to it than that?</description>
		<content:encoded><![CDATA[<p>I&#8217;ve read this and GP&#8217;s blog about LLVM and I don&#8217;t know if I understand it or not.<br />
LLVM language possibly/probably has a relatively small number of commands.<br />
Valid LLVM code is presumably &#8216;valid&#8217; for all supported platforms but you&#8217;re going to need a different sequence of those instructions to produce a pleasing/meaningful result on an iphone as opposed to a PC.<br />
So for every platform the LLVM supports RB has to enable the developer to produce a suitable sequence of LLVM language instructions for later compilation to that platform&#8217;s machine language.<br />
And this still means lots of work at level of the IDE/front-end compiler/etc?<br />
When REAL talk about their framework is that what it is, the IDE and the front end compiler or is there more to it than that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on REALbasic and LLVM by Sh3ppard</title>
		<link>http://www.bkeeneybriefs.com/2010/03/realbasic-and-llvm/comment-page-1/#comment-252</link>
		<dc:creator>Sh3ppard</dc:creator>
		<pubDate>Mon, 08 Mar 2010 02:01:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=584#comment-252</guid>
		<description>Hi Bob, and thanks for your commentary and your free RB instructional videos -keep up the good work.

The RS move to LLVM sounds excellent but also a bit scary during the transition period; as you&#039;ve noted this is no small task.

Obviously smaller builds that also run faster is something we&#039;ve been wanting for years so this great news.



In my opinion having less bugs and more reliability in RB is more important that smaller faster builds.


Hopefully this move to LLVM also means less bugs in RB?



In theory since RS would no longer be writing the complier shouldn&#039;t there be less bugs as the LLVM team is much larger than the RS team and we can bet quality is very important to those LLVM folks (reading the list of LLVM users is noteworthy)?  

Additionally shouldn&#039;t the RS team will have more time to fix the bugs in RB unless switching to LLVM is creating more work for the REAL team?


I don&#039;t think I&#039;ve read anything about the LLVM switch reducing the RB bug count which was disappointing.

Bob can you please contribute your thoughts on this?


Thanks.</description>
		<content:encoded><![CDATA[<p>Hi Bob, and thanks for your commentary and your free RB instructional videos -keep up the good work.</p>
<p>The RS move to LLVM sounds excellent but also a bit scary during the transition period; as you&#8217;ve noted this is no small task.</p>
<p>Obviously smaller builds that also run faster is something we&#8217;ve been wanting for years so this great news.</p>
<p>In my opinion having less bugs and more reliability in RB is more important that smaller faster builds.</p>
<p>Hopefully this move to LLVM also means less bugs in RB?</p>
<p>In theory since RS would no longer be writing the complier shouldn&#8217;t there be less bugs as the LLVM team is much larger than the RS team and we can bet quality is very important to those LLVM folks (reading the list of LLVM users is noteworthy)?  </p>
<p>Additionally shouldn&#8217;t the RS team will have more time to fix the bugs in RB unless switching to LLVM is creating more work for the REAL team?</p>
<p>I don&#8217;t think I&#8217;ve read anything about the LLVM switch reducing the RB bug count which was disappointing.</p>
<p>Bob can you please contribute your thoughts on this?</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
