<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.eiffelroom.org">
<channel>
 <title>eiffelroom</title>
 <link>http://www.eiffelroom.org</link>
 <description>Welcome to Eiffelroom! Enjoy it and contribute your own articles, libraries or
tools.</description>
 <language>en</language>
<feedburner:info uri="eiffelroom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.eiffelroom.org/rss.xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://www.eiffelroom.org/rss.xml" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Fwww.eiffelroom.org%2Frss.xml" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
 <title>Formal Generics in ROUTINE, PROCEDURE, FUNCTION and PREDICATE</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/O59B2KrTFZw/395</link>
 <description>&lt;p&gt;There are 4 deferred classes defined in ELKS to represent agents
&lt;/p&gt;
&lt;pre&gt;  ROUTINE  [BASE_TYPE, OPEN_ARGS-&amp;gt;TUPLE]
  PROCEDURE[BASE_TYPE, OPEN_ARGS-&amp;gt;TUPLE]   
  FUNCTION [BASE_TYPE, OPEN_ARGS-&amp;gt;TUPLE, RESULT_TYPE]
  PREDICATE[BASE_TYPE, OPEN_ARGS-&amp;gt;TUPLE]   
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
The OPEN_ARGS is tuple to represent the tuple of arguments which need to be
provided at call time. In case of FUNCTION, RESULT_TYPE is the type of the
result returned by the query.
&lt;/p&gt;&lt;p&gt;The first formal generic BASE_TYPE seems to be completely
unnecessary. Clearly, each agent represents a feature of a certain type. But
that type is not needed in the abstraction.
&lt;/p&gt;&lt;p&gt;All routines in  the standard library, which expect an agent as argument use
as BASE_TYE the universal type ANY.
&lt;/p&gt;&lt;p&gt;It is difficult to imagine that it makes sense to restrict the base type of an
agent to be a descendant of a certain other type. The feature expecting a
procedure or function as argument should work with any procedure/function
which has a compatible signature. The only thing it does is call it.
&lt;/p&gt;&lt;p&gt;Wouldn't it be more consisten to remove the formal generic BASE_TYPE from the 
above abstractions?
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/O59B2KrTFZw" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/395#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/ecma">Ecma</category>
 <category domain="http://www.eiffelroom.org/tag/eiffel">Eiffel</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/395</wfw:commentRss>
 <pubDate>Tue, 02 Mar 2010 23:18:22 +0000</pubDate>
 <dc:creator>helmut.brandl</dc:creator>
 <guid isPermaLink="false">395 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/395</feedburner:origLink></item>
<item>
 <title>Ephemeral classes</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/Jy4h48n2y1s/394</link>
 <description>&lt;p&gt;I've recently been toying with the idea of ephemeral classes. An ephemeral class is a class which does not have attributes. The immediate benefits of such classes is that their features can be used for objectless calls, the same way we can access constants or external features. For those not familiar to Eiffel, the features of ephemeral classes can be seen as &lt;b&gt;static&lt;/b&gt; methods.
&lt;/p&gt;&lt;p&gt;For example:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;ephemeral &lt;span style="color: #0600FF; font-weight: bold;"&gt;class&lt;/span&gt; A
&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt;
	objectless_feature &lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt; ... &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0600FF; font-weight: bold;"&gt;class&lt;/span&gt; TEST
&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt;
	g
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;A&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;objectless_feature&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;Another benefit of such classes is that their features can be directly used for callbacks by some external C/C++ code without having the need for creating a C wrapper for calling back the Eiffel code.
&lt;/p&gt;&lt;p&gt;The concept is not yet  implemented in EiffelStudio as it is not just a matter of checking the absence of attributes but also to adapt the code generation not to rely on a Current object.
&lt;/p&gt;&lt;p&gt;This is something that will most likely be submitted for adoption for the ECMA Eiffel language specification. But before that, I'd like to hear what you think about this!
&lt;/p&gt;&lt;p&gt;Happy Eiffeling,
&lt;/p&gt;&lt;p&gt;Manu
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/Jy4h48n2y1s" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/394#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/ecma">Ecma</category>
 <category domain="http://www.eiffelroom.org/tag/eiffel">Eiffel</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/394</wfw:commentRss>
 <pubDate>Fri, 26 Feb 2010 22:21:01 +0000</pubDate>
 <dc:creator>manus_eiffel</dc:creator>
 <guid isPermaLink="false">394 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/394</feedburner:origLink></item>
<item>
 <title>Storable and versioning</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/X9iEb4URwGM/393</link>
 <description>&lt;a name="Introduction"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Introduction&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Originally Eiffel Software's object serialization was written in C and was proposing the following alternative:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;b&gt;basic&lt;/b&gt;: the same version of the executable on a particular platform can store and retrieve objects.
&lt;/li&gt;&lt;li&gt; &lt;b&gt;general&lt;/b&gt;: different versions of the executable on a particular platform can store and retrieve objects.
&lt;/li&gt;&lt;li&gt; &lt;b&gt;independent&lt;/b&gt;: different versions of the executable running on different platforms can store and retrieve objects.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Initially you could only retrieve an object if and only if the storing and retrieving system where exactly the same (i.e. same number of attributes and same types for all of them). A couple of years ago, we added to the independent version a mechanism to fix mismatches (i.e. object of the same type but the type had its number of attributes changed, or the type of attributes have changed). The mechanism is known as &lt;b&gt;correct_mismatch&lt;/b&gt; and you can benefit from it by redefining the &lt;b&gt;correct_mismatch&lt;/b&gt; routine from MISMATCH_CORRECTOR whenever you change the content of a class.
&lt;/p&gt;&lt;p&gt;Unfortunately this code was written in C and was not much compatible with object layouts in .NET. This is what prompted us to write a pure Eiffel version of our C storable mechanism. This mechanism is known as SED (SErialization-Deserialization). Thanks to SED, one could serialize objects from and to .NET as long as they had the same content. Contrary to the C version, SED is proposing the following alternatives:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;b&gt;session&lt;/b&gt;: the same running version of the executable can store and retrieve objects
&lt;/li&gt;&lt;li&gt; &lt;b&gt;basic&lt;/b&gt;: same as the C version
&lt;/li&gt;&lt;li&gt; &lt;b&gt;independent&lt;/b&gt;: same as the C version
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;What is missing is the &lt;b&gt;general&lt;/b&gt; alternative which was deemed useless over the years as &lt;b&gt;independent&lt;/b&gt; made more sense, especially with the extended facility such as &lt;b&gt;correct_mismatch&lt;/b&gt;.
&lt;/p&gt;&lt;p&gt;However SED has some limitations:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; it cannot handle properly user defined expanded types.
&lt;/li&gt;&lt;li&gt; it does not implement &lt;b&gt;correct_mismatch&lt;/b&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For the 6.6 release, we hope to solve the first limitation.
&lt;/p&gt;
&lt;a name="Versioning"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Versioning&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Is &lt;b&gt;correct_mismatch&lt;/b&gt; the best way to solve mismatch? Not quite because even if you have the same number and same kind of attributes there could be a mismatch. An example is in the ELKS class HASH_TABLE where from one implementation to the next of HASH_TABLE we decided that the &lt;i&gt;deleted_marks&lt;/i&gt; array should have one more entry. To solve that problem, we forced a mismatch by adding a fake attribute to HASH_TABLE which in turn would trigger a mismatch. But this solution was really a workaround and the penalty is that fake added attribute.
&lt;/p&gt;&lt;p&gt;For 6.6, we are planning on adding a &lt;b&gt;storable_version&lt;/b&gt; note clause to a class that will be used upon retrieval to find out if there is a mismatch or not. The content of &lt;b&gt;storable_version&lt;/b&gt; would be user defined and will be used by the storable mechanism to perform a quick check upon retrieval. If they are different then we trigger a mismatch, otherwise we proceed like today.
&lt;/p&gt;&lt;p&gt;Currently the &lt;b&gt;storable_version&lt;/b&gt; value is not inherited, so if you had an attribute to an ancestor class, you would need to change all its descendants.
&lt;/p&gt;&lt;p&gt;Feel free to comment for discussing this further
&lt;/p&gt;&lt;p&gt;Happy Eiffeling,
&lt;/p&gt;&lt;p&gt;Manu
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/X9iEb4URwGM" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/393#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/450">storable</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/453">versioning</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/393</wfw:commentRss>
 <pubDate>Tue, 16 Feb 2010 01:52:32 +0000</pubDate>
 <dc:creator>manus_eiffel</dc:creator>
 <guid isPermaLink="false">393 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/393</feedburner:origLink></item>
<item>
 <title>Transient attributes</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/DbcrzSDdkKg/392</link>
 <description>&lt;p&gt;I'm not sure if this feature was noticed by many so I figured out I would write an entry on the matter. Starting with 6.5 we have added the notion of transient attribute to our runtime. Transient attributes are not stored to disk and thus their absence in the storable file means that they can safely be ignored upon retrieval.
&lt;/p&gt;&lt;p&gt;It can be useful in many scenarios. The most common one is the case of once per object implemented using an attribute and used as a caching mechanism. Since the value can easily be recomputed, you do not want to store the computed value to disk.
&lt;/p&gt;&lt;p&gt;How it works, simply declare an attribute with a special note clause:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;transient_attribute&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+string&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;STRING&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;note&lt;/span&gt; option&lt;span style="color: #600000;"&gt;:&lt;/span&gt; transient &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;In 6.5, the support for transient only works with the C storable mechanism. In our forthcoming 6.6 release, it will also work with the Eiffel storable mechanism (a.k.a. SED) on both classic and .NET. It even works on .NET when using the .NET serialization library (to this purpose we are using the Microsoft .NET NonSerializedAttribute custom attribute on Eiffel generated attributes.) In addition in 6.6, INTERNAL has been augmented with queries to find out how many persistent fields they are in a type as well as finding out if a field is transient or not.
&lt;/p&gt;&lt;p&gt;When can you use a transient attribute? Not all the time as you can see below with the validity rule as implemented in EiffelStudio. An attribute &lt;i&gt;a&lt;/i&gt; of type &lt;b&gt;T&lt;/b&gt; which is marked transient is valid if and only if it satisfies the following conditions:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt; if T is a reference type, T must be detachable
&lt;/li&gt;&lt;li&gt; T is not a formal generic parameter
&lt;/li&gt;&lt;li&gt; T is not a user defined expanded type
&lt;/li&gt;&lt;li&gt; &lt;i&gt;a&lt;/i&gt; is not an attribute of a user defined expanded class
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;The second is a direct consequence of #1. The last two are a limitation of the current implementation of storing/retrieving expanded types in the Eiffel Software runtime.
&lt;/p&gt;&lt;p&gt;Happy Eiffeling,
&lt;/p&gt;&lt;p&gt;Manu
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/DbcrzSDdkKg" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/392#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/451">sed</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/450">storable</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/452">transient</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/392</wfw:commentRss>
 <pubDate>Sat, 13 Feb 2010 01:33:50 +0000</pubDate>
 <dc:creator>manus_eiffel</dc:creator>
 <guid isPermaLink="false">392 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/392</feedburner:origLink></item>
<item>
 <title>Stumbling across errors in language design</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/9GrhK-YvO2M/391</link>
 <description>&lt;p&gt;The recently floated proposal to add the `across' looping construct to Eiffel seems seriously mistaken. I will go through the reasons that make it undesirable for me, and as a bonus end with a general theory of why such proposals occur.
&lt;/p&gt;
&lt;table id="toc" class="toc" summary="Contents"&gt;&lt;tr&gt;&lt;td&gt;&lt;div id="toctitle"&gt;&lt;strong&gt;Contents&lt;/strong&gt;&lt;/div&gt;
&lt;div id="tocbody"&gt;
&lt;ul&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#What_happened_to_the_minimalism_principle.3F"&gt;&lt;span class="tocnumber"&gt;1&lt;/span&gt; &lt;span class="toctext"&gt;What happened to the minimalism principle?&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#Not_an_everyday_construct"&gt;&lt;span class="tocnumber"&gt;2&lt;/span&gt; &lt;span class="toctext"&gt;Not an everyday construct&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#Core_language_constructs_shouldn.27t_depend_on_libraries"&gt;&lt;span class="tocnumber"&gt;3&lt;/span&gt; &lt;span class="toctext"&gt;Core language constructs shouldn't depend on libraries&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#Eiffel_is_verbose_on_purpose"&gt;&lt;span class="tocnumber"&gt;4&lt;/span&gt; &lt;span class="toctext"&gt;Eiffel is verbose on purpose&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#A_bad_take_at_a_known_construct"&gt;&lt;span class="tocnumber"&gt;5&lt;/span&gt; &lt;span class="toctext"&gt;A bad take at a known construct&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toclevel-1"&gt;&lt;a href="#Going_past_the_Good_Idea_Entropy_Axiom"&gt;&lt;span class="tocnumber"&gt;6&lt;/span&gt; &lt;span class="toctext"&gt;Going past the Good Idea Entropy Axiom&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;a name="What_happened_to_the_minimalism_principle.3F"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;What happened to the minimalism principle?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Eiffel used to have one good way of doing each thing, for clarity and homogeneity and common understanding in the context of team work, and it’s well worth the modest cost of the odd slightly painful border cases. We now have not one but 3 constructs: legacy loops, which I’ll call neanderthal loops in the rest of this post; across loops, let’s call them neo-neanderthal loops; and agent-based iterators, the one you use in modern Eiffel.
&lt;/p&gt;
&lt;a name="Not_an_everyday_construct"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Not an everyday construct&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The new construct is being justified by saying that loops in their most general form are an everyday programming construct. In fact, loops in regular programming are all from a very small family of very regular loops, usually on containers or similar like INTEGER_INTERVAL, that are very well captured by iteration agents (do_all and friends). A full time Eiffel programmer would probably need to write an explicit loop once a year or less. The very rare cases I meet where I have to write a neanderthal loop is because of omissions in libraries who sometimes miss some obvious looping construct (almost always general enough, I’m not advocating adding convoluted iteration routines to containers that apply only to one case specifically). Lazy readers might think “but I write loops all the time”, but if they look at all the loops you’ve written, and think how it could be replaced with an iteration agent, they will find there are very few cases that require an explicit loop. Neanderthal-loop fans often tell me that some loops can’t be written with a generic agent iterator but when I ask them to show me an example all they can find is examples of where they were being lazy or used a sadly incomplete library (I don’t think anyone who promised me an example ever delivered a credible one, though I’m not saying a few cases don’t exist, they’re just very rare).
&lt;/p&gt;&lt;p&gt;The great advantage of using agent-based iterators is that their behaviour (termination etc) is much easier to reason about, by hand or machine. If your system has a handful of generic loops (in the implementation of the container library) it’s much easier to reason about instances of such loops once you’ve proven and modelled the core library routines' behaviour.
&lt;/p&gt;
&lt;a name="Core_language_constructs_shouldn.27t_depend_on_libraries"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Core language constructs shouldn't depend on libraries&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The use of a keyword for library syntactic sugar is upside down. Core language constructs should have minimal dependencies if any at all on upper level libraries in general, and on individual routine/classes fairly down the abstraction chain at that. What next, syntactic sugar for log routines?
&lt;/p&gt;&lt;p&gt;This gratuitous syntactic sugar also pollutes the keywords namespace, which ideally should be kept small and manageable, and certainly not used for superfluous constructs that are well dealt with by the core language.
&lt;/p&gt;
&lt;a name="Eiffel_is_verbose_on_purpose"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Eiffel is verbose on purpose&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The verbosity argument is so anti-Eiffel as well, Eiffel is about clarity not about line count. If we’re going that way we could as well go punctuation {*o:i|print(i)*}. With a bit of effort the gold standard of syntax mediocrity, perl, could be within our reach!
&lt;/p&gt;&lt;p&gt;The verbosity comparison between fully expanded neanderthal loops and compact neo-neanderthal variants in the proposal are disingenuous at best, the fair comparison would be to present neanderthal loops like this:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;  &lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt; c &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; list.&lt;span style="color: #000060;"&gt;new_cursor&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt; c.&lt;span style="color: #000060;"&gt;after&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
    print &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;c.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
    c.&lt;span style="color: #000060;"&gt;forth&lt;/span&gt;
   &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;which is a style both used by leading practitioners and the one consistent with the style of the neo-neanderthal examples. This reduces the line count "advantage" to hardly anything.
&lt;/p&gt;
&lt;a name="A_bad_take_at_a_known_construct"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;A bad take at a known construct&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;If I was trying to add a loop construct of that genre, I’d hide the cursor totally and do something like:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;  &lt;span style="color: #0600FF; font-weight: bold;"&gt;across&lt;/span&gt; container &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; item &lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
    print &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;item&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt; 
  &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;which is what other languages with neo-neanderthal looping constructs do, for a good reason. We don’t need to be gratuitously worse than the common practice for the sake of originality.
&lt;/p&gt;&lt;p&gt;The construct above could be generalised to the hash table case with something like ‘across table with item, key loop’ — were it not anyway totally superfluous given that do_all_with_key does it much better (the only reason it’s not in HASH_TABLE is that as far as I know the maintainer got arrested for earlier crimes against software quality — the class is a crime hotspot — so the class has been unmaintained since the lengthy court martial proceedings started). Low-crime hash table classes like the one in Gobo are well equipped.
&lt;/p&gt;
&lt;a name="Going_past_the_Good_Idea_Entropy_Axiom"&gt;&lt;/a&gt;&lt;h2&gt; &lt;span class="mw-headline"&gt;Going past the Good Idea Entropy Axiom&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;To finish I’ll expose my theory why this proposal happened. 
&lt;/p&gt;&lt;p&gt;One of the fundamental laws of the universe is the Good Idea Entropy Axiom, which reads:
&lt;/p&gt;&lt;p&gt;– The aggregate quality of ideas available in the universe must never increase.
&lt;/p&gt;&lt;p&gt;and I think that Bertrand has taken this theorem individually and, to compensate for the recently introduced and excellent theory of aliasing, has had to introduce neo-neanderthal loops so that his net contribution to the world of ideas is not positive. But the universe is full of people who produce more than their fair shares of bad ideas, so to each to their ability: I urge Bertrand leave to others the jobs of creating junk language proposals and keeps to the supply of good ideas.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/9GrhK-YvO2M" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/391#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/440">across</category>
 <category domain="http://www.eiffelroom.org/tag/agents">Agents</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/443">bad</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/446">entropy</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/441">iteration</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/449">language design</category>
 <category domain="http://www.eiffelroom.org/tag/loop">loop</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/445">mistaken</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/448">theory</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/447">universe</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/444">wrong</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/391</wfw:commentRss>
 <pubDate>Mon, 08 Feb 2010 17:49:04 +0000</pubDate>
 <dc:creator>nenieorg</dc:creator>
 <guid isPermaLink="false">391 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/391</feedburner:origLink></item>
<item>
 <title>Eiffelroom migrated from drupal5 to drupal6</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/s1i5_ZYsBA8/389</link>
 <description>&lt;p&gt;Hi Eiffelroom users,
&lt;/p&gt;&lt;p&gt;You might not have noticed, but eiffelroom.org (or .com) is now running on drupal6 (before it was drupal5). .
We tried to do the best migration as possible, however if you notice any regression/bug,
please let us know using the &lt;a href="http://www.eiffelroom.org/contact" class="internal" title="path:contact"&gt; contact page&lt;/a&gt;.
The content text format is now using the same engine as mediawiki, that is to say wikitext syntax.
&lt;/p&gt;&lt;p&gt;There is tiny difference with previous version of eiffelroom.
&lt;/p&gt;&lt;p&gt;So from now, please:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;use &lt;span class="geshifilter"&gt;&lt;code class="geshifilter-text"&gt;[[path:blog/someone/a_post| the post title]]&lt;/code&gt;&lt;/span&gt;  instead of using the absolute url  &lt;span class="geshifilter"&gt;&lt;code class="geshifilter-text"&gt;[http://www.eiffelroom.com/blog/someone/a_post the post title]&lt;/code&gt;&lt;/span&gt;
&lt;/li&gt;&lt;li&gt;to display image, either use the &lt;span class="geshifilter"&gt;&lt;code class="geshifilter-text"&gt;[[Image:My Image Title]]&lt;/code&gt;&lt;/span&gt; , or use its absolute url to display them such as &lt;span class="geshifilter"&gt;&lt;code class="geshifilter-text"&gt;http://eiffel.com/images/eiffel08/design-by-contract.gif&lt;/code&gt;&lt;/span&gt; which will be transform as the associated image. &lt;br /&gt;Please visit &lt;a href="http://www.eiffelroom.org/blog/juliant/a_picture_says_more_than_thousand_words" class="internal" title="path:blog/juliant/a_picture_says_more_than_thousand_words"&gt;A picture says more than thousand words&lt;/a&gt; for more information, and even the &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax" class="external text" title="http://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax"&gt;Mediawiki syntax for image&lt;/a&gt;.
&lt;/li&gt;&lt;li&gt;to link to eiffelstudio's pages on origo , you can do for instance&lt;span class="geshifilter"&gt;&lt;code class="geshifilter-text"&gt;[[eiffelstudio-origo:download/1540|Download 6.5 release]]&lt;/code&gt;&lt;/span&gt;
&lt;/li&gt;&lt;li&gt;note this is possible to add other interwiki mappings, so if you are missing an important one, please suggest it.
&lt;/li&gt;&lt;li&gt;If you feel like eiffelroom is missing an essential feature, please feel free to suggest it.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And now you can really use your &lt;a href="http://support.eiffel.com/" class="external free" title="http://support.eiffel.com/"&gt;http://support.eiffel.com/&lt;/a&gt; account login/password to log into eiffelroom (before it was working as long as you didn't change your password on the support site).
&lt;/p&gt;&lt;p&gt;Enjoy Eiffelroom
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/s1i5_ZYsBA8" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/389#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/drupal">drupal</category>
 <category domain="http://www.eiffelroom.org/tag/eiffelroom">eiffelroom</category>
 <category domain="http://www.eiffelroom.org/tag/migration">migration</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/389</wfw:commentRss>
 <pubDate>Thu, 28 Jan 2010 14:47:37 +0000</pubDate>
 <dc:creator>Jocelyn Fiat</dc:creator>
 <guid isPermaLink="false">389 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/389</feedburner:origLink></item>
<item>
 <title>Working on UTF-8 Eiffel parser</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/6I8ehigyxXY/388</link>
 <description>&lt;p&gt;I am so excited that I can really push ISE Eiffel compiler to support full Unicode.
6.6 should be the first version to support it.
&lt;/p&gt;&lt;p&gt;The first thing I do is parsing UTF-8 source code.
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/6I8ehigyxXY" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/388#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/compiler">compiler</category>
 <category domain="http://www.eiffelroom.org/tag/unicode">Unicode</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/388</wfw:commentRss>
 <pubDate>Thu, 28 Jan 2010 07:25:07 +0000</pubDate>
 <dc:creator>ted_eiffel</dc:creator>
 <guid isPermaLink="false">388 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/388</feedburner:origLink></item>
<item>
 <title>Creating a .NET delegate object from an Eiffel routine</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/0HSsfG9Oduw/387</link>
 <description>&lt;div class="field field-type-text field-field-short-description"&gt;
      &lt;div class="field-label"&gt;Short Description:&amp;nbsp;&lt;/div&gt;
    &lt;div class="field-items"&gt;
            &lt;div class="field-item odd"&gt;
                    This tutorial will show you how to create a .NET delegate from an Eiffel routine        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Someone recently asked me how to create a .NET delegate from an Eiffel routine. Ideally it would be nice to simply do:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;	my_delegate &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;agent&lt;/span&gt; my_routine&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_delegate&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;where `to_delegate' is a query from the ROUTINE class. However this feature does not yet exist. Instead I've devised a simple way to create a delegate given a routine name of the Current class:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;	my_delegate &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; new_delegate &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;my_routine&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;Where &lt;span class="geshifilter"&gt;&lt;code class="geshifilter-eiffel"&gt;new_delegate&lt;/code&gt;&lt;/span&gt; is defined as:
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;	new_delegate &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;a_name&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+string&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;STRING&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #600000;"&gt;:&lt;/span&gt; DELEGATE
			&lt;span style="color: #008000; font-style: italic;"&gt;-- Using `a_name' routine from the current class creates its corresponding&lt;/span&gt;
			&lt;span style="color: #008000; font-style: italic;"&gt;-- .NET delegate if found, Void otherwise.&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;require&lt;/span&gt;
			a_name_not_void&lt;span style="color: #600000;"&gt;:&lt;/span&gt; a_name &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			l_obj&lt;span style="color: #600000;"&gt;:&lt;/span&gt; SYSTEM_OBJECT
			l_method_info&lt;span style="color: #600000;"&gt;:&lt;/span&gt; METHOD_INFO
			l_params&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATIVE_ARRAY &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;SYSTEM_TYPE&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			l_delegate_type&lt;span style="color: #600000;"&gt;:&lt;/span&gt; SYSTEM_TYPE
			i, nb&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			l_obj &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Current&lt;/span&gt;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Obtain the associated MethodInfo for routine `a_name' from Current.&lt;/span&gt;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Use the Eiffel name first and if we cannot find it, then the PascalCase version&lt;/span&gt;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- of the name (This is an EiffelStudio project settings for .NET code generation).&lt;/span&gt;
			l_method_info &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_obj.&lt;span style="color: #000060;"&gt;get_type&lt;/span&gt;.&lt;span style="color: #000060;"&gt;get_method&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;a_name&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; l_method_info &lt;span style="color: #600000;"&gt;=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
				l_method_info &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_obj.&lt;span style="color: #000060;"&gt;get_type&lt;/span&gt;.&lt;span style="color: #000060;"&gt;get_method&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;pascal_case &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;a_name&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- If not MethodInfo was found, the name was incorrect and we simply return Void.&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; l_method_info &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;attached&lt;/span&gt; l_method_info.&lt;span style="color: #000060;"&gt;get_parameters&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; l_infos &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
						i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
						nb &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_infos.&lt;span style="color: #000060;"&gt;count&lt;/span&gt;
						&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; l_params.&lt;span style="color: #000060;"&gt;make&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;nb &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
						i &lt;span style="color: #600000;"&gt;=&lt;/span&gt; nb
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
						l_params.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;, l_infos.&lt;span style="color: #000060;"&gt;item&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;parameter_type&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
						i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
					&lt;span style="color: #008000; font-style: italic;"&gt;-- Always the type of Current as first argument&lt;/span&gt;
					&lt;span style="color: #008000; font-style: italic;"&gt;-- (Eiffel always generates instance methods).&lt;/span&gt;
				l_params.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;0, l_obj.&lt;span style="color: #000060;"&gt;get_type&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				l_delegate_type &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; new_delegate_type &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_method_info.&lt;span style="color: #000060;"&gt;return_type&lt;/span&gt;, l_params&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; l_delegate_type &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					&lt;span style="color: #800080;"&gt;Result&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;DELEGATE&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;create_delegate&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_delegate_type, l_method_info, &lt;span style="color: #800080;"&gt;True&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	new_delegate_type &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;a_return_type&lt;span style="color: #600000;"&gt;:&lt;/span&gt; SYSTEM_TYPE; a_parameters&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATIVE_ARRAY &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;SYSTEM_TYPE&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #600000;"&gt;:&lt;/span&gt; SYSTEM_TYPE
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			l_name&lt;span style="color: #600000;"&gt;:&lt;/span&gt; ASSEMBLY_NAME
			l_assembly&lt;span style="color: #600000;"&gt;:&lt;/span&gt; ASSEMBLY_BUILDER
			l_module&lt;span style="color: #600000;"&gt;:&lt;/span&gt; MODULE_BUILDER
			l_type&lt;span style="color: #600000;"&gt;:&lt;/span&gt; TYPE_BUILDER
			l_constructor&lt;span style="color: #600000;"&gt;:&lt;/span&gt; CONSTRUCTOR_BUILDER
			l_invoke&lt;span style="color: #600000;"&gt;:&lt;/span&gt; METHOD_BUILDER
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Creating the assembly holding the delegate type&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; l_name.&lt;span style="color: #000060;"&gt;make&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;DelegateDynamicAssembly&amp;quot;&lt;/span&gt; &lt;span style="color: #600000;"&gt;+&lt;/span&gt; counter.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;.&lt;span style="color: #000060;"&gt;out&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
			l_assembly &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;APP_DOMAIN&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;current_domain&lt;/span&gt;.&lt;span style="color: #000060;"&gt;define_dynamic_assembly&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_name,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;ASSEMBLY_BUILDER_ACCESS&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;run_and_save&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
			l_module &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_assembly.&lt;span style="color: #000060;"&gt;define_dynamic_module&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_name.&lt;span style="color: #000060;"&gt;name&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;SYSTEM_STRING&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;concat&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_name.&lt;span style="color: #000060;"&gt;name&lt;/span&gt;, dll_extension&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Creating the delegate type&lt;/span&gt;
			l_type &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_module.&lt;span style="color: #000060;"&gt;define_type&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;Delegate&amp;quot;&lt;/span&gt; &lt;span style="color: #600000;"&gt;+&lt;/span&gt; counter.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;.&lt;span style="color: #000060;"&gt;out&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;TYPE_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;Public&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;TYPE_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;sealed&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;TYPE_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;ansi_class&lt;/span&gt; |
					&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;TYPE_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;auto_class&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;MULTICAST_DELEGATE&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Creating the .ctor&lt;/span&gt;
			l_constructor &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_type.&lt;span style="color: #000060;"&gt;define_constructor&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;public&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;special_name&lt;/span&gt; |
					&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;rt_special_name&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;hide_by_sig&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;CALLING_CONVENTIONS&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;standard&lt;/span&gt;, &lt;span style="color: #600000;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;SYSTEM_OBJECT&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_cil&lt;/span&gt;, &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+pointer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;POINTER&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_cil&lt;/span&gt; &lt;span style="color: #600000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
			l_constructor.&lt;span style="color: #000060;"&gt;set_implementation_flags&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_IMPL_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;runtime&lt;/span&gt; |
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_IMPL_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;managed&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Create `invoke'&lt;/span&gt;
			l_invoke &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_type.&lt;span style="color: #000060;"&gt;define_method&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;Invoke&amp;quot;&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;public&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;hide_by_sig&lt;/span&gt; | 
					&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;new_slot&lt;/span&gt; | &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;virtual&lt;/span&gt;,
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;CALLING_CONVENTIONS&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;standard&lt;/span&gt;,
				a_return_type, a_parameters&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
			l_invoke.&lt;span style="color: #000060;"&gt;set_implementation_flags&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_IMPL_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;runtime&lt;/span&gt; | 
				&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;METHOD_IMPL_ATTRIBUTES&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;managed&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
			&lt;span style="color: #800080;"&gt;Result&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; l_type.&lt;span style="color: #000060;"&gt;create_type&lt;/span&gt;
			l_assembly.&lt;span style="color: #000060;"&gt;save&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;SYSTEM_STRING&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;concat&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_name.&lt;span style="color: #000060;"&gt;name&lt;/span&gt;, dll_extension&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
				&lt;span style="color: #008000; font-style: italic;"&gt;-- Increment our counter&lt;/span&gt;
			counter.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;counter.&lt;span style="color: #000060;"&gt;item&lt;/span&gt; &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	dll_extension&lt;span style="color: #600000;"&gt;:&lt;/span&gt; SYSTEM_STRING &lt;span style="color: #600000;"&gt;=&lt;/span&gt; &lt;span style="color: #0080A0;"&gt;&amp;quot;.dll&amp;quot;&lt;/span&gt;
			&lt;span style="color: #008000; font-style: italic;"&gt;-- Extension for assembly/module&lt;/span&gt;
&amp;nbsp;
	pascal_case &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;name&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+string&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;STRING&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+string&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;STRING&lt;/span&gt;&lt;/a&gt;
			&lt;span style="color: #008000; font-style: italic;"&gt;-- Convert `name' using PascalCasing convention.&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;require&lt;/span&gt;
			name_not_void&lt;span style="color: #600000;"&gt;:&lt;/span&gt; name &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt;
			name_not_empty&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;not&lt;/span&gt; name.&lt;span style="color: #000060;"&gt;is_empty&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			i, nb&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
			l_c&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+character&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CHARACTER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #800080;"&gt;Result&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; name
			&lt;span style="color: #800080;"&gt;Result&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;twin&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;2&lt;/span&gt;
				nb &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;count&lt;/span&gt;
				&lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;upper&lt;/span&gt;, &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; nb
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
					&lt;span style="color: #008000; font-style: italic;"&gt;-- When we encounter a '_' we delete it if it is not the last one&lt;/span&gt;
					&lt;span style="color: #008000; font-style: italic;"&gt;-- in `Result' and the character following the `_' has its case&lt;/span&gt;
					&lt;span style="color: #008000; font-style: italic;"&gt;-- changed  to upper.&lt;/span&gt;
				l_c &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; l_c &lt;span style="color: #600000;"&gt;=&lt;/span&gt; &lt;span style="color: #0080A0;"&gt;'_'&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;and&lt;/span&gt; i &lt;span style="color: #600000;"&gt;&amp;lt;&lt;/span&gt; nb &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					l_c &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; l_c.&lt;span style="color: #000060;"&gt;upper&lt;/span&gt; &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; l_c &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
						&lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;remove&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
						nb &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; nb &lt;span style="color: #600000;"&gt;-&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
						&lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;l_c.&lt;span style="color: #000060;"&gt;upper&lt;/span&gt;, i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
					&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;ensure&lt;/span&gt;
			result_not_void&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt; &lt;span style="color: #600000;"&gt;/=&lt;/span&gt; &lt;span style="color: #800080;"&gt;Void&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	counter&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;once&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #800080;"&gt;Result&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/0HSsfG9Oduw" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/387#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/3">Tutorial</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/8">Intermediate</category>
 <category domain="http://www.eiffelroom.org/tag/net_0">.NET</category>
 <category domain="http://www.eiffelroom.org/tag/agents">Agents</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/438">delegate</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/387</wfw:commentRss>
 <pubDate>Fri, 15 Jan 2010 22:15:42 +0000</pubDate>
 <dc:creator>manus_eiffel</dc:creator>
 <guid isPermaLink="false">387 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/387</feedburner:origLink></item>
<item>
 <title>How to run sample program in eiffel studio</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/f5nhOzFgqvw/386</link>
 <description>&lt;p&gt;class
	APPLICATION
&lt;/p&gt;&lt;p&gt;inherit
	ARGUMENTS
&lt;/p&gt;&lt;p&gt;create
	make
&lt;/p&gt;&lt;p&gt;feature
&lt;/p&gt;&lt;p&gt;	make
&lt;/p&gt;&lt;p&gt;		do
		 	io.put_string ("Hello, world!%N")
&lt;/p&gt;&lt;p&gt;		end
&lt;/p&gt;&lt;p&gt;end
&lt;/p&gt;&lt;p&gt;when i compiled this program i got this result "Eiffel Compilation Succeeded" ..
&lt;/p&gt;&lt;p&gt;When i run the program i got this out put 
&lt;/p&gt;&lt;p&gt;Launching system&amp;nbsp;:
&lt;/p&gt;
&lt;pre&gt; - directory = `/home/ss4u/Desktop/project/'
 - arguments = `test'
&lt;/pre&gt;
&lt;p&gt;System is running
Application launched
Application is running
Application exited
&lt;/p&gt;&lt;p&gt;But this output "Hello, world!" is not showing...
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/f5nhOzFgqvw" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/386#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/437">How to run sample program in eiffel studio</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/386</wfw:commentRss>
 <pubDate>Mon, 28 Dec 2009 09:07:38 +0000</pubDate>
 <dc:creator>testss4u</dc:creator>
 <guid isPermaLink="false">386 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/386</feedburner:origLink></item>
<item>
 <title>Make EiffelStudio a Tool for Adding Target Platforms to EiffelStudio</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/9MqQB-nRhG4/385</link>
 <description>&lt;p&gt;While this is likely a huge undertaking and may require architectural changes to the product, the easy addition of unsupported target platforms should exhibit the advantages of Eiffel. And because EiffelStudio has support, at the beta level, for only one platform I need to target. 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/9MqQB-nRhG4" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/node/385#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/419">open</category>
 <category domain="http://www.eiffelroom.org/tag/adding_platform_support">adding platform support</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/436">EiffelStudio source</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/435">targets</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/385</wfw:commentRss>
 <pubDate>Fri, 18 Dec 2009 03:04:17 +0000</pubDate>
 <dc:creator>DonTHB</dc:creator>
 <guid isPermaLink="false">385 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/node/385</feedburner:origLink></item>
<item>
 <title>Why doesn't it work?</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/453fo5vt9rk/why_doesnt_it_work</link>
 <description>&lt;div class="field field-type-text field-field-short-description"&gt;
      &lt;div class="field-label"&gt;Short Description:&amp;nbsp;&lt;/div&gt;
    &lt;div class="field-items"&gt;
            &lt;div class="field-item odd"&gt;
                    involve read file and write to file        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I start using I/O in eiffel, and my first program doesn't work.
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;	make
	&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
      input &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+plain_text_file&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;PLAIN_TEXT_FILE&lt;/span&gt;&lt;/a&gt;
      output &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+plain_text_file&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;PLAIN_TEXT_FILE&lt;/span&gt;&lt;/a&gt;
      internal &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+array&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;ARRAY&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+character&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CHARACTER&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
      i, j &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
    &lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
      io.&lt;span style="color: #000060;"&gt;putstring&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;Welcome to file-io land! &lt;span style="color: #005070; font-weight: bold;"&gt;%N&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt;  input.&lt;span style="color: #000060;"&gt;make_open_read&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;C:\eiffel\test1.txt&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      io.&lt;span style="color: #000060;"&gt;put_string&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;STOP&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt;  output.&lt;span style="color: #000060;"&gt;make_open_write&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;C:\eiffel\test1_copy.txt&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt;  internal.&lt;span style="color: #000060;"&gt;make&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;,&lt;span style="color: #FF0000;"&gt;1000&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt; input.&lt;span style="color: #000060;"&gt;start&lt;/span&gt; ; input.&lt;span style="color: #000060;"&gt;read_character&lt;/span&gt; ; i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt; input.&lt;span style="color: #000060;"&gt;off&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
        io.&lt;span style="color: #000060;"&gt;putchar&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;input.&lt;span style="color: #000060;"&gt;last_character&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
        i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
        internal.&lt;span style="color: #000060;"&gt;put&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;input.&lt;span style="color: #000060;"&gt;last_character&lt;/span&gt;,i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
        input.&lt;span style="color: #000060;"&gt;read_character&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
      input.&lt;span style="color: #000060;"&gt;close&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
      io.&lt;span style="color: #000060;"&gt;putstring&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;&lt;span style="color: #005070; font-weight: bold;"&gt;%N&lt;/span&gt;&lt;span style="color: #005070; font-weight: bold;"&gt;%N&lt;/span&gt;Copy from array&lt;span style="color: #005070; font-weight: bold;"&gt;%N&lt;/span&gt;&lt;span style="color: #005070; font-weight: bold;"&gt;%N&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt; j &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt; j &lt;span style="color: #600000;"&gt;=&lt;/span&gt; i
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
        j &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; j &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
        output.&lt;span style="color: #000060;"&gt;putchar&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;internal @ j&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
      output.&lt;span style="color: #000060;"&gt;close&lt;/span&gt;
&amp;nbsp;
      io.&lt;span style="color: #000060;"&gt;putstring&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;Done.&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
      &lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
Could anybody explain this to me?
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/453fo5vt9rk" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/article/why_doesnt_it_work#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/2">Example</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/7">Beginner</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/384</wfw:commentRss>
 <pubDate>Mon, 23 Nov 2009 03:33:35 +0000</pubDate>
 <dc:creator>creative.bachkhoa</dc:creator>
 <guid isPermaLink="false">384 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/article/why_doesnt_it_work</feedburner:origLink></item>
<item>
 <title>Passback variable performance comparison</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/rlFm9IrPb0k/passback_variable_performance_comparison</link>
 <description>&lt;div class="field field-type-text field-field-short-description"&gt;
      &lt;div class="field-label"&gt;Short Description:&amp;nbsp;&lt;/div&gt;
    &lt;div class="field-items"&gt;
            &lt;div class="field-item odd"&gt;
                    A performance comparison between CELL, TUPLE, and SPECIAL when used as a 1-variable passback in void-safe code.        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These tests test the allocation performance of 3 passback variable options and the subsequent access time when retrieving the value back from the calling function.
&lt;/p&gt;&lt;p&gt;The difficulty in a general solution arises with void safety.  CELL needs to have an initial value provided upon creation, for a complex type a dummy value may not be an option so a detachable type would be used with the default value initialized to void.  TUPLE isn't currently void-safe though in the future the thinking is that TUPLE will need default initialization similar to CELL.  The performance hit would then be on the retrieval needing to go through an object test.  SPECIAL has the unique property of being able to have an attached type without an initializer.  Note there are 10x more retrieval attempts than allocations in order to get a descent time sample; allocation is by far the slower process.
&lt;/p&gt;&lt;p&gt;Test setup:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; ES version 6.5.8.1550
&lt;/li&gt;&lt;li&gt; Finalized
&lt;/li&gt;&lt;li&gt; Complete void-safety
&lt;/li&gt;&lt;li&gt; Types attached by default
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Results:
test_1 CELL allocation: 
21.259, 21.159, 21.206
&lt;/p&gt;&lt;p&gt;test_2 TUPLE allocation:
24.490, 24.483, 24.514
&lt;/p&gt;&lt;p&gt;test_3 SPECIAL allocation:
22.502, 22.515, 22.553
&lt;/p&gt;&lt;p&gt;test_4 CELL access:
10.613, 10.571, 10.572
&lt;/p&gt;&lt;p&gt;test_5 TUPLE access:
12.901, 12.841, 12.837
&lt;/p&gt;&lt;p&gt;test_6 SPECIAL access:
13.642, 13.572, 13.580
&lt;/p&gt;&lt;p&gt;test_7 CELL access no object test:
10.614, 10.590, 10.584
&lt;/p&gt;&lt;p&gt;Allocation (greater is faster)
CELL &amp;gt; SPECIAL &amp;gt; TUPLE
&lt;/p&gt;&lt;p&gt;Access (greater is faster)
CELL &amp;gt; TUPLE &amp;gt; SPECIAL
&lt;/p&gt;&lt;p&gt;Allocation time is a factor of 20 slower than access so over all CELL is the fastest when used as a single creation single passback context.  All of these options are very close in performance to each other and realistically shouldn't make a difference.
&lt;/p&gt;&lt;p&gt;It's unusual that SPECIAL would have a slower access time than an object check with CELL or TUPLE.
&lt;/p&gt;&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt;	
	make
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			test_1
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_1
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;100&lt;/span&gt;_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				test_cell
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_2
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;100&lt;/span&gt;_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				test_tuple
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_3
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;100&lt;/span&gt;_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				test_special
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_4
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
			val&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			val_2&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sub_ddmmss_cell &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;_000_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;attached&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt; val &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; val_l &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; val_l.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;attached&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt; val &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; val_l &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; val_l.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_5
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
			val&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			val_2&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1
			sub_ddmmss_tuple &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;_000_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;r0&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;attached&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt; val &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; val_l &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; val_l.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;r1&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;attached&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt; val &lt;span style="color: #0600FF; font-weight: bold;"&gt;as&lt;/span&gt; val_l &lt;span style="color: #0600FF; font-weight: bold;"&gt;then&lt;/span&gt;
					val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; val_l.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_6
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
			val_2&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;make_empty&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;make_empty&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sub_ddmmss_special &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;_000_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r0 &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;0&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				val_2 &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r1 &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;0&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_7
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
			val&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sub_ddmmss_cell &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; 0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;_000_000_000
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				val &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;.&lt;span style="color: #000060;"&gt;item&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; i &lt;span style="color: #600000;"&gt;+&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_cell
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #800080;"&gt;Void&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sub_ddmmss_cell &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_tuple
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1
			sub_ddmmss_tuple &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	test_special
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			r0&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
			r1&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r0.&lt;span style="color: #000060;"&gt;make_empty&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; r1.&lt;span style="color: #000060;"&gt;make_empty&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sub_ddmmss_special &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;r0, r1, 0x55bf739f, 0xc3945435, 0x0fff167f, 0xf3e8e754&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	sub_ddmmss_cell &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;sh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; sl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; ah&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; al&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			x&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			x &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; al &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bl
			sh.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;ah &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bh &lt;span style="color: #600000;"&gt;-&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;al &lt;span style="color: #600000;"&gt;&amp;lt;&lt;/span&gt; bl&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_integer&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_natural_32&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sl.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	sub_ddmmss_tuple &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;sh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;sh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; sl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+tuple&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;TUPLE&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;sl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;detachable&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; ah&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; al&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			x&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			x &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; al &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bl
			sh.&lt;span style="color: #000060;"&gt;sh&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;ah &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bh &lt;span style="color: #600000;"&gt;-&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;al &lt;span style="color: #600000;"&gt;&amp;lt;&lt;/span&gt; bl&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_integer&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_natural_32&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sl.&lt;span style="color: #000060;"&gt;sl&lt;/span&gt; &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
&amp;nbsp;
	sub_ddmmss_special &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;sh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; sl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+special&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;SPECIAL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;; ah&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; al&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bh&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32; bl&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			x&lt;span style="color: #600000;"&gt;:&lt;/span&gt; NATURAL_32
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			x &lt;span style="color: #600000;"&gt;:=&lt;/span&gt; al &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bl
			sh.&lt;span style="color: #000060;"&gt;force&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;ah &lt;span style="color: #600000;"&gt;-&lt;/span&gt; bh &lt;span style="color: #600000;"&gt;-&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;al &lt;span style="color: #600000;"&gt;&amp;lt;&lt;/span&gt; bl&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_integer&lt;/span&gt;.&lt;span style="color: #000060;"&gt;to_natural_32&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;, 0&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			sl.&lt;span style="color: #000060;"&gt;force&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+cell&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;CELL&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;NATURAL_32&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#125;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;put&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;, 0&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;Update: Replaced `extend' in special test with more realistic `force'.  This makes CELL with an object test the fastest option.
&lt;/p&gt;&lt;p&gt;Update: Added test_7 which tests accessing cell without an object test.  This compared to test_4 with an object test shows object tests are negligible performance hits when the test always is true.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/rlFm9IrPb0k" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/article/passback_variable_performance_comparison#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/3">Tutorial</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/7">Beginner</category>
 <category domain="http://www.eiffelroom.org/tag/performance">performance</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/383</wfw:commentRss>
 <pubDate>Wed, 18 Nov 2009 18:35:27 +0000</pubDate>
 <dc:creator>clemahieu</dc:creator>
 <guid isPermaLink="false">383 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/article/passback_variable_performance_comparison</feedburner:origLink></item>
<item>
 <title>Trouble with array of linked_list elements</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/UwKP54UPWEY/trouble_with_array_of_linked_list_elements</link>
 <description>&lt;div class="field field-type-text field-field-short-description"&gt;
      &lt;div class="field-label"&gt;Short Description:&amp;nbsp;&lt;/div&gt;
    &lt;div class="field-items"&gt;
            &lt;div class="field-item odd"&gt;
                    I represent an adjacency list of graph G(V,E).         &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I represent an adjacency list of graph G(V,E). 
&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt;
	adj_list&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+array&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;ARRAY&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+linked_list&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;LINKED_LIST&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;
&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt;
	make&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;vertices&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;
			i&lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; adj_list.&lt;span style="color: #000060;"&gt;make&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;,vertices&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;from&lt;/span&gt;
				i&lt;span style="color: #600000;"&gt;:=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;until&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;&amp;gt;&lt;/span&gt; adj_list.&lt;span style="color: #000060;"&gt;upper&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;loop&lt;/span&gt;
				&lt;span style="color: #0600FF; font-weight: bold;"&gt;create&lt;/span&gt; adj_list&lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;.&lt;span style="color: #000060;"&gt;make&lt;/span&gt;
				io.&lt;span style="color: #000060;"&gt;put_string&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;Enter the vertices match to vertex &amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
                                io.&lt;span style="color: #000060;"&gt;put_integer&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				io.&lt;span style="color: #000060;"&gt;put_string&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0080A0;"&gt;&amp;quot;:&lt;span style="color: #005070; font-weight: bold;"&gt;%T&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				read_list&lt;span style="color: #FF0000;"&gt;&amp;#40;&lt;/span&gt;adj_list&lt;span style="color: #FF0000;"&gt;&amp;#91;&lt;/span&gt;i&lt;span style="color: #FF0000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;#41;&lt;/span&gt;
				i&lt;span style="color: #600000;"&gt;:=&lt;/span&gt;i&lt;span style="color: #600000;"&gt;+&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;
		&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;pre&gt;The compile said "expression cannot be used as instruction"  at the stage "create adj_list[i].make " 
 Does it make sense? Can anybody help me fix it? 
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/UwKP54UPWEY" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/article/trouble_with_array_of_linked_list_elements#comments</comments>
 <category domain="http://www.eiffelroom.org/taxonomy/term/2">Example</category>
 <category domain="http://www.eiffelroom.org/taxonomy/term/7">Beginner</category>
 <category domain="http://www.eiffelroom.org/tag/linked_list">linked_list</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/382</wfw:commentRss>
 <pubDate>Wed, 11 Nov 2009 17:23:19 +0000</pubDate>
 <dc:creator>creative.bachkhoa</dc:creator>
 <guid isPermaLink="false">382 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/article/trouble_with_array_of_linked_list_elements</feedburner:origLink></item>
<item>
 <title>Can't construct for local variables.</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/ITSgTd92gsE/cant_construct_for_local_variables</link>
 <description>&lt;p&gt;I use this code, but when run it has error like this:
&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;&amp;nbsp;
Syntax error at line &lt;span style="color: #FF0000;"&gt;22&lt;/span&gt; in &lt;span style="color: #0600FF; font-weight: bold;"&gt;class&lt;/span&gt; EXCEPTIONHAN
&amp;nbsp;
            &lt;span style="color: #008000; font-style: italic;"&gt;-- Client deposit money into his account.&lt;/span&gt;
            &lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt;     account_number &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;is&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;10&lt;/span&gt;
&lt;span style="color: #008000; font-style: italic;"&gt;-----------------------------------------------^&lt;/span&gt;
                    i &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;			&lt;/pre&gt;&lt;/div&gt;
See my code:
&lt;div class="geshifilter"&gt;&lt;pre class="eiffel geshifilter-eiffel" style="font-family:monospace;"&gt;&lt;span style="color: #0600FF; font-weight: bold;"&gt;feature&lt;/span&gt; Client_Deposit &lt;span style="color: #0600FF; font-weight: bold;"&gt;is&lt;/span&gt;
			&lt;span style="color: #008000; font-style: italic;"&gt;-- Client deposit money into his account.&lt;/span&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;local&lt;/span&gt; 	account_number &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #0600FF; font-weight: bold;"&gt;is&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;10&lt;/span&gt;
				i &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+integer&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;INTEGER&lt;/span&gt;&lt;/a&gt;
				amount &lt;span style="color: #600000;"&gt;:&lt;/span&gt; &lt;a href="http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+real&amp;amp;btnI=I%27m+Feeling+Lucky"&gt;&lt;span style="color: #800000"&gt;REAL&lt;/span&gt;&lt;/a&gt;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;do&lt;/span&gt;
&amp;nbsp;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;rescue&lt;/span&gt;
&amp;nbsp;
			&lt;span style="color: #0600FF; font-weight: bold;"&gt;end&lt;/span&gt; &lt;span style="color: #008000; font-style: italic;"&gt;-- client Deposit.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
It's meant we can't construct for local variable in eiffel.
In java, it's very easy.
&amp;lt;java&amp;gt;
void Client_Deposit(){
int account_number = 10;
.....
}
&amp;lt;/java&amp;gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/ITSgTd92gsE" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/blog/phundinhvu/cant_construct_for_local_variables#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/construct_local_variable">construct local variable.</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/381</wfw:commentRss>
 <pubDate>Wed, 04 Nov 2009 10:13:35 +0000</pubDate>
 <dc:creator>phundinhvu</dc:creator>
 <guid isPermaLink="false">381 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/blog/phundinhvu/cant_construct_for_local_variables</feedburner:origLink></item>
<item>
 <title>Exception in eiffel.</title>
 <link>http://feedproxy.google.com/~r/Eiffelroom/~3/2HCXoBYBAws/exception_in_eiffel</link>
 <description>&lt;p&gt;I'm studying about exception in eiffel and how to hand it. When have results, i'll post it here.
Now, i hope there're some conferences about this title.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Eiffelroom/~4/2HCXoBYBAws" height="1" width="1"/&gt;</description>
 <comments>http://www.eiffelroom.org/blog/phundinhvu/exception_in_eiffel#comments</comments>
 <category domain="http://www.eiffelroom.org/tag/exception">exception</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.eiffelroom.org/crss/node/379</wfw:commentRss>
 <pubDate>Tue, 03 Nov 2009 03:23:18 +0000</pubDate>
 <dc:creator>phundinhvu</dc:creator>
 <guid isPermaLink="false">379 at http://www.eiffelroom.org</guid>
<feedburner:origLink>http://www.eiffelroom.org/blog/phundinhvu/exception_in_eiffel</feedburner:origLink></item>
</channel>
</rss>
