<?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 C++Next</title>
	<atom:link href="http://cpp-next.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://cpp-next.com</link>
	<description>The next generation of C++</description>
	<lastBuildDate>Sun, 05 Sep 2010 06:48:49 +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 “Elements of Programming” Chapter 3: Associative&#160;Operations by David Rothlisberger</title>
		<link>http://cpp-next.com/archive/2010/09/eop-ch3-summary/comment-page-1/#comment-803</link>
		<dc:creator>David Rothlisberger</dc:creator>
		<pubDate>Sun, 05 Sep 2010 06:48:49 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1872#comment-803</guid>
		<description>&lt;p&gt;Reading this summary reminded me strongly of &quot;Structure and Interpretation of Computer Programs&quot; (see http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4, particularly exercises 1.16 and 1.19). Fun!&lt;/p&gt;

&lt;p&gt;I&#039;m glad to see this study group hasn&#039;t died down (I keep meaning to buy Elements of Programming and catching up). :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Reading this summary reminded me strongly of &#8220;Structure and Interpretation of Computer Programs&#8221; (see <a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4" rel="nofollow">http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4</a>, particularly exercises 1.16 and 1.19). Fun!</p>

<p>I&#8217;m glad to see this study group hasn&#8217;t died down (I keep meaning to buy Elements of Programming and catching up). <img src='http://cpp-next.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by litb</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-796</link>
		<dc:creator>litb</dc:creator>
		<pubDate>Fri, 03 Sep 2010 13:48:16 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-796</guid>
		<description>&lt;p&gt;I&#039;m looking forward to the next installment of your articles. I always wanted to check into boost.proto, but never had time and motivation to do so.&lt;/p&gt;

&lt;p&gt;This now is an interesting series I hope, so finally maybe I&#039;m going to be proto-typed! Ahaha&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m looking forward to the next installment of your articles. I always wanted to check into boost.proto, but never had time and motivation to do so.</p>

<p>This now is an interesting series I hope, so finally maybe I&#8217;m going to be proto-typed! Ahaha</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by Vasilis Vasaitis</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-792</link>
		<dc:creator>Vasilis Vasaitis</dc:creator>
		<pubDate>Thu, 02 Sep 2010 12:02:31 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-792</guid>
		<description>&lt;p&gt;Great article, thanks!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great article, thanks!</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by Eric Niebler</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-789</link>
		<dc:creator>Eric Niebler</dc:creator>
		<pubDate>Wed, 01 Sep 2010 17:13:59 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-789</guid>
		<description>&lt;p&gt;I read the link, but I still don&#039;t see the need to build an opcode sequence at &lt;em&gt;runtime&lt;/em&gt;. When you have something of the form:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;cpp&quot; style=&quot;font-family:monospace;&quot;&gt;this&lt;span style=&quot;color: #000040;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000080;&quot;&gt;&gt;&lt;/span&gt;block &lt;span style=&quot;color: #000080;&quot;&gt;=&lt;/span&gt;
    asm&lt;span style=&quot;color: #008000;&quot;&gt;&#091;&lt;/span&gt;
        add_&lt;span style=&quot;color: #008000;&quot;&gt;&#091;&lt;/span&gt;eax, imm32&lt;span style=&quot;color: #008000;&quot;&gt;&#040;&lt;/span&gt;var&lt;span style=&quot;color: #008000;&quot;&gt;&#041;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&#093;&lt;/span&gt;,
        ...
    &lt;span style=&quot;color: #008000;&quot;&gt;&#093;&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;then the opcodes (e.g. &lt;code&gt;add_&lt;/code&gt;) are known at compile time. If you assign the block to a &lt;code&gt;block&lt;/code&gt; variable, then the block can be stored in type-erased form, but the code associated with the block itself is generated entirely at compile time. (BTW, when you say &quot;opcode&quot; do you really mean the code needs to be interpreted at runtime, or are you going for portable inline assembly? The former is easy, the latter depends on the ability of the compiler to inline functions with inline asm blocks, as I&#039;ve said.)&lt;/p&gt;

&lt;p&gt;Hopefully, this will all be more clear once I publish future articles. In fact, if I could understand your requirements a bit, this might make a really interesting example for an article. Do you have code that already does what you want? Could you publish it?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I read the link, but I still don&#8217;t see the need to build an opcode sequence at <em>runtime</em>. When you have something of the form:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>block <span style="color: #000080;">=</span>
    asm<span style="color: #008000;">&#91;</span>
        add_<span style="color: #008000;">&#91;</span>eax, imm32<span style="color: #008000;">&#40;</span>var<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>,
        ...
    <span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span></pre></div></div>

<p>then the opcodes (e.g. <code>add_</code>) are known at compile time. If you assign the block to a <code>block</code> variable, then the block can be stored in type-erased form, but the code associated with the block itself is generated entirely at compile time. (BTW, when you say &#8220;opcode&#8221; do you really mean the code needs to be interpreted at runtime, or are you going for portable inline assembly? The former is easy, the latter depends on the ability of the compiler to inline functions with inline asm blocks, as I&#8217;ve said.)</p>

<p>Hopefully, this will all be more clear once I publish future articles. In fact, if I could understand your requirements a bit, this might make a really interesting example for an article. Do you have code that already does what you want? Could you publish it?</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by LPR</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-788</link>
		<dc:creator>LPR</dc:creator>
		<pubDate>Wed, 01 Sep 2010 15:23:52 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-788</guid>
		<description>&lt;p&gt;Sorry, I&#039;m just not seeing it.&lt;/p&gt;

&lt;p&gt;Link for definition of &quot;Basic block&quot;:
http://en.wikipedia.org/wiki/Basic_block&lt;/p&gt;

&lt;p&gt;It is the basic block which defines a unit of execution. Basic blocks are built at runtime from the input opcode sequence. What you describe would be better suited to a simple fetch/decode/execute loop.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sorry, I&#8217;m just not seeing it.</p>

<p>Link for definition of &#8220;Basic block&#8221;:
<a href="http://en.wikipedia.org/wiki/Basic_block" rel="nofollow">http://en.wikipedia.org/wiki/Basic_block</a></p>

<p>It is the basic block which defines a unit of execution. Basic blocks are built at runtime from the input opcode sequence. What you describe would be better suited to a simple fetch/decode/execute loop.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by Eric Niebler</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-787</link>
		<dc:creator>Eric Niebler</dc:creator>
		<pubDate>Wed, 01 Sep 2010 00:30:27 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-787</guid>
		<description>&lt;p&gt;AFAICT, the opcodes don&#039;t need to be composed at &lt;em&gt;runtime&lt;/em&gt;. They can be composed at compile time. Proto can do that by composing the larger asm block out of function (object)s with inline asm. That&#039;s no problem. The only question is whether such a composite can be inlined by the compiler leaving &lt;em&gt;only&lt;/em&gt; the inline asm and none of the function calls. That&#039;s the part I don&#039;t know. It would be pretty easy to test that, though.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>AFAICT, the opcodes don&#8217;t need to be composed at <em>runtime</em>. They can be composed at compile time. Proto can do that by composing the larger asm block out of function (object)s with inline asm. That&#8217;s no problem. The only question is whether such a composite can be inlined by the compiler leaving <em>only</em> the inline asm and none of the function calls. That&#8217;s the part I don&#8217;t know. It would be pretty easy to test that, though.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by LPR</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-786</link>
		<dc:creator>LPR</dc:creator>
		<pubDate>Wed, 01 Sep 2010 00:23:05 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-786</guid>
		<description>&lt;p&gt;The main thing to consider is that an arbitrary sequence of opcodes must composed, at runtime, to form the basic block. If each translated opcode is a function, then the basic block becomes a sequence of function pointers, one pointer per opcode. I&#039;m not sure how any compiler could then guarantee that a basic block would form a single unit of execution as is the case when a basic block is nothing more than a sequence of raw bytes (machine code).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>The main thing to consider is that an arbitrary sequence of opcodes must composed, at runtime, to form the basic block. If each translated opcode is a function, then the basic block becomes a sequence of function pointers, one pointer per opcode. I&#8217;m not sure how any compiler could then guarantee that a basic block would form a single unit of execution as is the case when a basic block is nothing more than a sequence of raw bytes (machine code).</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by Eric Niebler</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-785</link>
		<dc:creator>Eric Niebler</dc:creator>
		<pubDate>Tue, 31 Aug 2010 22:12:20 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-785</guid>
		<description>&lt;p&gt;And I&#039;ll admit I know nothing about inline assembly and how it interacts with function inlining. If a function with inline asm can&#039;t be inlined, then Proto won&#039;t be able to help. But I honestly don&#039;t know.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>And I&#8217;ll admit I know nothing about inline assembly and how it interacts with function inlining. If a function with inline asm can&#8217;t be inlined, then Proto won&#8217;t be able to help. But I honestly don&#8217;t know.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by LPR</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-784</link>
		<dc:creator>LPR</dc:creator>
		<pubDate>Tue, 31 Aug 2010 21:40:34 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-784</guid>
		<description>&lt;p&gt;As you can see, I don&#039;t know anything about Proto. Anyway, the idea was that eval would return (but not execute) a block of x86 machine code.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>As you can see, I don&#8217;t know anything about Proto. Anyway, the idea was that eval would return (but not execute) a block of x86 machine code.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expressive C++:&#160;Introduction by Eric Niebler</title>
		<link>http://cpp-next.com/archive/2010/08/expressive-c-introduction/comment-page-1/#comment-783</link>
		<dc:creator>Eric Niebler</dc:creator>
		<pubDate>Tue, 31 Aug 2010 21:23:04 +0000</pubDate>
		<guid isPermaLink="false">http://cpp-next.com/?p=1469#comment-783</guid>
		<description>&lt;p&gt;Well, you wouldn&#039;t want the invocation to eval and the assignment to asm be in different statements. Something like this might work:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;cpp&quot; style=&quot;font-family:monospace;&quot;&gt;this&lt;span style=&quot;color: #000040;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000080;&quot;&gt;&gt;&lt;/span&gt;block &lt;span style=&quot;color: #000080;&quot;&gt;=&lt;/span&gt;
    asm&lt;span style=&quot;color: #008000;&quot;&gt;&#091;&lt;/span&gt;
        add_&lt;span style=&quot;color: #008000;&quot;&gt;&#091;&lt;/span&gt;eax, imm32&lt;span style=&quot;color: #008000;&quot;&gt;&#040;&lt;/span&gt;var&lt;span style=&quot;color: #008000;&quot;&gt;&#041;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&#093;&lt;/span&gt;,
        ...
    &lt;span style=&quot;color: #008000;&quot;&gt;&#093;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&#040;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&#041;&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Multiple asm statements within the asm block would be comma-separated. I don&#039;t know what &lt;code&gt;this-&gt;block&lt;/code&gt; is or the assignment to it is for, though.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Well, you wouldn&#8217;t want the invocation to eval and the assignment to asm be in different statements. Something like this might work:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>block <span style="color: #000080;">=</span>
    asm<span style="color: #008000;">&#91;</span>
        add_<span style="color: #008000;">&#91;</span>eax, imm32<span style="color: #008000;">&#40;</span>var<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>,
        ...
    <span style="color: #008000;">&#93;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Multiple asm statements within the asm block would be comma-separated. I don&#8217;t know what <code>this-&gt;block</code> is or the assignment to it is for, though.</p>]]></content:encoded>
	</item>
</channel>
</rss>
