<?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 Found</title>
	<atom:link href="http://www.pale.org/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>http://www.pale.org</link>
	<description>Jim Finnis&#039; personal blog</description>
	<lastBuildDate>Mon, 13 May 2013 00:37:21 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>Comment on post 3514 by Chef Robbie</title>
		<link>http://www.pale.org/?p=3514#comment-4663</link>
		<dc:creator>Chef Robbie</dc:creator>
		<pubDate>Mon, 13 May 2013 00:37:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=3514#comment-4663</guid>
		<description><![CDATA[It was Sergeant Wilson who had an Auntie Lettice.]]></description>
		<content:encoded><![CDATA[<p>It was Sergeant Wilson who had an Auntie Lettice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on History by Jim</title>
		<link>http://www.pale.org/?p=5736#comment-4423</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Sun, 05 Feb 2012 22:09:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5736#comment-4423</guid>
		<description><![CDATA[Pedantry.]]></description>
		<content:encoded><![CDATA[<p>Pedantry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on History by Chris</title>
		<link>http://www.pale.org/?p=5736#comment-4422</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Fri, 03 Feb 2012 10:11:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5736#comment-4422</guid>
		<description><![CDATA[Thats not entirely true as not everyone starts at the same age :P.]]></description>
		<content:encoded><![CDATA[<p>Thats not entirely true as not everyone starts at the same age :P.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on History by Dave</title>
		<link>http://www.pale.org/?p=5736#comment-4421</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Thu, 02 Feb 2012 23:57:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5736#comment-4421</guid>
		<description><![CDATA[Well, I was 8 and 2 months, but yeah, OK. :D]]></description>
		<content:encoded><![CDATA[<p>Well, I was 8 and 2 months, but yeah, OK. :D</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on post 169 by Jim</title>
		<link>http://www.pale.org/?p=169#comment-4399</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Mon, 05 Dec 2011 22:56:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=169#comment-4399</guid>
		<description><![CDATA[Interesting. Blimey, I&#039;d forgotten all about this. I hope I don&#039;t stir him up again...]]></description>
		<content:encoded><![CDATA[<p>Interesting. Blimey, I&#8217;d forgotten all about this. I hope I don&#8217;t stir him up again&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on post 169 by Neil</title>
		<link>http://www.pale.org/?p=169#comment-4398</link>
		<dc:creator>Neil</dc:creator>
		<pubDate>Mon, 05 Dec 2011 19:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=169#comment-4398</guid>
		<description><![CDATA[Funny looking back at all this 5 years on. The reason for the sacking was verbal abuse of a menber of the team, and hacking into the email accounts of other team members. He believed that others in the team were plotting against him and got increasingly volatile and aggresive in work.  He was suspended and then sacked by the Head of the Library. He has kept a pretty low profile since.]]></description>
		<content:encoded><![CDATA[<p>Funny looking back at all this 5 years on. The reason for the sacking was verbal abuse of a menber of the team, and hacking into the email accounts of other team members. He believed that others in the team were plotting against him and got increasingly volatile and aggresive in work.  He was suspended and then sacked by the Head of the Library. He has kept a pretty low profile since.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ARTOS &#8211; Audio Real-Time Operating System by Paul Norris</title>
		<link>http://www.pale.org/?p=5669#comment-4377</link>
		<dc:creator>Paul Norris</dc:creator>
		<pubDate>Thu, 13 Oct 2011 17:16:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5669#comment-4377</guid>
		<description><![CDATA[I&#039;ve got a bound copy of a paper that came with my PP10 called &#039;Pythagoras - Software and System Design&#039; by Charles Francis. Its actually marked as confidential. I guess this is the paper you&#039;re talking about?

Unfortunately the backup battery ran out on my unit so the software was deleted from the RAM, rendering it far and away the most expensive two units of dead electronics i&#039;ve ever owned. I don&#039;t have the installation floppies and TL Audio support department deny ever having produced this machine, which is useful of them.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve got a bound copy of a paper that came with my PP10 called &#8216;Pythagoras &#8211; Software and System Design&#8217; by Charles Francis. Its actually marked as confidential. I guess this is the paper you&#8217;re talking about?</p>
<p>Unfortunately the backup battery ran out on my unit so the software was deleted from the RAM, rendering it far and away the most expensive two units of dead electronics i&#8217;ve ever owned. I don&#8217;t have the installation floppies and TL Audio support department deny ever having produced this machine, which is useful of them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Lana: more progress by Andrew Tindall</title>
		<link>http://www.pale.org/?p=5704#comment-4375</link>
		<dc:creator>Andrew Tindall</dc:creator>
		<pubDate>Tue, 13 Sep 2011 17:29:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5704#comment-4375</guid>
		<description><![CDATA[how long before jimscript is powerful enough to be used to create a sentient machine that tries to destroy humanity?]]></description>
		<content:encoded><![CDATA[<p>how long before jimscript is powerful enough to be used to create a sentient machine that tries to destroy humanity?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Lana: docs and argh! by Jim</title>
		<link>http://www.pale.org/?p=5692#comment-4360</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Mon, 08 Aug 2011 12:39:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5692#comment-4360</guid>
		<description><![CDATA[Aha, it&#039;s more complicated than that. It&#039;s already sort-of doing the right thing:
&lt;code&gt;
void setPropRef(Object *o, unsigned int propid) {
    clr(); // the offending line, clears the previous value
    d.o = o;
    d2.u = id;
    type = PropRef;
    incRef();
}
&lt;/code&gt;
The above code is called on the stack top value - the first thing it does is clr(), which clears the existing value, dereferencing the object and so deleting it. The incRef() later comes a little too late.]]></description>
		<content:encoded><![CDATA[<p>Aha, it&#8217;s more complicated than that. It&#8217;s already sort-of doing the right thing:<br />
<code><br />
void setPropRef(Object *o, unsigned int propid) {<br />
    clr(); // the offending line, clears the previous value<br />
    d.o = o;<br />
    d2.u = id;<br />
    type = PropRef;<br />
    incRef();<br />
}<br />
</code><br />
The above code is called on the stack top value &#8211; the first thing it does is clr(), which clears the existing value, dereferencing the object and so deleting it. The incRef() later comes a little too late.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Lana: docs and argh! by Jim</title>
		<link>http://www.pale.org/?p=5692#comment-4359</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Mon, 08 Aug 2011 09:51:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.pale.org/?p=5692#comment-4359</guid>
		<description><![CDATA[fabs(): the problem is the generated code - here&#039;s the trace:

&lt;code&gt;Lana System 0.0 command line interpreter
. create().foo=1
EXECUTE and clear
 0 EXEC  8dc76e8   64: startestmt (0)                	  &lt;&lt;create().foo=1&gt;&gt;	
 0 EXEC  8dc76ec   10:     varref (create) (131082)  	  &lt;&lt;create().foo=1&gt;&gt;	
 0 EXEC  8dc76f0   11:       call (0)                	  &lt;&lt;create().foo=1&gt;&gt;	r:NF:08dccd48 
 0 EXEC  8dc76f4   15:    propref (foo) (74)         	  &lt;&lt;create().foo=1&gt;&gt;	O:8dccf28/(ct1) 
 0 EXEC  8dc76f8   53:      immed (1)                	  &lt;&lt;create().foo=1&gt;&gt;	PR:8dccf28/74 
 0 EXEC  8dc76fc   14:        set (0)                	  &lt;&lt;create().foo=1&gt;&gt;	PR:8dccf28/74 I:1 
Segmentation fault
&lt;/code&gt;

This is what happens:
&lt;ul&gt;
	&lt;li&gt;varref(create) puts a reference to the &quot;create&quot; global on the stack&lt;/li&gt;
	&lt;li&gt;call dereferences it and calls the value- a native function to create an object. This gives us an object with a refct of 1 (as we can see from the stack trace)&lt;/li&gt;
	&lt;li&gt;propref(foo) stacks a reference to the &quot;foo&quot; property in the object on top of the stack (the property doesn&#039;t need to be set in the object, essentially the value is just a pointer to the object and the int property code)&lt;/li&gt;
	&lt;li&gt;immed(1) stacks the integer value 1&lt;/li&gt;
	&lt;li&gt;set should store the value on top of the stack into the reference one below. And this is where it all goes wrong. What happens if I look at the refcounting is that propref overwrites the value on top of the stack with a property reference, decrementing the reference count on the object that was stored in that slot. That&#039;s correct. Unfortunately that causes the object to be deleted, because it&#039;s refcount was just 1. What should happen is that the property reference also constitutes a reference, so the ref count should be incremented on the object before the overwrite. I think I&#039;m  not quite correctly accounting for proprefs as references. &lt;/li&gt;
&lt;/ul&gt;
I&#039;ll look at it when I&#039;ve got a minute.]]></description>
		<content:encoded><![CDATA[<p>fabs(): the problem is the generated code &#8211; here&#8217;s the trace:</p>
<p><code>Lana System 0.0 command line interpreter<br />
. create().foo=1<br />
EXECUTE and clear<br />
 0 EXEC  8dc76e8   64: startestmt (0)                	  < <create().foo=1>><br />
 0 EXEC  8dc76ec   10:     varref (create) (131082)  	  < <create().foo=1>><br />
 0 EXEC  8dc76f0   11:       call (0)                	  < <create().foo=1>>	r:NF:08dccd48<br />
 0 EXEC  8dc76f4   15:    propref (foo) (74)         	  < <create().foo=1>>	O:8dccf28/(ct1)<br />
 0 EXEC  8dc76f8   53:      immed (1)                	  < <create().foo=1>>	PR:8dccf28/74<br />
 0 EXEC  8dc76fc   14:        set (0)                	  < <create().foo=1>>	PR:8dccf28/74 I:1<br />
Segmentation fault<br />
</code></p>
<p>This is what happens:</p>
<ul>
<li>varref(create) puts a reference to the &#8220;create&#8221; global on the stack</li>
<li>call dereferences it and calls the value- a native function to create an object. This gives us an object with a refct of 1 (as we can see from the stack trace)</li>
<li>propref(foo) stacks a reference to the &#8220;foo&#8221; property in the object on top of the stack (the property doesn&#8217;t need to be set in the object, essentially the value is just a pointer to the object and the int property code)</li>
<li>immed(1) stacks the integer value 1</li>
<li>set should store the value on top of the stack into the reference one below. And this is where it all goes wrong. What happens if I look at the refcounting is that propref overwrites the value on top of the stack with a property reference, decrementing the reference count on the object that was stored in that slot. That&#8217;s correct. Unfortunately that causes the object to be deleted, because it&#8217;s refcount was just 1. What should happen is that the property reference also constitutes a reference, so the ref count should be incremented on the object before the overwrite. I think I&#8217;m  not quite correctly accounting for proprefs as references. </li>
</ul>
<p>I&#8217;ll look at it when I&#8217;ve got a minute.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
