<?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: Gem #39: Efficient Stream I/O for Array Types</title>
	<atom:link href="http://www2.adacore.com/2008/06/09/gem-39/feed/" rel="self" type="application/rss+xml" />
	<link>http://www2.adacore.com/2008/06/09/gem-39/</link>
	<description>AdaCore technology and news</description>
	<lastBuildDate>Mon, 06 Feb 2012 18:59:19 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Martin Dowie</title>
		<link>http://www2.adacore.com/2008/06/09/gem-39/comment-page-1/#comment-1569</link>
		<dc:creator>Martin Dowie</dc:creator>
		<pubDate>Tue, 10 Jun 2008 11:08:35 +0000</pubDate>
		<guid isPermaLink="false">http://www2.adacore.com/2008/06/09/gem-39/#comment-1569</guid>
		<description>Does the declaration:

   type Buffer is array (1..32) of Interfaces.Unsigned_16;

not require a &#039;Size clause? Or wouldn&#039;t a compiler be free to place each 16-bit array item on, for example, a 4-byte boundary?</description>
		<content:encoded><![CDATA[<p>Does the declaration:</p>
<p>   type Buffer is array (1..32) of Interfaces.Unsigned_16;</p>
<p>not require a &#8216;Size clause? Or wouldn&#8217;t a compiler be free to place each 16-bit array item on, for example, a 4-byte boundary?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christoph Grein</title>
		<link>http://www2.adacore.com/2008/06/09/gem-39/comment-page-1/#comment-1567</link>
		<dc:creator>Christoph Grein</dc:creator>
		<pubDate>Tue, 10 Jun 2008 05:17:13 +0000</pubDate>
		<guid isPermaLink="false">http://www2.adacore.com/2008/06/09/gem-39/#comment-1567</guid>
		<description>Two comments to this fine gem:

1. I understand why you use the GNAT-specific &#039;Object_Size here. However this is not portable and I wonder why you don&#039;t use the portable
  Item_Size: constant Stream_Element_Offset :=
               Item&#039;Size / Stream_Element&#039;Size;
I do not see how Item&#039;Size and Buffer&#039;Object_Size could ever differ.

2. At first I wondered why you didn&#039;t use directly Item&#039;Access or Item&#039;Unchecked_Access, but on second sight I realized that would have given the wrong pointer type. But then - why don&#039;t you use RM 13.7.2 System.Address_to_Access_Conversions instead of the Unchecked_Conversion As_SEA_Pointer? (I gather, the latter does exactly the same behind the scenes, but there must be some reason why this package has been provided by the ARG.)

BTW: Could you please take care in the future that the apostrophe is no longer shown as &apos;. This extremely uglifies your examples.</description>
		<content:encoded><![CDATA[<p>Two comments to this fine gem:</p>
<p>1. I understand why you use the GNAT-specific &#8216;Object_Size here. However this is not portable and I wonder why you don&#8217;t use the portable<br />
  Item_Size: constant Stream_Element_Offset :=<br />
               Item&#8217;Size / Stream_Element&#8217;Size;<br />
I do not see how Item&#8217;Size and Buffer&#8217;Object_Size could ever differ.</p>
<p>2. At first I wondered why you didn&#8217;t use directly Item&#8217;Access or Item&#8217;Unchecked_Access, but on second sight I realized that would have given the wrong pointer type. But then &#8211; why don&#8217;t you use RM 13.7.2 System.Address_to_Access_Conversions instead of the Unchecked_Conversion As_SEA_Pointer? (I gather, the latter does exactly the same behind the scenes, but there must be some reason why this package has been provided by the ARG.)</p>
<p>BTW: Could you please take care in the future that the apostrophe is no longer shown as &apos;. This extremely uglifies your examples.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

