<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>klickverbot&#039;s thoughts</title>
	<atom:link href="http://klickverbot.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://klickverbot.wordpress.com</link>
	<description>This blog has moved to http://klickverbot.at.</description>
	<lastBuildDate>Tue, 08 Jun 2010 10:23:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='klickverbot.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/3780f5cb8ba4eb11c0f6f08295296b7c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>klickverbot&#039;s thoughts</title>
		<link>http://klickverbot.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://klickverbot.wordpress.com/osd.xml" title="klickverbot&#039;s thoughts" />
	<atom:link rel='hub' href='http://klickverbot.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Oh, how glad I am that ActionScript 2 is dead and buried…</title>
		<link>http://klickverbot.wordpress.com/2010/06/08/oh-how-glad-i-am-that-actionscript-2-is-dead-and-buried%e2%80%a6/</link>
		<comments>http://klickverbot.wordpress.com/2010/06/08/oh-how-glad-i-am-that-actionscript-2-is-dead-and-buried%e2%80%a6/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 10:23:52 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=154</guid>
		<description><![CDATA[… but unfortunately not in a personal project of mine that I started quite a while ago and which I have resumed work on recently. Today, I have been finally able to fix a bug which had already taken my some hours to trace down. Basically, mouse-over and -off events would not work properly on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=154&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>… but unfortunately not in a personal project of mine that I started quite a while ago and which I have resumed work on recently.</p>
<p>Today, I have been finally able to fix a bug which had already taken my some hours to trace down. Basically, mouse-over and -off events would not work properly on certain <code>MovieClip</code>s. After some digging through my custom code managing these events (which I needed to come up with because there is no way to let hover events bubble up the display hierarchy in ActionScript 2), I found that <code>hitTest()</code> wouldn&#8217;t work properly on these clips.</p>
<p>Now the fun part began. I meticulously checked every aspect of the <code>MovieClip</code>s for anything special, I even considered that it might have something to do with the fact that they were positioned right behind some <code>TextField</code>s, which could have triggered some Flash player bugs (given that they are already surrounded by a cloud of weirdness in AS2). Nope, nothing.</p>
<p>It wasn&#8217;t until I had already pretty much given up that I noticed that the name of the clips in question contained a period. After I removed it … <code>hitTest()</code> worked fine – thanks a lot for wasting my time, Adobe! Not only that this really should not happen, at least not without a runtime warning, the fact that you cannot use periods in <code>MovieClip</code> names is apparently undocumented.</p>
<p>Oh well…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/154/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=154&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2010/06/08/oh-how-glad-i-am-that-actionscript-2-is-dead-and-buried%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>STL Algorithms</title>
		<link>http://klickverbot.wordpress.com/2010/04/20/stl-algorithms/</link>
		<comments>http://klickverbot.wordpress.com/2010/04/20/stl-algorithms/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 17:48:58 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[STL]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=149</guid>
		<description><![CDATA[While attending a workshop at Linuxwochen Linz recently, I found using std::for_each and other algorithms from the C++ Standard Template library without even really thinking about it, much to the surprise of the other workshop attendants, which were, contrary to me, rather artists than coders. As I were thinking about the way my C++ coding [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=149&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While attending a workshop at <a href="http://linz.linuxwochen.at">Linuxwochen Linz</a> recently, I found using <code>std::for_each</code> and other algorithms from the C++ Standard Template library without even really thinking about it, much to the surprise of the other workshop attendants, which were, contrary to me, rather artists than coders. As I were thinking about the way my C++ coding style evolved over the years, I remembered that my use of <code>&lt;algorithm&gt;</code>s can be traced back to a single article on Dr. Dobb&#8217;s: <a href="http://www.drdobbs.com/cpp/184401446">STL Algorithms vs. Hand-Written Loops</a>.</p>
<p>The text was written by Scott Meyers almost ten years ago, but in my eyes, it is still a very good read on the topic. Highly recommended!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=149&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2010/04/20/stl-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>The Joys of OPTLINK</title>
		<link>http://klickverbot.wordpress.com/2010/02/13/the-joys-of-optlink/</link>
		<comments>http://klickverbot.wordpress.com/2010/02/13/the-joys-of-optlink/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 17:46:34 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[DMD]]></category>
		<category><![CDATA[OPTLINK]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=129</guid>
		<description><![CDATA[As you might know, DMD/Windows (the reference compiler for the D programming language) does not use the standard COFF format for the object files it generates, but the fairly obscure OMF instead. This fact itself causes quite a number of annoyances. For example, the format differences make it unable to link static libraries produced by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=129&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you might know, DMD/Windows (the reference compiler for the <a href="http://www.digitalmars.com/d/1.0/">D</a> programming language) does not use the standard COFF format for the object files it generates, but the fairly obscure OMF instead. This fact itself causes quite a number of annoyances. For example, the format differences make it unable to link static libraries produced by other compilers to D projects, which is especially annoying since it also applies to DLL import libraries. You also cannot use any tools which expect object files in COFF format and vice versa.</p>
<p>However, all of these issues, as annoying as they may be, do not pose a serious problem, they can all be worked around. But there is another one, and it has seven letters: OPTLINK. OPTLINK, courtesy of Digital Mars, is the linker which comes with DMD. There are quite a number of issues with it:</p>
<p>First, it is proprietary closed-source software. Apart from some people&#8217;s idealistic worries, this is also a serious problem to more pragmatically coders because <em>there are no alternatives</em> for OMF, at least no decent ones. This means that if you stumble upon a bug, you can do nothing more than to wait for Walter Bright to fix it.</p>
<p>Second, even if the source code was available, it would probably still be hard to fix bugs, since, according to Walter himself, large parts are written in <del>really complex</del> outstandingly smart assembler – a <em>maintainer&#8217;s nightmare</em>. This might also explain why it took him so long to fix some serious bugs in the past…</p>
<p>Third, there are bugs. <em>Lots of bugs</em>, compared to other linkers and with the pretty high version number (8.00.2) in mind. If you want to know what I am talking about, just search the D newsgroups; projects which make extensive use of templates seem to be affected more often than others. Until yesterday, I personally had been spared from this kind of issues, but the OPTLINK bug I encountered yesterday almost drove me crazy, because it is just plain … stupid: <span id="more-129"></span></p>
<p>After I had worked quite some time on Linux exclusively, I needed to compile a Windows version of a project of mine. So I went ahead and rebooted, updated DMD, Tango and a few other tools. Everything worked fine, the project even built fine, until I needed to build debug symbols into the binary. Every time I just added the <code>-g</code> flag to the compiler invocation, OPTLINK would abort with »Error 118: Filename Expected«. Because I had also upgraded my build tool, my first thought was that the linker commands could really be broken, but on closer inspection, it turned out that the invocation was generated perfectly fine. So I went on and downgraded all of the tools again, but to no avail – again the same error, although debug builds had worked flawlessly in the past.</p>
<p>After having searched for about an hour, I finally found the cause, and I could not really believe it at first: Compared to my previous D/Windows setup, I had added the Notepad++ installation directory to my <code>PATH</code>. You might ask yourself now, »Um, what? How should that break the linker?« Well, it turned out that OPTLINK apparently has problems with handling plus signs in all the lookup paths it uses, including not only the ones passed at the command line, but also those from the environment variables.</p>
<p>I was really tempted to just drop DMD altogether, but unfortunately, there currently is no other D compiler of comparable quality for Windows. After my anger about this went away (you become quite fast at relaxing after you work with D for a while, I suppose), one question remains: If Walter wants D to become popular, why does he ignore widely used standards (read: COFF) for the reference compilers? Being able to easily switch out OPTLINK would really help, since the maturity of the tool-chain is the number one problem of D, at least in my opinion.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=129&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2010/02/13/the-joys-of-optlink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up GDC and Tango on Linux x86</title>
		<link>http://klickverbot.wordpress.com/2009/10/26/setting-up-gdc-and-tango-on-linux-x86/</link>
		<comments>http://klickverbot.wordpress.com/2009/10/26/setting-up-gdc-and-tango-on-linux-x86/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 20:12:37 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[gdc]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tango]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=97</guid>
		<description><![CDATA[Currently, there are three more-or-less working compilers for the D programming language (version 1): The oldest and most mature one is DMD, short for Digital Mars D Compiler, the official reference implementation by Walter Bright, the creator of D. It has grown reasonably stable, but has certain limitations, most of them resulting from using a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=97&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Currently, there are three more-or-less working compilers for the <a>D programming language</a> (version 1): The oldest and most mature one is DMD, short for Digital Mars D Compiler, the official reference implementation by Walter Bright, the creator of D. It has grown reasonably stable, but has certain limitations, most of them resulting from using a proprietary back-end. Additionally, not all parts of it are Open Source (starting with a capital letter). The second one is <a href="http://dsource.org/projects/ldc">LDC</a>, a rather young, but quick-moving project which aims to port the front-end of DMD to the also fairly recent <a href="http://llvm.org">LLVM</a> compiler infrastructure in order to leverage its advanced code generation and optimization infrastructure. While it still has some bugs to iron out (most notably missing exception support on Windows), it works reasonably well on Linux x86 (32 and 64&nbsp;bit). The third compiler, and subject of interest for this post, is GDC. Like the other two compilers, it uses the Digital Mars D front-end, but coupled to the very mature GNU Compiler Collection (GCC) back-end, whose C/C++ compiler is widely used on Unix-like systems like Linux, Mac OS X, various flavors of BSD and also Windows through <a href="http://mingw.org">MinGW</a>. Unfortunately, development on it has stalled, making it pretty much unusable due to the many bugs the old DMD front-end it uses contains.</p>
<p>However, there has been an effort started to resurrect GDC recently. Development takes place over at <a href="http://bitbucket.org/goshawk/gdc">bitbucket</a> (you can also find building instructions for GDC there) and the project has been able to celebrate some first success: The reasonably recent front-end versions 1.040 and 2.015 (for D2) are working with GCC 4.3. This seemed enough of a sign of life for me to decide to give GDC another try. After some initial problems (some of which resulted from bugs which have already been fixed in the official Mercurial repository) I managed to compile a GDC binary (frontend version 1.040 against GCC 4.3.1) which happily compiles the <a href="http://dsource.org/projects/tango">Tango</a> standard library and a personal project of mine. This is what I did (silently omitting quite a few hours of searching and fixing bugs): <span id="more-97"></span></p>
<p>First, go to some temporary directory and checkout the GDC sources from the Mercurial repository (at the time of writing, revision 53 was current):<br />
<pre class="brush: bash;">
cd ~/tmp
hg clone http://bitbucket.org/goshawk/gdc
</pre></p>
<p>Then, download the core of GCC 4.3.1 from a <a href="http://gcc.gnu.org/mirrors.html">mirror near you</a> (version 4.3.2 should also work, but builds against 4.3.4 are currently known to be broken) and extract it inside the GDC sources:<br />
<pre class="brush: bash;">
wget ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc-4.3.1/gcc-core-4.3.1.tar.bz2
mkdir gdc/dev
cd gdc/dev
tar xjvf ../../gcc-core-4.3.1.tar.bz2
</pre></p>
<p>Now, link the GDC sources into the extracted directory and use the provided <code>setup-gcc.sh</code> script to patch GCC to enable D version 1:<br />
<pre class="brush: bash;">
cd gcc-4.3.4
ln -s ../../../d gcc/d
gcc/d/setup-gcc.sh --d-language-version=1
</pre></p>
<p>After that, you are ready to build and install GCC with D support. For this, go to some build directory and <code>configure</code> and <code>make</code>. You can, of course, choose an arbitrary directory for the build files (for instance, I personally prefer having the build files completely outside the source direcotry):<br />
<pre class="brush: bash;">
mkdir build
cd build
../configure --enable-languages=d --disable-multilib --disable-shared --prefix=/opt/gdc
make
sudo make install
</pre></p>
<p>Note that I configured GCC/GDC to be installed in <code>/opt/gdc</code>. As the build also includes the C compiler, this avoids any interference with the »normal« GCC installed probably in <code>/usr</code>. After the build has finished – this takes quite long, since GCC is built three times to bootstrap itself – you should have a working GDC executable in <code>/opt/gdc/bin</code>. Now for the second part, Tango:</p>
<p>Start off by fetching the Tango sources from the SVN to a temporary working directory (I worked with revision 5023):<br />
<pre class="brush: bash;">
cd ~/tmp
svn co http://svn.dsource.org/projects/tango/trunk tango
</pre></p>
<p>Unfortunately, Tango currently does not compile with GDC out of the box, you have to apply a couple of minor changes: The first change adds build/arch files for GDC/Linux:<br />
<pre class="brush: diff;">
diff --git a/build/arch/linux-i686-gdc-dbg.mak b/build/arch/linux-i686-gdc-dbg.mak
--- /dev/null
+++ b/build/arch/linux-i686-gdc-dbg.mak
@@ -0,0 +1,6 @@
+include $(ARCHDIR)/gdc.rules
+include $(ARCHDIR)/linux.inc
+
+# -Wall breaks the compilation with wrong errors
+DFLAGS_COMP=-g
+CFLAGS_COMP=-g

diff --git a/build/arch/linux-i686-gdc-opt.mak b/build/arch/linux-i686-gdc-opt.mak
--- /dev/null
+++ b/build/arch/linux-i686-gdc-opt.mak
@@ -0,0 +1,5 @@
+include $(ARCHDIR)/gdc.rules
+include $(ARCHDIR)/linux.inc
+
+DFLAGS_COMP=-O2
+CFLAGS_COMP=-O2

diff --git a/build/arch/linux-i686-gdc-tst.mak b/build/arch/linux-i686-gdc-tst.mak
--- /dev/null
+++ b/build/arch/linux-i686-gdc-tst.mak
@@ -0,0 +1,5 @@
+include $(ARCHDIR)/gdc.rules
+include $(ARCHDIR)/linux.inc
+
+DFLAGS_COMP=-g -fdeprecated -fdebug=UnitTest -funittest
+CFLAGS_COMP=-g
</pre><br />
The second change removes the <code>-fversion=Posix</code> flag from the Makefile of the runtime because the DMD frontend GDC currently uses (1.040) does not allow it to be specified as it is set automatically (this restriction has been lifted in later versions):<br />
<pre class="brush: diff;">
diff --git a/runtime/compiler/gdc/Makefile.am b/runtime/compiler/gdc/Makefile.am
--- a/runtime/compiler/gdc/Makefile.am
+++ b/runtime/compiler/gdc/Makefile.am
@@ -18,7 +18,7 @@
 # AUTOMAKE_OPTIONS = 1.9.6 foreign no-dependencies

 OUR_CFLAGS=@DEFS@ -I.
-D_EXTRA_DFLAGS=-nostdinc -pipe -I../../.. -I../shared -fversion=Posix
+D_EXTRA_DFLAGS=-nostdinc -pipe -I../../.. -I../shared
 ALL_DFLAGS = $(DFLAGS) $(D_MEM_FLAGS) $(D_EXTRA_DFLAGS) $(MULTIFLAGS)

 host_alias=.
diff --git a/runtime/compiler/gdc/Makefile.in b/runtime/compiler/gdc/Makefile.in
--- a/runtime/compiler/gdc/Makefile.in
+++ b/runtime/compiler/gdc/Makefile.in
@@ -228,7 +228,7 @@ target_vendor = @target_vendor@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 OUR_CFLAGS = @DEFS@ -I.
-D_EXTRA_DFLAGS = -nostdinc -pipe -I../../.. -I../shared -fversion=Posix
+D_EXTRA_DFLAGS = -nostdinc -pipe -I../../.. -I../shared
 ALL_DFLAGS = $(DFLAGS) $(D_MEM_FLAGS) $(D_EXTRA_DFLAGS) $(MULTIFLAGS)
 toolexecdir = $(phobos_toolexecdir)
 toolexeclibdir = $(phobos_toolexeclibdir)
</pre><br />
The third and last change adds a workaround to Tango&#8217;s user library for a bug in the DMD front-end which has been fixed by now (the compiler fails to resolve the type of the template parameter in the templated <code>intpow</code> function):<br />
<pre class="brush: diff;">
diff --git a/user/tango/math/internal/BiguintCore.d b/user/tango/math/internal/BiguintCore.d
--- a/user/tango/math/internal/BiguintCore.d
+++ b/user/tango/math/internal/BiguintCore.d
@@ -516,7 +516,7 @@ static BigUint pow(BigUint x, ulong y)
             }
             y0 = y/p;
             finalMultiplier = intpow(x0, y - y0*p);
-            x0 = intpow(x0, p);
+            x0 = intpow!(BigDigit)(x0, p);
         }
         xlength = 1;
     }
</pre></p>
<p>After you have applied these patches, you should be ready to build Tango (make sure that you have a <code>cc</code> somewhere in your <code>PATH</code>, if not, create a link to your system&#8217;s <code>gcc</code>):<br />
<pre class="brush: bash;">
sudo PATH=$PATH:/opt/gdc/bin DC=gdc build/build.sh --lib-install-dir /opt/gdc/lib
</pre><br />
However, I had to remove Phobos&#8217; <code>object.d</code> from <code>/opt/gdc/include/d/4.3.1</code> first. <code>build/build.sh</code> should finish with a note reminding you that the user libraries still have to be installed. To do this, simply copy the contents of the <code>user</code> directory to <code>/opt/gdc/include/d/4.3.1</code> after removing the old include files which are part of Phobos (you have to keep the <code>gcc</code> and <code>i686-pc-linux-gnu</code> directories though). Congratulations, now you should be able to build your Tango projects with GDC!</p>
<p>A quick tip for <a href="http://www.dsource.org/projects/dsss/">DSSS</a> users: You probably have to modify your <code>gdc-posix-tango</code> profile to omit the <code>-version=Posix</code> switch (see above) on <code>gdmd</code> calls and add <code>-L-ltango-base-gdc</code> to the linker flags since Tango was not installed via DSSS in the above instructions.</p>
<p><span style="font-size:85%;"><em>Edit:</em> Since I originally wrote this post, Tango&#8217;s build system was modified yet another time (at least, things are much simpler now). Instead of fiddling around with the makefiles, just use the <code>bob</code> tool from the <code>build</code> directory now which <em>should</em> work with GDC out of the box.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=97&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/10/26/setting-up-gdc-and-tango-on-linux-x86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing DMD, LDC, Tango and DSSS on (K)Ubuntu Jaunty</title>
		<link>http://klickverbot.wordpress.com/2009/07/28/installing-dmd-ldc-tango-and-dsss-on-kubuntu-jaunty/</link>
		<comments>http://klickverbot.wordpress.com/2009/07/28/installing-dmd-ldc-tango-and-dsss-on-kubuntu-jaunty/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:49:48 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[DMD]]></category>
		<category><![CDATA[DSSS]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[LDC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tango]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=41</guid>
		<description><![CDATA[For quite a while now, I am using the D programming language, version 1 (I have not looked at D2 yet, it is said to be still rather unstable). Even though I like it very much for its syntactical quality and the language itself is reasonably mature, I must admit that setting up the toolchain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=41&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For quite a while now, I am using the <a href="http://en.wikipedia.org/wiki/D_(programming_language)">D programming language</a>, version 1 (I have not looked at D2 yet, it is said to be still rather unstable). Even though I like it very much for its syntactical quality and the language itself is reasonably mature, I must admit that setting up the toolchain correctly can still be a very cumbersome task to do, especially when you are new to D.</p>
<p>This post describes an installation routine that should provide you with a working D development environment containing DMD, LDC, Tango and DSSS on (K)Ubuntu Jaunty. Please note that it assumes your system to be »clean« – if you have already installed any D-related software, it is probably advisable to remove it completely to prevent any problems with, for instance, stale files. <span id="more-41"></span></p>
<p><pre class="brush: bash;">
mkdir -p ~/tmp
cd ~/tmp

wget http://ftp.digitalmars.com/dmd.1.050.zip
unzip dmd.1.050.zip
cd dmd/linux/bin/
chmod +x dmd dumpobj obj2asm rdmd
sudo cp dmd dmd.conf dumpobj obj2asm rdmd /usr/local/bin/

cd ~/tmp
svn co http://svn.dsource.org/projects/tango/trunk tango

cd tango/
sudo DC=dmd build/build.sh --lib-install-dir /usr/local/lib
sudo cp -rf user/object.di user/rt user/std user/tango /usr/local/include/d/

sudo su -c 'echo -e &quot;[Environment]\nDFLAGS=-I/usr/local/include/d -defaultlib=tango-base-dmd -debuglib=tango-base-dmd -L-ltango-user-dmd -version=Tango -version=Posix&quot; &gt; /usr/local/bin/dmd.conf'

sudo su -c 'echo -e &quot;# dsss\ndeb http://ppa.launchpad.net/d-language-packagers/ppa/ubuntu jaunty main&quot; &gt;&gt; /etc/apt/sources.list'
sudo apt-get install dsss
sudo su -c 'echo &quot;profile=dmd-posix-tango&quot; &gt; /etc/drebuild/default'
</pre></p>
<p>You should now be able to build your D/Tango programs with DMD and DSSS.</p>
<p>I would suggest giving <a href="http://www.dsource.org/projects/ldc">LDC</a> at least a short glance, a fairly young compiler project which leverages <a href="http://llvm.org/">LLVM</a> as its code generating backend. It is maturing very quickly and allows you to make use of the various features the LLVM compiler infrastructure provides, the most noticeable probably being its excellent optimization routines. Fortunately, there are current binary packages available at launchpad, so all that is needed to LDC is:</p>
<p><pre class="brush: bash;">sudo su -c 'echo -e &quot;# ldc-daily\ndeb http://ppa.launchpad.net/d-language-packagers/ppa/ubuntu karmic main\ndeb http://archive.ubuntu.com/ubuntu karmic main universe&quot; &gt;&gt; /etc/apt/sources.list'
sudo apt-get update

sudo apt-get install ldc-daily libtango-ldc-daily-dev

cd ~/tmp
wget -O ldc-posix-tango http://www.dsource.org/projects/ldc/browser/ldc-posix-tango?format=raw
sudo su -c 'sed &quot;s:ldc.rebuild.conf:/etc/ldc/ldc.rebuild.conf:&quot;  /etc/drebuild/ldc-posix-tango'

sudo su -c 'echo &quot;profile=ldc-posix-tango&quot; &gt; /etc/drebuild/default'
</pre></p>
<p>Note that the above commands install a daily snapshot of LDC, which I would recommend to use due to the currently fast development of LDC. In order not to break you Jaunty installation, please <em><strong>do not forget</strong> to comment out the official »karmic« repositories</em> (which contain some dependencies for <code>ldc-daily</code>) in your <code>/etc/apt/sources.list</code> and run <code>apt-get update</code> after the installation is completed.</p>
<p>Both compilers are set up to use Tango, do <em>not</em> install Tango via DSSS! If you want to switch compilers, just activate the corresponding profile in <code>/etc/drebuild/default</code> and do not forget to rebuild any D libraries you might have compiled and installed with the old compiler (just run <code>dsss net install … </code>for the ones you installed using DSSS).</p>
<p style="font-size:85%;"><em>Edit:</em> Updated instructions to work with the new folder structure of Tango’s codebase.<br />
<em>Edit 2:</em> Updated instructions to install more recent dmd version.<br />
<em>Edit 3:</em> Since I wrote this post, Tango received yet another big structural change to its codebase (amongst other changes, the core and user libraries have been merged). Now, you should use the supplied <em>»bob«</em> tool now to build tango. Additionally, Karmic is now stable so you might have to adapt the APT repository-related instructions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=41&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/07/28/installing-dmd-ldc-tango-and-dsss-on-kubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Posting Shell Commands on WordPress.com</title>
		<link>http://klickverbot.wordpress.com/2009/07/28/posting-shell-commands-on-wordpress-com/</link>
		<comments>http://klickverbot.wordpress.com/2009/07/28/posting-shell-commands-on-wordpress-com/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:49:19 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Consuming]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=65</guid>
		<description><![CDATA[Just a quick note: While wordpress.com provides the [sourcecode lang=…] tags to include source code snippets in your blog posts, the »bash« and »shell« language settings which would seem appropriate for shell commands are broken and incorrectly render the »&#60;« and »&#62;« characters as »&#38;lt;« and »&#38;gt;«. The solution: Use another language setting which does [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=65&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a quick note: While wordpress.com provides the [<code>sourcecode lang=…</code>] tags to include source code snippets in your blog posts, the »bash« and »shell« language settings which would seem appropriate for shell commands are broken and incorrectly render the »<code>&lt;</code>« and »<code>&gt;</code>« characters as »<code>&amp;lt;</code>« and »<code>&amp;gt;</code>«.</p>
<p>The solution: Use another language setting which does not interfere with shell syntax instead, for example [<code>sourcecode lang="css"</code>].</p>
<p>I hope the WordPress.com team will fix this soon.</p>
<p><span style="font-size:85%;"><em>Edit:</em> It seems as if the [<code>sourcecode</code>] tags have been fixed. However, in some of the code snippets I posted, the HTML entities for the lesser- and greater-than signs have mystically appeared in the post editor – after I removed them, the snippets are finally displayed like I want them to.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=65&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/07/28/posting-shell-commands-on-wordpress-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>The Power of Git</title>
		<link>http://klickverbot.wordpress.com/2009/07/28/the-power-of-git/</link>
		<comments>http://klickverbot.wordpress.com/2009/07/28/the-power-of-git/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:50:32 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/?p=34</guid>
		<description><![CDATA[As you might already know if you read my blog post about it, I have been using Git quite a while ago now. However, I am still amazed not infrequently by the fact that Git simply works, in the sense that it really does the things you tell it to do. Recently, for instance, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=34&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you might already know if you read my <a href="http://klickverbot.wordpress.com/2008/08/02/getting-started-with-git/">blog post</a> about it, I have been using Git quite a while ago now. However, I am still amazed not infrequently by the fact that Git <em>simply works</em>, in the sense that it really does the things you tell it to do.</p>
<p>Recently, for instance, I wanted to merge an extension to the great <a href="http://assimp.sf.net">Open Asset Import Library</a> (bindings for the <a href="http://www.digitalmars.com/d/">D programming language</a>, in fact) which I developed locally in Git to the upstream repository in a way that the commit history was kept locally. However, SVN is used as SCM system for upstream development. So I started out by importing the upstream SVN repository via <code>git-svn</code>:<br />
<pre class="brush: css;">
$ mkdir assimp; cd assimp
$ git svn init https://assimp.svn.sourceforge.net/svnroot/assimp/trunk
$ git svn fetch
</pre><br />
Nothing too exciting here. So far, I only created a local Git clone of the SVN repository which I probably will use for contributing to upstream development in the future. But how to transfer the bindings from the Git repository to this one <em>including</em> their (strictly linear, i.e. master-only) commit history? Because Git does not try to be smarter than its users, the first solution I came up with – which admittedly took me some time because I rarely use the more adept features that git offers – worked flawlessly. Here is what I did:<br />
<pre class="brush: css;">
$ git checkout -b d-bindings
$ git fetch ../dAssimp
$ git read-tree --prefix=port/dAssimp FETCH_HEAD
$ git rev-parse FETCH_HEAD &gt; .git/MERGE_HEAD
$ git commit
</pre><br />
After switching to a new branch in which the history should be stored, I told Git to fetch the contents of the local <code>dAssimp</code> repository (the D bindings I developed). Because I had not made any merges, Git simply stored the <code>HEAD</code> of the other repository in <code>FETCH_HEAD</code>. The <code>read-tree</code> command reads, as the name suggests, arbitrary tree information into the index. The <code>--prefix</code> switch allows you to keep the current index and read the tree into an (empty) subdirectory instead – perfect for what I intended to do. Storing the <code>FETCH_HEAD</code>&#8216;s object name into <code>.git/MERGE_HEAD</code> tells Git to generate a merge commit the next time <code>git commit</code> is called. There was just one last thing left to do: as <code>git read-tree</code>, according to the manpage, »does not actually update any of the files it ›caches‹«, a <code>git reset --hard</code> is needed to actually create the new files in the working copy. That&#8217;s it.</p>
<p>As I found out later, I could have possibly done this more easy using the <a href="http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html">subtree merge strategy</a>, but I still like, as mentioned above, Git&#8217;s feature of »just doing what you tell it to do«…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=34&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/07/28/the-power-of-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting KDE&#8217;s clippboard to work with Eclipse</title>
		<link>http://klickverbot.wordpress.com/2009/05/28/getting-kdes-clippboard-to-work-with-eclipse/</link>
		<comments>http://klickverbot.wordpress.com/2009/05/28/getting-kdes-clippboard-to-work-with-eclipse/#comments</comments>
		<pubDate>Thu, 28 May 2009 15:03:00 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/2009/05/28/getting-kdes-clippboard-to-work-with-eclipse/</guid>
		<description><![CDATA[For whatever reason, Eclipse does not work well with Klipper, the KDE clipboard manager, in its default settings. The symptoms: Quite often, you copy a piece of text to the clipboard. When you try to paste it, it miraculously disappears and some old piece of clipboard content is pasted instead. After simply trying to ignore [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=16&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For whatever reason, Eclipse does not work well with Klipper, the KDE clipboard manager, in its default settings. The symptoms: Quite often, you copy a piece of text to the clipboard. When you try to paste it, it miraculously disappears and some old piece of clipboard content is pasted instead.</p>
<p>After simply trying to ignore the problem for some time, I searched and found a solution today: You have to disable the <em>»Prevent empty clipboard«</em> setting in Klipper&#8217;s configuration menu (which is accessible by right-clicking on the systray icon).</p>
<p>Intuitive? Not to me…</p>
<p><span style="font-size:85%;"><em>Edit:</em> Disabling the mentioned option might introduce some minor glitches to general clipboard usage (sometimes, the clipboard seems to empty itself). As those occur rather infrequently, I have not been able to find out why this happens, or even if this is connected to the configuration changes described in this post.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=16&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/05/28/getting-kdes-clippboard-to-work-with-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Duplicate »Translucency« KWin effect</title>
		<link>http://klickverbot.wordpress.com/2009/04/28/duplicate-%c2%bbtranslucency%c2%ab-kwin-effect/</link>
		<comments>http://klickverbot.wordpress.com/2009/04/28/duplicate-%c2%bbtranslucency%c2%ab-kwin-effect/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 06:32:00 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[KDE 4]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/2009/04/28/duplicate-%c2%bbtranslucency%c2%ab-kwin-effect/</guid>
		<description><![CDATA[For some time, the effect »Translucency« was listed twice in the KWin KCM plugin list of my local KDE setup (SVN trunk). One copy was actually working, the other was just producing error messages. Today, I finally had time to investigate the issue: The problem was caused by a stale .desktop file in share/kde4/services/kwin with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=15&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For some time, the effect »Translucency« was listed twice in the KWin KCM plugin list of my local KDE setup (SVN trunk). One copy was actually working, the other was just producing error messages.</p>
<p>Today, I finally had time to investigate the issue: The problem was caused by a stale <code>.desktop</code> file in <code>share/kde4/services/kwin</code> with the old name of the plugin (it was renamed from <em>maketransparent</em> to <em>translucency</em>).</p>
<p>I have no idea how this could happen, because I usually purge the whole <code>/opt/kde</code> folder everytime I <code>svn up</code> my <code>qt-copy</code>, which I happen to do quite often…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=15&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/04/28/duplicate-%c2%bbtranslucency%c2%ab-kwin-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
		<item>
		<title>Strange segfaults when compiling with GDC</title>
		<link>http://klickverbot.wordpress.com/2009/02/04/strange-segfaults-when-compiling-with-gdc/</link>
		<comments>http://klickverbot.wordpress.com/2009/02/04/strange-segfaults-when-compiling-with-gdc/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 23:44:00 +0000</pubDate>
		<dc:creator>klickverbot</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[gdc]]></category>

		<guid isPermaLink="false">http://klickverbot.wordpress.com/2009/02/04/strange-segfaults-when-compiling-with-gdc/</guid>
		<description><![CDATA[Use -no-export-dynamic to prevent segfaults in external libraries when linking with GDC. More to come soon&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=14&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Use -no-export-dynamic to prevent segfaults in external libraries when linking with GDC.</p>
<p>More to come soon&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/klickverbot.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/klickverbot.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/klickverbot.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=klickverbot.wordpress.com&amp;blog=8284758&amp;post=14&amp;subd=klickverbot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://klickverbot.wordpress.com/2009/02/04/strange-segfaults-when-compiling-with-gdc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/368fc2ae8083874247c37e26007fcb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">klickverbot</media:title>
		</media:content>
	</item>
	</channel>
</rss>
