<?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 Ahruman’s Webthing</title>
	<atom:link href="http://jens.ayton.se/blag/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://jens.ayton.se/blag</link>
	<description>Cocoa coding stuff, when I can be bothered.</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:14:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Comment on Almost elegant cave man debugging by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-307</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Sun, 05 Sep 2010 17:14:39 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-307</guid>
		<description>Kaks, that depends on whether the type decoding works in GNUstep. If so, it’s just a matter of adding the files. If not, well, it may be fiddly.</description>
		<content:encoded><![CDATA[<p>Kaks, that depends on whether the type decoding works in GNUstep. If so, it’s just a matter of adding the files. If not, well, it may be fiddly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Almost elegant cave man debugging by Kaks</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-306</link>
		<dc:creator>Kaks</dc:creator>
		<pubDate>Thu, 02 Sep 2010 13:25:50 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-306</guid>
		<description>Hmm, sounds like Oolite might be getting some more debugging stuff soon... Or am I reading too much into this? ;)</description>
		<content:encoded><![CDATA[<p>Hmm, sounds like Oolite might be getting some more debugging stuff soon&#8230; Or am I reading too much into this? ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Almost elegant cave man debugging by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-305</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Tue, 24 Aug 2010 18:13:38 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-305</guid>
		<description>As it turns out, the multi-pass fix was easier than I thought, and the parse tree harder – in particular, since it follows pointers in some cases, representing data locations in an abstract way becomes problematic. Bad luck for Joachim. :-)</description>
		<content:encoded><![CDATA[<p>As it turns out, the multi-pass fix was easier than I thought, and the parse tree harder – in particular, since it follows pointers in some cases, representing data locations in an abstract way becomes problematic. Bad luck for Joachim. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Almost elegant cave man debugging by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-304</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Tue, 24 Aug 2010 13:42:05 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-304</guid>
		<description>As it turns out, generating a parse tree may be a good idea, because correct alignment calculations sometimes require look-ahead. For example, in 64-bit, &lt;code&gt;struct { int16_t a, struct { int16_t b, int64_t c }}&lt;/code&gt; is interpreted as &lt;code&gt;[short][short][pad-32][long long]&lt;/code&gt;, when it should be &lt;code&gt;[short][pad-48][short][pad-48][long long]&lt;/code&gt;. Getting this right requires finding the alignment of the inner struct, which is the same as the alignment of the biggest element in it. An easier fix would be to use two passes to read structs, but this will still require redesign to get the alignment information where it’s needed.</description>
		<content:encoded><![CDATA[<p>As it turns out, generating a parse tree may be a good idea, because correct alignment calculations sometimes require look-ahead. For example, in 64-bit, <code>struct { int16_t a, struct { int16_t b, int64_t c }}</code> is interpreted as <code>[short][short][pad-32][long long]</code>, when it should be <code>[short][pad-48][short][pad-48][long long]</code>. Getting this right requires finding the alignment of the inner struct, which is the same as the alignment of the biggest element in it. An easier fix would be to use two passes to read structs, but this will still require redesign to get the alignment information where it’s needed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Almost elegant cave man debugging by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-303</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Sun, 22 Aug 2010 09:34:05 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-303</guid>
		<description>It’s a recursive descent parser which finds the type and location of each piece of data. Making a tree out of that is trivial; just build a node in each handler and pass the right parent node to any sub-decoder calls.</description>
		<content:encoded><![CDATA[<p>It’s a recursive descent parser which finds the type and location of each piece of data. Making a tree out of that is trivial; just build a node in each handler and pass the right parent node to any sub-decoder calls.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Almost elegant cave man debugging by Joachim Bengtsson</title>
		<link>http://jens.ayton.se/blag/almost-elegant-cave-man-debugging/comment-page-1/#comment-302</link>
		<dc:creator>Joachim Bengtsson</dc:creator>
		<pubDate>Sun, 22 Aug 2010 08:41:31 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=103#comment-302</guid>
		<description>Aw, I was hoping you were parsing the @encode expression into an object tree, and then making that into a string; I have wanted to transform the @encode string into something useful many times but never had the energy to parse strings :P This is probably a good start though, so thanks :)

(for example, I want to make an ffi cif from an encoding string to make this thing work better: http://github.com/nevyn/NSObject-AddMethod/blob/master/NSObject%2BAddMethod.h )</description>
		<content:encoded><![CDATA[<p>Aw, I was hoping you were parsing the @encode expression into an object tree, and then making that into a string; I have wanted to transform the @encode string into something useful many times but never had the energy to parse strings :P This is probably a good start though, so thanks :)</p>
<p>(for example, I want to make an ffi cif from an encoding string to make this thing work better: <a href="http://github.com/nevyn/NSObject-AddMethod/blob/master/NSObject%2BAddMethod.h" rel="nofollow">http://github.com/nevyn/NSObject-AddMethod/blob/master/NSObject%2BAddMethod.h</a> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Proposal: generics (and some other stuff) for Objective-C by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/generics-for-objective-c/comment-page-1/#comment-290</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Mon, 28 Jun 2010 19:09:33 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=78#comment-290</guid>
		<description>It wouldn’t break supersetosity if &lt;code&gt;var&lt;/code&gt; could be redefined, somewhat analogous to the way &lt;code&gt;self&lt;/code&gt; can be used in non-method contexts. But that would cause new problems, so I agree – an @-keyword would be better, yet uglier. (It could perhaps be defined to a normal identifier in a standard header, just as &lt;code&gt;id&lt;/code&gt; is typedefed, or &lt;code&gt;bool&lt;/code&gt; is in C99.)</description>
		<content:encoded><![CDATA[<p>It wouldn’t break supersetosity if <code>var</code> could be redefined, somewhat analogous to the way <code>self</code> can be used in non-method contexts. But that would cause new problems, so I agree – an @-keyword would be better, yet uglier. (It could perhaps be defined to a normal identifier in a standard header, just as <code>id</code> is typedefed, or <code>bool</code> is in C99.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Proposal: generics (and some other stuff) for Objective-C by Ondra Hošek</title>
		<link>http://jens.ayton.se/blag/generics-for-objective-c/comment-page-1/#comment-289</link>
		<dc:creator>Ondra Hošek</dc:creator>
		<pubDate>Mon, 28 Jun 2010 18:56:08 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=78#comment-289</guid>
		<description>I might be a bit late to the fray, but calling the infer-me type &quot;var&quot; would break ObjC&#039;s strict-superset-ness, since I&#039;d not be able to declare an &quot;int var;&quot; anymore. This is very probably the reason why every ObjC keyword is prefixed with an @ sign.</description>
		<content:encoded><![CDATA[<p>I might be a bit late to the fray, but calling the infer-me type &#8220;var&#8221; would break ObjC&#8217;s strict-superset-ness, since I&#8217;d not be able to declare an &#8220;int var;&#8221; anymore. This is very probably the reason why every ObjC keyword is prefixed with an @ sign.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Hacking your Log Messages by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/hacking-your-log-messages/comment-page-1/#comment-270</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Fri, 20 Nov 2009 13:18:44 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/hacking-your-log-messages/#comment-270</guid>
		<description>This also works in The Cocotron as of &lt;a href=&quot;http://code.google.com/p/cocotron/source/diff?path=/trunk/Foundation/NSObjCRuntime.m&amp;format=side&amp;r=646&amp;old_path=/trunk/Foundation/NSObjCRuntime.m&amp;old=544&quot; rel=&quot;nofollow&quot;&gt;r646&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>This also works in The Cocotron as of <a href="http://code.google.com/p/cocotron/source/diff?path=/trunk/Foundation/NSObjCRuntime.m&#038;format=side&#038;r=646&#038;old_path=/trunk/Foundation/NSObjCRuntime.m&#038;old=544" rel="nofollow">r646</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Proposal: generics (and some other stuff) for Objective-C by Jens Ayton</title>
		<link>http://jens.ayton.se/blag/generics-for-objective-c/comment-page-1/#comment-269</link>
		<dc:creator>Jens Ayton</dc:creator>
		<pubDate>Mon, 16 Nov 2009 23:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://jens.ayton.se/blag/?p=78#comment-269</guid>
		<description>“…add this metadata to the interface” is a good phrase. Every now and then, I read or write code like:

&lt;code&gt;- (NSArray *) frobs; // Array of JAFrob&lt;/code&gt;

This is suboptimal for – once again – exactly the same reason &lt;code&gt;- (id) frobs; // NSArray of JAFrob&lt;/code&gt; would be. The genericized form, &lt;code&gt;- (NSArray[JAFrob] *) frobs;&lt;/code&gt; gives you the whole scoop in one place consistently with non-container methods.</description>
		<content:encoded><![CDATA[<p>“…add this metadata to the interface” is a good phrase. Every now and then, I read or write code like:</p>
<p><code>- (NSArray *) frobs; // Array of JAFrob</code></p>
<p>This is suboptimal for – once again – exactly the same reason <code>- (id) frobs; // NSArray of JAFrob</code> would be. The genericized form, <code>- (NSArray[JAFrob] *) frobs;</code> gives you the whole scoop in one place consistently with non-container methods.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
