<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Software Transactional Memory</title>
	<atom:link href="http://jalf.dk/blog/2009/09/software-transactional-memory/feed/" rel="self" type="application/rss+xml" />
	<link>http://jalf.dk/blog/2009/09/software-transactional-memory/</link>
	<description>Musings and thoughts on programming and other geeky stuff</description>
	<lastBuildDate>Sat, 07 Jan 2012 20:30:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: jalf</title>
		<link>http://jalf.dk/blog/2009/09/software-transactional-memory/comment-page-1/#comment-111</link>
		<dc:creator>jalf</dc:creator>
		<pubDate>Tue, 29 Sep 2009 14:39:31 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=323#comment-111</guid>
		<description>&lt;p&gt;Thanks! No, hadn&#039;t seen that one, but will give it a read immediately. :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks! No, hadn’t seen that one, but will give it a read immediately. :)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Karel</title>
		<link>http://jalf.dk/blog/2009/09/software-transactional-memory/comment-page-1/#comment-110</link>
		<dc:creator>Ben Karel</dc:creator>
		<pubDate>Tue, 29 Sep 2009 01:36:34 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=323#comment-110</guid>
		<description>&lt;p&gt;Awesome!&lt;/p&gt;

&lt;p&gt;Dunno if you&#039;ve seen this paper, but -- considering the C++0x memory model work -- you might find it interesting:   What Do High-Level Memory Models Mean for Transactions?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Awesome!</p>

<p>Dunno if you’ve seen this paper, but — considering the C++0x memory model work — you might find it interesting:   What Do High-Level Memory Models Mean for Transactions?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: jalf</title>
		<link>http://jalf.dk/blog/2009/09/software-transactional-memory/comment-page-1/#comment-108</link>
		<dc:creator>jalf</dc:creator>
		<pubDate>Sun, 27 Sep 2009 13:51:21 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=323#comment-108</guid>
		<description>&lt;p&gt;Sure. As I mentioned in http://jalf.dk/blog/2009/08/thesis-yay/ I&#039;m going to try to implement a STM in C++, making some use of the various new C++0x features.&lt;/p&gt;

&lt;p&gt;At the moment, I&#039;m planning to use deferred update (so transactions will have to store local copies of the objects they modify, and overwrite the global versions when committing). Rvalue references in C++0x solve some of the problems with this approach, both speeding it up by turning the second final copy operation into a move, and improving exception safety.&lt;/p&gt;

&lt;p&gt;Settling on C++ makes some aspects a lot easier than in, say, Java, but obviously also presents some challenges. Some of the advantages are the high level of type safety enabled by templates, and the built-in mechanism for copying objects. Rather than Java&#039;s Clone() which never really worked well in the first place, and pass-by-reference semantics, C++ passes by value and has a copying mechanism built in at the lowest level with copy constructors, which means taking backup copies of objects is pretty trivial, and can be done on existing types without requiring any intrusive changes (inheriting from some STM base class, for example, or requiring users to implement specific interfaces).&lt;/p&gt;

&lt;p&gt;I&#039;ll post some more details soon.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sure. As I mentioned in <a href="http://jalf.dk/blog/2009/08/thesis-yay/" rel="nofollow">http://jalf.dk/blog/2009/08/thesis-yay/</a> I’m going to try to implement a STM in C++, making some use of the various new C++0x features.</p>

<p>At the moment, I’m planning to use deferred update (so transactions will have to store local copies of the objects they modify, and overwrite the global versions when committing). Rvalue references in C++0x solve some of the problems with this approach, both speeding it up by turning the second final copy operation into a move, and improving exception safety.</p>

<p>Settling on C++ makes some aspects a lot easier than in, say, Java, but obviously also presents some challenges. Some of the advantages are the high level of type safety enabled by templates, and the built-in mechanism for copying objects. Rather than Java’s Clone() which never really worked well in the first place, and pass-by-reference semantics, C++ passes by value and has a copying mechanism built in at the lowest level with copy constructors, which means taking backup copies of objects is pretty trivial, and can be done on existing types without requiring any intrusive changes (inheriting from some STM base class, for example, or requiring users to implement specific interfaces).</p>

<p>I’ll post some more details soon.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Guy gkorland@gmail.com</title>
		<link>http://jalf.dk/blog/2009/09/software-transactional-memory/comment-page-1/#comment-107</link>
		<dc:creator>Guy gkorland@gmail.com</dc:creator>
		<pubDate>Sat, 26 Sep 2009 20:03:21 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=323#comment-107</guid>
		<description>&lt;p&gt;&quot;Of course it is still early in the process, and while I’ve got some ideas for my implementation&quot;
Can you describe in general what are you up to?
Are you planing to build a new STM? For which language?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>“Of course it is still early in the process, and while I’ve got some ideas for my implementation“
Can you describe in general what are you up to?
Are you planing to build a new STM? For which language?</p>]]></content:encoded>
	</item>
</channel>
</rss>

