<?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: Implementation details for Java Yielder</title>
	<atom:link href="http://chaoticjava.com/posts/implementation-details-for-java-yielder/feed/" rel="self" type="application/rss+xml" />
	<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/</link>
	<description>The internet, design patterns, frameworks and Java</description>
	<lastBuildDate>Wed, 08 Sep 2010 10:18:29 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Avah</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-21017</link>
		<dc:creator>Avah</dc:creator>
		<pubDate>Thu, 10 Jan 2008 06:51:17 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-21017</guid>
		<description>Dimitris: No. The yielding supports tree traversal perfectly well, and in fact I already implemented tree and graph traversals using it - you can check out the proejct&#039;s website to see how, the code is all there.</description>
		<content:encoded><![CDATA[<p>Dimitris: No. The yielding supports tree traversal perfectly well, and in fact I already implemented tree and graph traversals using it &#8211; you can check out the proejct&#8217;s website to see how, the code is all there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dimitris Andreou</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-20997</link>
		<dc:creator>Dimitris Andreou</dc:creator>
		<pubDate>Thu, 10 Jan 2008 00:07:02 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-20997</guid>
		<description>Talking about traversals, how would this approach support recursion? It sounds problematic even in the case of yielding from any deeper stack frame - is this understanding correct?</description>
		<content:encoded><![CDATA[<p>Talking about traversals, how would this approach support recursion? It sounds problematic even in the case of yielding from any deeper stack frame &#8211; is this understanding correct?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; Blog Archive &#187; Who wants Indexer as the next EoD feature?</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-18211</link>
		<dc:creator>Chaotic Java &#187; Blog Archive &#187; Who wants Indexer as the next EoD feature?</dc:creator>
		<pubDate>Wed, 05 Dec 2007 15:50:10 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-18211</guid>
		<description>[...] When Java 5 came out, many ease of development (EoD in short) features were introduced. One of them was the â€œforeachâ€ loop - a syntax for iterating over arrays and collections from the collections framework easily and, as an extra effect, in a standard way. This was accomplished by extracting the iteration interface out of the Collection interface, now named Iterable. Everything that implements the Iterable interface could be used in a â€œforeachâ€ loop (which is, by no coincidence, the implemented interface by my Yielder class, which is a virtual collection). [...]</description>
		<content:encoded><![CDATA[<p>[...] When Java 5 came out, many ease of development (EoD in short) features were introduced. One of them was the â€œforeachâ€ loop &#8211; a syntax for iterating over arrays and collections from the collections framework easily and, as an extra effect, in a standard way. This was accomplished by extracting the iteration interface out of the Collection interface, now named Iterable. Everything that implements the Iterable interface could be used in a â€œforeachâ€ loop (which is, by no coincidence, the implemented interface by my Yielder class, which is a virtual collection). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; Bug fixed, carry on yielding!</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-8818</link>
		<dc:creator>Chaotic Java &#187; Bug fixed, carry on yielding!</dc:creator>
		<pubDate>Thu, 30 Aug 2007 13:36:49 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-8818</guid>
		<description>[...] The differences from the original implementation post relate to the local variable promotion only. The changes are as follows: [...]</description>
		<content:encoded><![CDATA[<p>[...] The differences from the original implementation post relate to the local variable promotion only. The changes are as follows: [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; On local variables&#8217; scopes and other problems</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-8657</link>
		<dc:creator>Chaotic Java &#187; On local variables&#8217; scopes and other problems</dc:creator>
		<pubDate>Tue, 28 Aug 2007 12:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-8657</guid>
		<description>[...] In order to create the members of the yielding class (need a memory refresh?), the yielder (in the current, 0.1.1 version) is looking at the local variables map, and creates a member called variable-name$promoted for each local variable, with the type of the local variable. Matching between a slot access (for read or write, using the xLOAD or xSTORE bytecode operators) to a local variable is done using the scope mapping, also found in the debugging information. However, when debugging information is disabled, this information is unavailable, and thus the yielder should work differently. [...]</description>
		<content:encoded><![CDATA[<p>[...] In order to create the members of the yielding class (need a memory refresh?), the yielder (in the current, 0.1.1 version) is looking at the local variables map, and creates a member called variable-name$promoted for each local variable, with the type of the local variable. Matching between a slot access (for read or write, using the xLOAD or xSTORE bytecode operators) to a local variable is done using the scope mapping, also found in the debugging information. However, when debugging information is disabled, this information is unavailable, and thus the yielder should work differently. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Avah</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-7625</link>
		<dc:creator>Avah</dc:creator>
		<pubDate>Mon, 13 Aug 2007 16:11:42 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-7625</guid>
		<description>Bernhard - It&#039;s a very good point. At first I thought of creating this feature using threads, queues and object monitor locks. However, since I started making this from the tree and graph iterators point of view, it seemed like a lot of threads were going to be created (as the calls to the yielder are somewhat recursive), which was not going to be worth it eventually.

As a general rule, I agree that this feature could have been implemented using threads and queues. If there&#039;s a request for it, I don&#039;t mind adding a general solution which is JDK 1.4+ compliant that into the version, which doesn&#039;t do bytecode manipulation at all.</description>
		<content:encoded><![CDATA[<p>Bernhard &#8211; It&#8217;s a very good point. At first I thought of creating this feature using threads, queues and object monitor locks. However, since I started making this from the tree and graph iterators point of view, it seemed like a lot of threads were going to be created (as the calls to the yielder are somewhat recursive), which was not going to be worth it eventually.</p>
<p>As a general rule, I agree that this feature could have been implemented using threads and queues. If there&#8217;s a request for it, I don&#8217;t mind adding a general solution which is JDK 1.4+ compliant that into the version, which doesn&#8217;t do bytecode manipulation at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernhard</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-7619</link>
		<dc:creator>Bernhard</dc:creator>
		<pubDate>Mon, 13 Aug 2007 12:36:22 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-7619</guid>
		<description>Some time ago I had a similar problem to implement in Java. Because the data producer was rather complex I wanted to avoid converting it to a state machine. Therefore I choose a queue of length one item to hand over data from the producer to the consumer (like a UNIX pipe). As a consequence it was necessary to run the producer in a separate thread which might be expensive as a general solution but has been worth in this case.</description>
		<content:encoded><![CDATA[<p>Some time ago I had a similar problem to implement in Java. Because the data producer was rather complex I wanted to avoid converting it to a state machine. Therefore I choose a queue of length one item to hand over data from the producer to the consumer (like a UNIX pipe). As a consequence it was necessary to run the producer in a separate thread which might be expensive as a general solution but has been worth in this case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; How to write Iterators really REALLY fast</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-7362</link>
		<dc:creator>Chaotic Java &#187; How to write Iterators really REALLY fast</dc:creator>
		<pubDate>Tue, 07 Aug 2007 17:08:09 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-7362</guid>
		<description>[...] Difference from dotNet is bolded. Not that different, is it? In the next post I&#8217;ll post the implementation details of this. On the other hand, if you&#8217;re excited and want to download it, please go to the project&#8217;s site. [...]</description>
		<content:encoded><![CDATA[<p>[...] Difference from dotNet is bolded. Not that different, is it? In the next post I&#8217;ll post the implementation details of this. On the other hand, if you&#8217;re excited and want to download it, please go to the project&#8217;s site. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; Jakarta&#8217;s BCEL vs. ObjectWeb&#8217;s ASM</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-6734</link>
		<dc:creator>Chaotic Java &#187; Jakarta&#8217;s BCEL vs. ObjectWeb&#8217;s ASM</dc:creator>
		<pubDate>Wed, 18 Jul 2007 04:33:23 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-6734</guid>
		<description>[...] In the third in the &#8220;yielder series&#8221; (1, 2), I will describe the differences I&#8217;ve seen between Jakarta&#8217;s BCEL and ObjectWeb&#8217;s ASM frameworks for bytecode manipulation. [...]</description>
		<content:encoded><![CDATA[<p>[...] In the third in the &#8220;yielder series&#8221; (1, 2), I will describe the differences I&#8217;ve seen between Jakarta&#8217;s BCEL and ObjectWeb&#8217;s ASM frameworks for bytecode manipulation. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chaotic Java &#187; My TreeModelIterator</title>
		<link>http://chaoticjava.com/posts/implementation-details-for-java-yielder/comment-page-1/#comment-6727</link>
		<dc:creator>Chaotic Java &#187; My TreeModelIterator</dc:creator>
		<pubDate>Tue, 17 Jul 2007 20:39:13 +0000</pubDate>
		<guid isPermaLink="false">http://chaoticjava.com/posts/implementation-details-for-java-yielder/#comment-6727</guid>
		<description>[...] Anyway, with the new Yielder option it looks like this: [...]</description>
		<content:encoded><![CDATA[<p>[...] Anyway, with the new Yielder option it looks like this: [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
