<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10106032.post8042271444927431517..comments</id><updated>2010-03-06T03:05:50.413Z</updated><category term='scripting'/><category term='DLR'/><category term='CLR'/><category term='xaml'/><category term='nexenta'/><category term='business'/><category term='visualized superstructure'/><category term='silverlight'/><category term='apple'/><category term='politics'/><category term='buy'/><category term='competition'/><category term='serialization'/><category term='printing'/><category term='RAII'/><category term='open source'/><category term='Tiburon'/><category term='bash'/><category term='CodeGen'/><category term='iterators'/><category term='acropolis'/><category term='C++'/><category term='dynamic typing'/><category term='Learning'/><category term='build'/><category term='ipod'/><category term='generics'/><category term='Delphi'/><category term='enumerators'/><category term='GC'/><category term='anonymous methods'/><category term='rich client'/><category term='solaris'/><category term='static typing'/><category term='itunes'/><category term='vista'/><category term='rant'/><category term='backup'/><category term='Erlang'/><title type='text'>Comments on Entropy Overload: One-liner RAII in Delphi</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.barrkel.com/feeds/8042271444927431517/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html'/><author><name>Barry Kelly</name><uri>http://www.blogger.com/profile/10559947643606684495</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_2GNT8vlZj48/R3BcgmnurfI/AAAAAAAAAAY/Y9PdEUicKFg/S220/big-avatar-512.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10106032.post-7948041279810811450</id><published>2010-02-15T17:21:51.735Z</published><updated>2010-02-15T17:21:51.735Z</updated><title type='text'>Somehow this reminds me of this trick with interfa...</title><content type='html'>Somehow this reminds me of this trick with interfaces: http://www.malcolmgroves.com/stories/2004/04/05/writingSolidDelphiCode.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/7948041279810811450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/7948041279810811450'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1266254511735#c7948041279810811450' title=''/><author><name>wiert</name><uri>http://www.blogger.com/profile/04244706419710554421</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-704355793'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-8604813539643149836</id><published>2010-02-01T14:52:51.930Z</published><updated>2010-02-01T14:52:51.930Z</updated><title type='text'></title><content type='html'>This comment has been removed by the author.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/8604813539643149836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/8604813539643149836'/><author><name>uli</name><uri>http://www.blogger.com/profile/05234717692683531045</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.contentRemoved' value='true'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1054625662'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-5570994423775537332</id><published>2010-02-01T14:52:25.521Z</published><updated>2010-02-01T14:52:25.521Z</updated><title type='text'>Thanks for clearing this up, Barry. So my &amp;quot;fa...</title><content type='html'>Thanks for clearing this up, Barry. So my &amp;quot;fake RAII&amp;quot; instances will get a bit shorter in the future.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5570994423775537332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5570994423775537332'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265035945521#c5570994423775537332' title=''/><author><name>uli</name><uri>http://www.blogger.com/profile/05234717692683531045</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1054625662'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-3498833517132050008</id><published>2010-02-01T14:40:27.312Z</published><updated>2010-02-01T14:40:27.312Z</updated><title type='text'>As to your earlier comment, about explicit variabl...</title><content type='html'>As to your earlier comment, about explicit variables: in the hypothetical (and breaking change) case, where we optimized interface variable usage, we would likely not only break the described RAII-like functionality but also the explicit variable approach too; the values assigned to FooNotifier and BarNotifier are not used, so &amp;quot;in theory&amp;quot; they can be freed up sooner, and potentially even reuse the same storage.&lt;br /&gt;&lt;br /&gt;But of course, destruction of the interface can have side-effects, and that&amp;#39;s what&amp;#39;s being relied upon for the effect in the post. Changing the language such that side-effects like these have visible changes is not something we do willingly.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/3498833517132050008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/3498833517132050008'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265035227312#c3498833517132050008' title=''/><author><name>Barry Kelly</name><uri>http://www.blogger.com/profile/10559947643606684495</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08331762029805209075'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_2GNT8vlZj48/R3BcgmnurfI/AAAAAAAAAAY/Y9PdEUicKFg/S220/big-avatar-512.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-630653472'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-5435068515989269759</id><published>2010-02-01T14:37:41.961Z</published><updated>2010-02-01T14:37:41.961Z</updated><title type='text'>uli - the situation is rather the reverse. We (Emb...</title><content type='html'>uli - the situation is rather the reverse. We (Embarcadero) can&amp;#39;t really change the implementation semantics because of the backward compatibility impact for people relying on the behaviour.&lt;br /&gt;&lt;br /&gt;There is a situation where the scope is different to that expected in the post: if the method creating the interface is inlined into a different method, then the scope will be extended into the destination method. The result temporaries get turned into locals of the destination method.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5435068515989269759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5435068515989269759'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265035061961#c5435068515989269759' title=''/><author><name>Barry Kelly</name><uri>http://www.blogger.com/profile/10559947643606684495</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08331762029805209075'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_2GNT8vlZj48/R3BcgmnurfI/AAAAAAAAAAY/Y9PdEUicKFg/S220/big-avatar-512.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-630653472'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-6329153615180400040</id><published>2010-02-01T14:11:48.063Z</published><updated>2010-02-01T14:11:48.063Z</updated><title type='text'>@Anthony: Do you have a quote to make me feel secu...</title><content type='html'>@Anthony: Do you have a quote to make me feel secure about this? I don&amp;#39;t want to rely on implementation details that might change with the next compiler release. :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/6329153615180400040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/6329153615180400040'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265033508063#c6329153615180400040' title=''/><author><name>uli</name><uri>http://www.blogger.com/profile/05234717692683531045</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1054625662'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-5712404333008530374</id><published>2010-02-01T13:33:19.013Z</published><updated>2010-02-01T13:33:19.013Z</updated><title type='text'>Interface scoping rules are fairly well defined.  ...</title><content type='html'>Interface scoping rules are fairly well defined.  If you&amp;#39;re not maintaining any references to the interface at all, they&amp;#39;ll go out of scope when the procedure exits.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5712404333008530374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/5712404333008530374'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265031199013#c5712404333008530374' title=''/><author><name>Anthony</name><uri>http://www.blogger.com/profile/07125271407745381139</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1943023901'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-8568726021380731882</id><published>2010-02-01T08:38:33.864Z</published><updated>2010-02-01T08:38:33.864Z</updated><title type='text'>How advisable is it to rely on the fact that the h...</title><content type='html'>How advisable is it to rely on the fact that the hidden interface variables from your first &amp;quot;procedure P&amp;quot; life throughout the whole routine? When implementenig similar things, I already noticed that it seems to work, but to be sure I always used explicit variables, like in&lt;br&gt;&lt;br /&gt;procedure P;&lt;br /&gt;var&lt;br /&gt;   FooNotifier: IInterface;&lt;br /&gt;   BarNotifier: IInterface;&lt;br /&gt;begin&lt;br /&gt;   FooNotifier := DisableEnableControls(&amp;#39;Foo&amp;#39;);&lt;br /&gt;   BarNotifier := DisableEnableControls(&amp;#39;Bar&amp;#39;);&lt;br /&gt;   Writeln(&amp;#39;Controls on Foo and Bar are disabled now&amp;#39;);&lt;br /&gt;end;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/8568726021380731882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/8568726021380731882'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1265013513864#c8568726021380731882' title=''/><author><name>uli</name><uri>http://www.blogger.com/profile/05234717692683531045</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1054625662'/></entry><entry><id>tag:blogger.com,1999:blog-10106032.post-9221324139520677783</id><published>2010-01-30T00:53:42.769Z</published><updated>2010-01-30T00:53:42.769Z</updated><title type='text'>I have a procedure that does something similar I k...</title><content type='html'>I have a procedure that does something similar I keep handy.  It&amp;#39;s extremely useful for avoiding lots of nested try/finally blocks for things like temporary objects, BeginUpdate/EndUpdate, Open/Close, cursor changing, etc.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/9221324139520677783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10106032/8042271444927431517/comments/default/9221324139520677783'/><link rel='alternate' type='text/html' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html?showComment=1264812822769#c9221324139520677783' title=''/><author><name>Anthony</name><uri>http://www.blogger.com/profile/07125271407745381139</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html' ref='tag:blogger.com,1999:blog-10106032.post-8042271444927431517' source='http://www.blogger.com/feeds/10106032/posts/default/8042271444927431517' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1943023901'/></entry></feed>
