<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<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/"
	>

<channel>
	<title>lunglet.net</title>
	<link>http://lunglet.net</link>
	<description>albert strasheim's blog</description>
	<pubDate>Tue, 15 Apr 2008 01:00:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Bookmark Cleanup #2</title>
		<link>http://lunglet.net/2008/04/15/bookmark-cleanup-2/</link>
		<comments>http://lunglet.net/2008/04/15/bookmark-cleanup-2/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 01:00:20 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/04/15/bookmark-cleanup-2/</guid>
		<description><![CDATA[More links from my bookmarks. Mostly Java today.

Pro Java 6 3D Game Development
How to Handle Java Finalization&#8217;s Memory-Retention Issues - I&#8217;ve played with these ideas in a new Java wrapper I&#8217;m writing for HDF5. Very cool. If you&#8217;re dealing with native resources inside your Java application, read this.
Shoal - A Dynamic Java Clustering Framework
Java Concurrency [...]]]></description>
			<content:encoded><![CDATA[<p>More links from my bookmarks. Mostly Java today.</p>
<ul>
<li><a href="http://fivedots.coe.psu.ac.th/%7Ead/jg2/">Pro Java 6 3D Game Development</a></li>
<li><a href="http://java.sun.com/developer/technicalArticles/javase/finalization/">How to Handle Java Finalization&#8217;s Memory-Retention Issues</a> - I&#8217;ve played with these ideas in a new Java wrapper I&#8217;m writing for HDF5. Very cool. If you&#8217;re dealing with native resources inside your Java application, read this.</li>
<li><a href="https://shoal.dev.java.net/">Shoal</a> - A Dynamic Java Clustering Framework</li>
<li><a href="http://artisans-serverintellect-com.si-eioswww6.com/default.asp?W1">Java Concurrency Wiki</a> - A wiki for stuff related to JSR 166</li>
<li><a href="http://gee.cs.oswego.edu/dl/concurrency-interest/index.html">Concurrency JSR-166 Interest Site</a></li>
<li><a href="https://fishfarm.dev.java.net/">FishFarm</a> - Shoal meets JSR 166, I think</li>
<li><a href="http://www.infoq.com/news/2007/07/concurrency-java-se-7">InfoQ: New Concurrency Features for Java SE 7</a></li>
<li><a href="http://wikis.sun.com/display/HotSpotInternals/Home">HotSpot Internals for OpenJDK Wiki</a></li>
<li><a href="http://java.sun.com/developer/technicalArticles/J2SE/monitoring/">Monitoring and Managing Java SE 6 Platform Applications</a> - Read this before you try to debug your next OutOfMemoryError.</li>
<li><a href="http://java.sun.com/performance/reference/whitepapers/tuning.html">Java Tuning White Paper</a> - Read this while we wait for Java 6u10.</li>
<li><a href="http://www.duckware.com/tech/java6msvcr71.html">Java 6 and msvcr71.dll</a> - I love Microsoft&#8217;s plethora of runtimes. Really.</li>
<li><a href="http://weblogs.java.net/blog/kohsuke/archive/2008/03/deep_dive_into.html">Kohsuke Kawaguchi&#8217;s Blog: Deep dive into assembly code from Java</a> - Find out what the HotSpot compiler is doing</li>
<li><a href="http://incubator.apache.org/uima/">Apache UIMA</a> - UIMA is a component framework for analysing unstructured content such as text, audio and video.</li>
</ul>
<p>More links coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/04/15/bookmark-cleanup-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bookmark Cleanup #1</title>
		<link>http://lunglet.net/2008/04/14/bookmark-cleanup-1/</link>
		<comments>http://lunglet.net/2008/04/14/bookmark-cleanup-1/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 19:39:39 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/04/14/bookmark-cleanup-1/</guid>
		<description><![CDATA[I&#8217;m sorting through my Bookmarks. I figured I post some highlights here:

Array broadcasting in NumPy - Read this before you design your next N-D array library
Howto Pass a Silicon Valley Software Engineering Interview - How to make it through an interview at a place like Google, if you&#8217;re into that kind of thing
OProfileUI - User [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sorting through my Bookmarks. I figured I post some highlights here:</p>
<ul>
<li><a href="http://www.scipy.org/EricsBroadcastingDoc">Array broadcasting in NumPy</a> - Read this before you design your next N-D array library</li>
<li><a href="http://paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-software.html">Howto Pass a Silicon Valley Software Engineering Interview</a> - How to make it through an interview at a place like Google, if you&#8217;re into that kind of thing</li>
<li><a href="http://labs.o-hand.com/oprofileui/">OProfileUI</a> - User interface for one of the nicer Linux profilers</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=419048">Updating Samba-3 with Minimal Pain and User Frustration</a> - If you ever had the problem where upgrading Samba nuked all permissions you set up on your Windows machines, read this</li>
<li><a href="http://www.e-texteditor.com/">E Text Editor</a> - The power of TextMate on Windows</li>
<li><a href="http://andrei.gmxhome.de/bytecode/index.html">Bytecode Outline plugin for Eclipse</a></li>
<li><a href="http://www.jmonkeyengine.com/">jMonkeyEngine</a> - A Java game engine</li>
<li><a href="http://www.nongnu.org/cinvoke/">C/Invoke</a> - An alternative to ctypes. I quite like ctypes though.</li>
<li><a href="http://www.rabbitmq.com/">RabbitMQ</a> - A message broker that implements the <a href="http://www.amqp.org/">AMQP</a> standard</li>
<li><a href="http://osdir.com/ml/lang.scala/2007-01/msg00247.html">Scala generics for automatic differentiation</a> - <a href="http://www.scala-lang.org/">Scala</a> is cool. <a href="http://en.wikipedia.org/wiki/Automatic_differentiation">Automatic differentiation</a> is cool.</li>
</ul>
<p>That&#8217;s enough for today. Another cleanup coming tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/04/14/bookmark-cleanup-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HAMMER</title>
		<link>http://lunglet.net/2008/02/15/hammer/</link>
		<comments>http://lunglet.net/2008/02/15/hammer/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 07:39:00 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/15/hammer/</guid>
		<description><![CDATA[Another bit on distributed file systems and the like: HAMMER is a highly available clustering file system being developed as part of DragonFlyBSD. More about HAMMER on KernelTrap.
]]></description>
			<content:encoded><![CDATA[<p>Another bit on distributed file systems and the like: <a href="http://leaf.dragonflybsd.org/mailarchive/kernel/2007-10/msg00006.html">HAMMER</a> is a highly available clustering file system being developed as part of <a href="http://www.dragonflybsd.org/">DragonFlyBSD</a>. <a href="http://kerneltrap.org/HAMMER">More about HAMMER</a> on <a href="http://kerneltrap.org/">KernelTrap</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/15/hammer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hyperic SIGAR</title>
		<link>http://lunglet.net/2008/02/11/hyperic-sigar/</link>
		<comments>http://lunglet.net/2008/02/11/hyperic-sigar/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 17:05:12 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/11/hyperic-sigar/</guid>
		<description><![CDATA[Hyperic SIGAR (System Information Gatherer and Reporter) is a cross-platform, cross-language library and command-line tool for accessing operating system and hardware information in C, Java, Perl and C#. SIGAR is licensed under the GPL version 2. Not quite sure what this implies for Java projects, but anyway.
Just spotted this library as part of the upcoming [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hyperic.com/products/sigar.html">Hyperic SIGAR</a> (System Information Gatherer and Reporter) is a cross-platform, cross-language library and command-line tool for accessing operating system and hardware information in C, Java, Perl and C#. SIGAR is licensed under the GPL version 2. Not quite sure what this implies for Java projects, but anyway.</p>
<p>Just spotted this library as part of the upcoming <a href="http://www.gridgain.com/">GridGain 2.0</a> release.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/11/hyperic-sigar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Distributed File Systems</title>
		<link>http://lunglet.net/2008/02/09/distributed-file-systems/</link>
		<comments>http://lunglet.net/2008/02/09/distributed-file-systems/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 17:38:43 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/09/distributed-file-systems/</guid>
		<description><![CDATA[I&#8217;ve been thinking about the best way to configure a bunch of computers for doing large-scale machine learning experiments. One problem that always pops up is how to get some piece of the data to the node that needs to process it (a mapping in the Map Reduce framework).
You can cook up various schemes to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about the best way to configure a bunch of computers for doing large-scale machine learning experiments. One problem that always pops up is how to get some piece of the data to the node that needs to process it (a mapping in the <a href="http://labs.google.com/papers/mapreduce.html">Map Reduce</a> framework).</p>
<p>You can cook up various schemes to distribute the data, but in the end I don&#8217;t think anything is going to beat the simplicity of a shared file system. However, when your cluster starts getting big and your data starts getting large, you start running into problems with traditional shared file systems like NFS (contention mostly). This leads one to consider a truly distributed file system.</p>
<p>It should come as no surprise that <a href="http://www.google.com/">Google</a> has the <a href="http://labs.google.com/papers/gfs.html">Google File System</a>. I think many of the amazing things the people at Google are able to do can be attributed to the fact that they have their map-reduce and distributed file system infrastructure properly sorted out.</p>
<p>For the rest of us, there&#8217;s <a href="http://hadoop.apache.org/">Hadoop</a>, which is nice, but still not quite as easy to use as I&#8217;d like it. Ideally, I want to install the latest version of my Linux distribution or run a setup program on Windows and it should just work. No mess, no fuss. On Windows I want to see my distributed file system as a drive letter (or as a directory on Linux): this makes it easy to make legacy applications (C++ programs, MATLAB scripts, etc.) operate on your data. Along these lines, Hadoop has something called <a href="http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/mapred/pipes/package-summary.html">Pipes</a> which could be used in some cases, but ideally I want the fact that I&#8217;m operating on distributed data to be completely transparent to my applications.</p>
<p>Here <a href="http://www.openafs.org/">OpenAFS</a> is showing some promise. It seem some guys are working on an <a href="http://www.microsoft.com/whdc/DevTools/IFSKit/default.mspx">IFS driver</a> for OpenAFS (see <a href="http://www.secure-endpoints.com/openafs-windows-roadmap.html">OpenAFS for Windows Requested Features and Road Map</a>). IFS looks like the right way to integrate a new file system with the Windows platform. Last I checked, Hadoop didn&#8217;t support all the functions of a general purpose file system, but maybe it could still be integrated with IFS to give a it a really nice interface for Windows users. I don&#8217;t know what OpenAFS does on Linux, but I&#8217;m assuming it works nicely there already. I should investigate&#8230;</p>
<p>I mention Hadoop and OpenAFS, since they seem to be the only candidates in the <a href="http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems">list of distributed file systems on Wikipedia</a> that appear to be free, properly maintained and generally useful.</p>
<p>Once you have your data sorted out, you still need to distribute your computation across the nodes in your cluster. I&#8217;ll discuss that in another post.</p>
<p>By the way, the Hadoop folks recently created a subproject called <a href="http://lucene.apache.org/mahout/">Mahout</a>, that is focusing on building distributed implementations of various machine learning algorithms, following the ideas published in <a href="http://www.cs.stanford.edu/people/ang//papers/nips06-mapreducemulticore.pdf">Map-Reduce for Machine Learning on Multicore</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/09/distributed-file-systems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PPTP with DD-WRT blows chunks</title>
		<link>http://lunglet.net/2008/02/08/pptp-with-dd-wrt-blows-chunks/</link>
		<comments>http://lunglet.net/2008/02/08/pptp-with-dd-wrt-blows-chunks/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 21:56:18 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[linksys dd-wrt mikrotik wifi]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/08/pptp-with-dd-wrt-blows-chunks/</guid>
		<description><![CDATA[I recently purchased another Linksys WRT54GL and flashed it with the latest release of DD-WRT. Basic configuration was a breeze, but when I tried to configure the router to make a connection to a PPTP server, the wheels came off. Badly. The various forums and bug trackers are rife with reports of these problems, but [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased another <a href="http://www.linksys.com/">Linksys</a> <a href="http://en.wikipedia.org/wiki/WRT54G">WRT54GL</a> and flashed it with the latest release of <a href="http://www.dd-wrt.com/">DD-WRT</a>. Basic configuration was a breeze, but when I tried to configure the router to make a connection to a <a href="http://en.wikipedia.org/wiki/Point-to-point_tunneling_protocol">PPTP</a> server, the wheels came off. Badly. The various forums and bug trackers are rife with reports of these problems, but the developers seem to be oblivious. Great.</p>
<p>The dysfunction inherent in this project is described here: <a href="http://www.bitsum.com/about-ddwrt.htm">DD-WRT - An affront to the good will of the F/OSS community</a>.</p>
<p>If anyone knows of a firmware for Linksys routers that can do PPTP properly, let me know. <a href="http://www.polarcloud.com/tomato">Tomato</a> doesn&#8217;t seem to cut it (no PPTP support). As far as I could tell from the documentation, <a href="http://openwrt.org/">OpenWrt</a> doesn&#8217;t support the wireless part of the Linksys when used with a 2.6 kernel. I still need to look at HyperWRT and friends.</p>
<p>Am I the only person who wishes that <a href="http://www.mikrotik.com/">Mikrotik</a> would port <a href="http://www.mikrotik.com/software.html">RouterOS</a> to the Linksys and other routers? I&#8217;m sure they&#8217;d sell tens of thousands of copies. Might cut into their hardware sales though&#8230;</p>
<p><strong>Update</strong>: Looked at <a href="http://www.linksysinfo.co.uk/thibor/">thibor&#8217;s hyperwrt</a>. Seems to support PPTP for the WAN interface, but this doesn&#8217;t do what I need (DD-WRT could do what I need, but it doesn&#8217;t work). Also looked at the Mikrotik <a href="http://www.routerboard.com/">Routerboards</a> again. They really need to package up one of those things into a little box like the Linksys, include a level 4 RouterOS license and sell the whole package for somewhere between $80 and $120. I&#8217;d buy it.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/08/pptp-with-dd-wrt-blows-chunks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GCC OpenMP and Python</title>
		<link>http://lunglet.net/2008/02/08/gcc-openmp-and-python/</link>
		<comments>http://lunglet.net/2008/02/08/gcc-openmp-and-python/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 07:47:41 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[gcc openmp python]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/08/gcc-openmp-and-python/</guid>
		<description><![CDATA[I had high hopes for the OpenMP support introduced in GCC 4.2, and then came this:

libgomp and python: dlopen fails
GCC Bugzilla Bug 28482 - Cannot use libgomp in shared library

Reported by Nathan Bell on the NumPy mailing list.
]]></description>
			<content:encoded><![CDATA[<p>I had high hopes for the OpenMP support introduced in GCC 4.2, and then came this:</p>
<ul>
<li><a href="http://gcc.gnu.org/ml/gcc-help/2007-04/msg00300.html">libgomp and python: dlopen fails</a></li>
<li><a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28482">GCC Bugzilla Bug 28482 - Cannot use libgomp in shared library</a></li>
</ul>
<p>Reported by Nathan Bell on the NumPy mailing list.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/08/gcc-openmp-and-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jar Jar Links and One-JAR</title>
		<link>http://lunglet.net/2008/02/05/jar-jar-links-and-one-jar/</link>
		<comments>http://lunglet.net/2008/02/05/jar-jar-links-and-one-jar/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 07:04:13 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/05/jar-jar-links-and-one-jar/</guid>
		<description><![CDATA[Java links of the day: Jar Jar Links (jarjar) and One-JAR. I&#8217;ve used jarjar before, but I&#8217;ve run into some bugs when trying to bundle certain libraries. The JRuby project have also had this issue. I guess jarjar&#8217;s maintenance went south after Google bought Tonic Systems&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Java links of the day: <a href="http://code.google.com/p/jarjar/">Jar Jar Links</a> (jarjar) and <a href="http://one-jar.sourceforge.net/">One-JAR</a>. I&#8217;ve used jarjar before, but I&#8217;ve run into some bugs when trying to bundle certain libraries. The JRuby project have also had this issue. I guess jarjar&#8217;s maintenance went south after Google bought Tonic Systems&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/05/jar-jar-links-and-one-jar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java Native Access (JNA)</title>
		<link>http://lunglet.net/2008/02/01/java-native-access-jna/</link>
		<comments>http://lunglet.net/2008/02/01/java-native-access-jna/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 14:21:42 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[jna]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/01/java-native-access-jna/</guid>
		<description><![CDATA[I&#8217;ve been meaning to write something about Java Native Access (JNA), but I&#8217;ve been too busy actually using it! According to the JNA site, &#8220;JNA provides Java programs easy access to native shared libraries.&#8221; Python folks have had the same functionality in ctypes for a while now.
I&#8217;ve been using JNA for about 9 months for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to write something about <a href="https://jna.dev.java.net/">Java Native Access (JNA)</a>, but I&#8217;ve been too busy actually using it! According to the JNA site, &#8220;JNA provides Java programs easy access to native shared libraries.&#8221; Python folks have had the same functionality in ctypes for a while now.</p>
<p>I&#8217;ve been using JNA for about 9 months for code related to my master&#8217;s thesis. I&#8217;ve built Java code on top native libraries for BLAS (mostly Intel MKL for now), <a href="http://www.hdfgroup.org/">HDF</a>, <a href="http://www.cs.wm.edu/~andreas/software/">PRIMME</a> and MATLAB.</p>
<p>JNA&#8217;s future is looking bright. It provides an easy-to-use alternative to JNI. The JNA maintainer, Timothy Wall, is extremely active on the mailing list. Even the <a href="http://headius.blogspot.com/2007/09/java-native-access-jruby-true-posix.html">JRuby folks are catching on</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/01/java-native-access-jna/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java compiler bugs</title>
		<link>http://lunglet.net/2008/02/01/java-compiler-bugs/</link>
		<comments>http://lunglet.net/2008/02/01/java-compiler-bugs/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 14:13:17 +0000</pubDate>
		<dc:creator>albert</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[bug]]></category>

		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://lunglet.net/2008/02/01/java-compiler-bugs/</guid>
		<description><![CDATA[During the work on the Java code related to my master&#8217;s thesis, I&#8217;ve run into two bugs in Sun&#8217;s Java compiler (using Java 6).
The first bug was Bug ID: 6570761 Possible generics regression - inconvertible types. I&#8217;ve since changed my the design so that this bug no longer affects me, but it was annoying none [...]]]></description>
			<content:encoded><![CDATA[<p>During the work on the Java code related to my master&#8217;s thesis, I&#8217;ve run into two bugs in Sun&#8217;s Java compiler (using Java 6).</p>
<p>The first bug was <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570761">Bug ID: 6570761 Possible generics regression - inconvertible types</a>. I&#8217;ve since changed my the design so that this bug no longer affects me, but it was annoying none the less.</p>
<p>The second bug has been reported by others, but there doesn&#8217;t seem to exist a report for it in Sun&#8217;s bug database. I submitted a bug report to them in November of 2007, but the report seems to have been ignored since then. I figured I&#8217;d reproduce the report here in case anybody else runs into this problem.</p>
<p>The offending code looks like this:</p>
<p><code>interface IA {<br />
IA op();<br />
}<br />
interface IB {<br />
IB op();<br />
}<br />
public interface IC extends IA, IB {<br />
IC op();<br />
}<br />
</code></p>
<p>The error message is:</p>
<p><code>IC.java:7: types IB and IA are incompatible; both define op(), but with unrelated return types<br />
</code></p>
<p>This same issue has previously been raised for the Eclipse compiler:</p>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881">[1.5][compiler] Multiple interface inheritance is incompatible with Sun compiler</a></li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122617">[1.5][compiler] Compiler misses return type substitutability error with multiple inheritance and overriding method</a></li>
<li><a href="http://dev.eclipse.org/newslists/news.eclipse.tools.jdt/msg17207.html">[news.eclipse.tools.jdt] Multiple inheritance and covariance subtyping in Java 1.5 and jdt core</a></li>
</ul>
<p>It seems <a href="http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.4.1">§9.4.1 of the Java Language Specification</a> applies to this problem. It says:</p>
<p>&#8220;An interface inherits from its direct superinterfaces all methods of the superinterfaces that are not overridden by a declaration in the interface. It is possible for an interface to inherit several methods with override-equivalent signatures (§8.4.2). Such a situation does not in itself cause a compile-time error. The interface is considered to inherit all the methods. However, one of the inherited methods must must be return type substitutable for any other inherited method; otherwise, a compile-time error occurs.&#8221;</p>
<p>While Sun drags its feet with this issue (maybe it&#8217;ll get fixed for Java 8 in a few decades from now), you can use Eclipse. If you need to build with Ant, you can get it to use the Eclipse compiler by setting the build.compiler property to org.eclipse.jdt.core.JDTCompilerAdapter and including ecj.jar in your Ant classpath.</p>
<p>It seems some French guys were also grappling with this problem: <a href="http://www.generation-nt.com/reponses/heritage-multiple-des-interfaces-et-surcharge-de-methodes-entraide-56250.html">Héritage multiple des interfaces et surcharge de méthodes</a>.</p>
<p><b>Update</b>: Finally found the right bug for the covariant return problem with the help of Jonathan Gibbons from Sun. It is <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6294779">Bug ID: 6294779 Problem with interface inheritance and covariant return types</a>. The bug was created in 2005. Don&#8217;t know why I couldn&#8217;t find it with my previous searches, but maybe other people will have better luck now.<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lunglet.net/2008/02/01/java-compiler-bugs/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
