<?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>Gentoo Linux and Haskell</title>
	<atom:link href="http://gentoohaskell.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gentoohaskell.wordpress.com</link>
	<description>Gentoo and Haskell in symbiosis</description>
	<lastBuildDate>Sun, 16 Jun 2013 19:30:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gentoohaskell.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gentoo Linux and Haskell</title>
		<link>http://gentoohaskell.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gentoohaskell.wordpress.com/osd.xml" title="Gentoo Linux and Haskell" />
	<atom:link rel='hub' href='http://gentoohaskell.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Call for help: wiki.gentoo.org documentation</title>
		<link>http://gentoohaskell.wordpress.com/2013/06/16/call-for-help-wiki-gentoo-org-documentation/</link>
		<comments>http://gentoohaskell.wordpress.com/2013/06/16/call-for-help-wiki-gentoo-org-documentation/#comments</comments>
		<pubDate>Sun, 16 Jun 2013 18:52:26 +0000</pubDate>
		<dc:creator>qnikst</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=86</guid>
		<description><![CDATA[I&#8217;d like to ask gentoo-haskell community for help. We have a nice wiki and our project page have moved there. But it seems that we don&#8217;t have enough documentation quality for end-user application. As a developers we support proper builds and tests for that packages but we are not expert users for many of them. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=86&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;d like to ask gentoo-haskell community for help. We have a nice <a href="http://wiki.gentoo.org">wiki</a> and our project page have moved <a href="http://wiki.gentoo.org/wiki/Project:Haskell">there</a>. But it seems that we don&#8217;t have enough documentation quality for end-user application. As a developers we support proper builds and tests for that packages but we are not expert users for many of them. So I&#8217;d like to ask community to add some docs and tips for applications you use. This basically means installation, advanced config (examples), interesting use cases, links to external resources (blog posts/documentation) and so on. It can help a lot for new Gentoo users.</p>
<p>The most interesting projects are:</p>
<ul>
<li><a href="http://wiki.gentoo.org/wiki/Pandoc">pandoc</a></li>
<li><a href="http://wiki.gentoo.org/wiki/Git-annex">git-annex</a></li>
<li><a href="http://wiki.gentoo.org/wiki/Gitit">gitit</a></li>
<li><a href="http://wiki.gentoo.org/wiki/yi">yi</a></li>
<li><a href="http://wiki.gentoo.org/wiki/Xmonad">xmonad</a></li>
</ul>
<p>Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=86&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2013/06/16/call-for-help-wiki-gentoo-org-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45c2b504203472a566242c28ea847672?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">qnikst</media:title>
		</media:content>
	</item>
		<item>
		<title>a haskell dev survey</title>
		<link>http://gentoohaskell.wordpress.com/2013/03/16/a-haskell-dev-survey/</link>
		<comments>http://gentoohaskell.wordpress.com/2013/03/16/a-haskell-dev-survey/#comments</comments>
		<pubDate>Sat, 16 Mar 2013 20:58:57 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[ghc]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=78</guid>
		<description><![CDATA[Ladies and gentlemen! If you happen to be involved in using/developing haskell-powered software you might like to answer our poll on that matter. Thanks in advance!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=78&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ladies and gentlemen!</p>
<p>If you happen to be involved in using/developing haskell-powered software you might like to answer our <a href="https://docs.google.com/forms/d/1y5WtrCB7O9-jb-2Mzo1MtkToh4O6oY2oBXGkc_Q-cy0/viewform">poll on that matter</a>.</p>
<p>Thanks in advance!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=78&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2013/03/16/a-haskell-dev-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>
	</item>
		<item>
		<title>GHC as a cross-compiler</title>
		<link>http://gentoohaskell.wordpress.com/2013/01/19/ghc-as-a-cross-compiler/</link>
		<comments>http://gentoohaskell.wordpress.com/2013/01/19/ghc-as-a-cross-compiler/#comments</comments>
		<pubDate>Sat, 19 Jan 2013 23:34:53 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[crosscompiler]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[ghc]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=73</guid>
		<description><![CDATA[Another small breakthrough today for those who would like to see haskell programs running. Here is a small incomplete HOWTO for gentoo users on how to build a crosscompiler running on x86_64 host targeted on ia64 platform. It is just an example. You can pick any target. First of all you need to enable haskell [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=73&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Another small breakthrough today for those who would like to see <strong>haskell</strong> programs running.</p>
<p>Here is a small incomplete <strong>HOWTO</strong> for <strong>gentoo</strong> users on how to build a crosscompiler running on <strong>x86_64</strong> host targeted on <strong>ia64</strong> platform.</p>
<p>It is just an example. You can pick any target.</p>
<p><span id="more-73"></span></p>
<p>First of all you need to enable <strong>haskell</strong> overlay and install host compiler:</p>
<pre><code># GHC_IS_UNREG=yeah emerge -av =ghc-7.6.1</code></pre>
<p>The <strong>GHC_IS_UNREG=yeah</strong> bit is critical. If we won&#8217;t do it <strong>GHC</strong> build system will try to build registerised <strong>stage1</strong> (which is a crosscompiler already).</p>
<p>Not setting <strong>GHC_IS_UNREG</strong> will break for a set of problems:</p>
<ul>
<li>
<p><strong>GHC</strong> will try to optimize generated bitcode with <strong>llvm</strong>&#8216;s optimizer which will produce <strong>x86_64</strong> instructions, not <strong>ia64</strong>.</p>
</li>
<li>
<p><strong>GHC</strong> will try to run (broken on <strong>ia64</strong>) object splitter perl script: <strong>ghc-split.lprl</strong>.</p>
</li>
</ul>
<p>The rest is rather simple:</p>
<pre><code># crossdev ia64-unknown-linux-gnu
# ia64-unknown-linux-gnu-emerge sys-libs/ncurses virtual/libffi dev-libs/gmp
# ln -s ${haskell_overlay}/haskell/dev-lang/ghc ${cross_overlay}/ia64-unknown-linux-gnu/ghc
# cd ${cross_overlay}/ia64-unknown-linux-gnu/ghc
# EXTRA_ECONF=--enable-unregisterised USE=ghcmakebinary ebuild ghc-9999.ebuild compile</code></pre>
<p>It will fail as the following command tries to run <strong>ia64</strong> binary on <strong>x86_64</strong> host:</p>
<pre><code>libraries/integer-gmp/cbits/mkGmpDerivedConstants &gt; libraries/integer-gmp/cbits/GmpDerivedConstants.h</code></pre>
<p>I&#8217;ve logged-in to <strong>ia64</strong> box and ran <strong>mkGmpDerivedConstants</strong> to get a <strong>GmpDerivedConstants.h</strong>. Added the result to the ${WORKDIR} and reran last command.</p>
<p>After the build has finished I&#8217;ve got corsscompiler:</p>
<pre><code>sf ghc-9999 # "inplace/bin/ghc-stage1" --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("GCC extra via C opts"," -fwrapv")
 ,("C compiler command","/usr/bin/ia64-unknown-linux-gnu-gcc")
 ,("C compiler flags"," -fno-stack-protector  -Wl,--hash-size=31 -Wl,--reduce-memory-overheads")
 ,("ld command","/usr/bin/ia64-unknown-linux-gnu-ld")
 ,("ld flags","     --hash-size=31     --reduce-memory-overheads")
 ,("ld supports compact unwind","YES")
 ,("ld supports build-id","YES")
 ,("ld is GNU ld","YES")
 ,("ar command","/usr/bin/ar")
 ,("ar flags","q")
 ,("ar supports at file","YES")
 ,("touch command","touch")
 ,("dllwrap command","/bin/false")
 ,("windres command","/bin/false")
 ,("perl command","/usr/bin/perl")
 ,("target os","OSLinux")
 ,("target arch","ArchUnknown")
 ,("target word size","8")
 ,("target has GNU nonexec stack","True")
 ,("target has .ident directive","True")
 ,("target has subsections via symbols","False")
 ,("Unregisterised","YES")
 ,("LLVM llc command","llc")
 ,("LLVM opt command","opt")
 ,("Project version","7.7.20130118")
 ,("Booter version","7.6.1")
 ,("Stage","1")
 ,("Build platform","x86_64-unknown-linux")
 ,("Host platform","x86_64-unknown-linux")
 ,("Target platform","ia64-unknown-linux")
 ,("Have interpreter","NO")
 ,("Object splitting supported","NO")
 ,("Have native code generator","NO")
 ,("Support SMP","NO")
 ,("Tables next to code","NO")
 ,("RTS ways","l debug  thr thr_debug thr_l thr_p ")
 ,("Dynamic by default","NO")
 ,("Leading underscore","NO")
 ,("Debug on","False")
 ,("LibDir","/var/tmp/portage/cross-ia64-unknown-linux-gnu/ghc-9999/work/ghc-9999/inplace/lib")
 ,("Global Package DB","/var/tmp/portage/cross-ia64-unknown-linux-gnu/ghc-9999/work/ghc-9999/inplace/lib/package.conf.d")
 ]

# cat a.hs
main = print 1
# "inplace/bin/ghc-stage1" a.hs -fforce-recomp -o a
[1 of 1] Compiling Main             ( a.hs, a.o )
Linking a ...
# file a
a: ELF 64-bit LSB executable, IA-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
# LANG=C ls -lh a
-rwxr-xr-x 1 root portage 24M Jan 20 02:24 a
on ia64:
$ ./a
1</code></pre>
<p>Results:</p>
<ul>
<li>
<p>It&#8217;s not that hard to build a ghc with some exotic target if you have gcc there.</p>
</li>
<li>
<p><strong>mkGmpDerivedConstants</strong> needs to be more cross-compiler friendly It should be really simple to implement, it only queries for data sizes/offsets. I think autotools is already able to do it.</p>
</li>
<li>
<p><strong>GHC</strong> should be able to run llvm with correct <strong>-mtriple</strong> in crosscompiler case. That way we would get registerised crosscompiler.</p>
</li>
</ul>
<p>Some TODOs:</p>
<p>In order to coexist with native compiler ghc should stop mangling &#8212;-target=ia64-unknown-linux-gnu option passed by user and name resulting compiler a ia64-unknown-linux-gnu-ghc and not ia64-unknown-linux-ghc.</p>
<p>That way I could have many flavours of compiler for one target. For example I would like to have x86_64-pc-linux-gnu-ghc as a registerised compiler and x86_64-unknown-linux-gnu-ghc as an unreg one.</p>
<p>And yes, they will all be tracked by <strong>gentoo&#8217;s</strong> package manager.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=73&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2013/01/19/ghc-as-a-cross-compiler/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>
	</item>
		<item>
		<title>EAPI=5, ghc-7.6 and other goodies</title>
		<link>http://gentoohaskell.wordpress.com/2012/11/24/eapi5-ghc-7-6-and-other-goodies/</link>
		<comments>http://gentoohaskell.wordpress.com/2012/11/24/eapi5-ghc-7-6-and-other-goodies/#comments</comments>
		<pubDate>Sat, 24 Nov 2012 20:53:49 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[ghc]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=66</guid>
		<description><![CDATA[Today I have unmasked ghc-7.6.1 in gentoo&#8216;s haskell overlay. Quite a few of things is broken (like unbumped yet gtk2hs), but major things (like darcs) seem to work fine. Feel free to drop a line on #gentoo-haskell to get the thing fixed. Some notes and events in the overlay: ghc-7.6.1 is available for all major [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=66&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I have unmasked <strong>ghc-7.6.1</strong> in <strong>gentoo</strong>&#8216;s <strong>haskell</strong> overlay. Quite a few of things is broken (like unbumped yet <strong>gtk2hs</strong>), but major things (like darcs) seem to work fine. Feel free to drop a line on <strong>#gentoo-haskell</strong> to get the thing fixed.</p>
<p>Some notes and events in the overlay:</p>
<ul>
<li><strong>ghc-7.6.1</strong> is available for all major arches we try to support</li>
<li>a few ebuilds of overlay were converted to <strong>EAPI=5</strong> to use subslot depends (see below)</li>
<li>we&#8217;ve got <strong>working</strong> <strong>ghc-9999</strong> ebuild with shared libraries by default! (see below)</li>
</ul>
<p><span id="more-66"></span></p>
<h1 id="ghc-7.6">ghc-7.6</h1>
<p>That beast brought two major problems to it&#8217;s users:</p>
<ol style="list-style-type:decimal;">
<li>Prelude.catch gone away and is called &#8216;System.IO.Error.catchIOError&#8217; now</li>
<li><strong>directory</strong> package broke interface to existing function &#8216;getModificationTime&#8217; without old compatible variant.</li>
</ol>
<p>While the first breakage is easy to fix by something like:</p>
<pre><code>#if MIN_VERSION_base(4,6,0)
catch :: IO a -&gt; (IOError -&gt; IO a) -&gt; IO a
catch = System.IO.Error.catchIOError</code></pre>
<p>(or just switch to <strong>extensible-exceptions</strong> package if you need support for really old ghc versions).</p>
<p>The second one is literally a <a href="https://github.com/ghc/packages-directory/commit/d0cab4bb327910a341bc99f4e8539806bd671a11">disaster</a></p>
<pre><code>-getModificationTime :: FilePath -&gt; IO ClockTime
+getModificationTime :: FilePath -&gt; IO UTCTime</code></pre>
<p>It is not as straightforward and &quot;fixes&quot; in various packages break PVP in a very funny way.</p>
<p>Look at <a href="https://github.com/willdonnelly/dyre/commit/7755c6ef1c443737006ff5a4a8bf374a00b77bca">this example</a>.</p>
<p>Now that package has random signature type depending on which <strong>directory</strong> version it decided to build against.</p>
<p>TODO: find a nice and simple &#8216;:: ClockTime -&gt; IO UTCTime&#8217; compatibility function to end that keep creeping mess. (I wish the <strong>directory</strong> package to provide that).</p>
<p>Okay. Enough ranting.</p>
<h1 id="eapi5">EAPI=5</h1>
<p>Some of experienced gentoo haskell users already know about the magic <strong>haskell-updater</strong> tool written by Ivan to fix the mess after ghc upgrade or some base library upgrade.</p>
<p>Typical symptom of broken libraries is the similar <code>ghc-pkg check</code> result:</p>
<pre><code>There are problems in package data-accessor-monads-fd-0.2.0.3:
  dependency "monads-fd-0.1.0.4-830f79a91000e99707aac145b972f786" doesn't exist
There are problems in package LibZip-0.10.2:
  dependency "mtl-2.0.1.0-b1b6de8085e5ea10cc0eb01054b69110" doesn't exist
There are problems in package jail-0.0.1.1:
  dependency "monads-fd-0.1.0.4-830f79a91000e99707aac145b972f786" doesn't exist</code></pre>
<p>Why it happens?</p>
<p>Well, ghc&#8217;s library <strong>ABI</strong> depends on ABIs on all the libraries it uses. It has quite nasty consequences.</p>
<p>Once you upgrade a library you need to:</p>
<ol style="list-style-type:decimal;">
<li>rebuld all the reverse dependencies</li>
<li>and their reverse dependencies (recursive)</li>
</ol>
<p>The first point can be solved by <strong>EAPI 5</strong> so called <a href="http://wiki.gentoo.org/wiki/Sub-slots_and_Slot-Operators">SUBSLOT feature</a>.</p>
<p>The second one is not solved yet, but i was said is planned for <strong>EAPI=6</strong>. Thus you will still need to use <strong>haskell-updater</strong> time to time.</p>
<p>Anyway, I&#8217;ve bumped <strong>binary</strong> package today and to show how portage picks all it&#8217;s immediate users:</p>
<pre><code># emerge -av1 dev-haskell/binary

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  r  U ~] dev-haskell/binary-0.6.4.0:0/0.6.4.0::gentoo-haskell [0.6.2.0:0/0.6.2.0::gentoo-haskell] USE="doc hscolour {test} -hoogle -profile" 0 kB
[ebuild  r  U ~] dev-haskell/sha-1.6.1:0/1.6.1::gentoo-haskell [1.6.0:0/1.6.0::gentoo-haskell] USE="doc hscolour -hoogle -profile" 2,651 kB
[ebuild  r  U ~] dev-haskell/zip-archive-0.1.2.1-r2:0/0.1.2.1::gentoo-haskell [0.1.2.1-r1:0/0.1.2.1::gentoo-haskell] USE="doc hscolour {test} -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/data-binary-ieee754-0.4.3:0/0.4.3::gentoo-haskell  USE="doc hscolour -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/dyre-0.8.11:0/0.8.11::gentoo-haskell  USE="doc hscolour -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/hxt-9.3.1.1:0/9.3.1.1::gentoo-haskell  USE="doc hscolour -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/hashed-storage-0.5.10:0/0.5.10::gentoo-haskell  USE="doc hscolour {test} -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/dbus-core-0.9.3-r1:0/0.9.3::gentoo-haskell  USE="doc hscolour -hoogle -profile" 0 kB
[ebuild  rR   ~] dev-haskell/hoogle-4.2.14:0/4.2.14::gentoo-haskell  USE="doc fetchdb hscolour -fetchdb-ghc -hoogle -localdb -profile" 0 kB
[ebuild  rR   ~] www-apps/gitit-0.10.0.2-r1:0/0.10.0.2::gentoo-haskell  USE="doc hscolour plugins -hoogle -profile" 0 kB
[ebuild  r  U ~] dev-haskell/yesod-auth-1.1.1.7:0/1.1.1.7::gentoo-haskell [1.1.1.6:0/1.1.1.6::gentoo-haskell] USE="doc hscolour -hoogle -profile" 17 kB
[ebuild  rR   ~] dev-haskell/yesod-1.1.4:0/1.1.4::gentoo-haskell  USE="doc hscolour -hoogle -profile" 0 kB

Total: 12 packages (4 upgrades, 8 reinstalls), Size of downloads: 2,668 kB

Would you like to merge these packages? [Yes/No]</code></pre>
<p>I would like to rebuild all the <strong>sha</strong> (and so on) revdeps as well, but <strong>EAPI</strong> can&#8217;t express that kind of depends yet.</p>
<p>The <strong>EAPI=5</strong> ebuild slowly drift to main portage tree as well.</p>
<h1 id="ghc-9999">ghc-9999</h1>
<p>The most iteresting thing!</p>
<p>With great Mark&#8217;s help we now have live ghc ebuild right out of gti tree!</p>
<p>One of the most notable things is the dynamic linking by default.</p>
<pre><code># ldd `which happy` # ghc-7.7.20121116
    linux-vdso.so.1 (0x00007fffb0bff000)
    libHScontainers-0.5.0.0-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/containers-0.5.0.0/libHScontainers-0.5.0.0-ghc7.7.20121116.so (0x00007fe616972000)
    libHSarray-0.4.0.1-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/array-0.4.0.1/libHSarray-0.4.0.1-ghc7.7.20121116.so (0x00007fe6166d0000)
    libHSbase-4.6.0.0-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/base-4.6.0.0/libHSbase-4.6.0.0-ghc7.7.20121116.so (0x00007fe615df9000)
    libHSinteger-gmp-0.5.0.0-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/integer-gmp-0.5.0.0/libHSinteger-gmp-0.5.0.0-ghc7.7.20121116.so (0x00007fe615be6000)
    libHSghc-prim-0.3.0.0-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/ghc-prim-0.3.0.0/libHSghc-prim-0.3.0.0-ghc7.7.20121116.so (0x00007fe615976000)
    libHSrts-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/rts-1.0/libHSrts-ghc7.7.20121116.so (0x00007fe615715000)
    libc.so.6 =&gt; /lib64/libc.so.6 (0x00007fe61536c000)
    libHSdeepseq-1.3.0.1-ghc7.7.20121116.so =&gt; /usr/lib64/ghc-7.7.20121116/containers-0.5.0.0/../deepseq-1.3.0.1/libHSdeepseq-1.3.0.1-ghc7.7.20121116.so (0x00007fe615162000)
    libgmp.so.10 =&gt; /usr/lib64/libgmp.so.10 (0x00007fe614ef4000)
    libffi.so.6 =&gt; /usr/lib64/libffi.so.6 (0x00007fe614cec000)
    libm.so.6 =&gt; /lib64/libm.so.6 (0x00007fe6149f2000)
    librt.so.1 =&gt; /lib64/librt.so.1 (0x00007fe6147ea000)
    libdl.so.2 =&gt; /lib64/libdl.so.2 (0x00007fe6145e6000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe616d41000)
    libpthread.so.0 =&gt; /lib64/libpthread.so.0 (0x00007fe6143ca000)

$ ls -lh `which pandoc` # ghc-7.7.20121116
-rwxr-xr-x 1 root root 6.3M Nov 16 16:38 /usr/bin/pandoc
$ ls -lh `which pandoc` # ghc-7.4.2
-rwxr-xr-x 1 root root 27M Nov 18 17:46 /usr/bin/pandoc</code></pre>
<p>Actually, the whole <strong>ghc-9999</strong> installation is <strong>150MB</strong> smaller, than <strong>ghc-7.4.1</strong> on amd64.</p>
<p>Quite a win!</p>
<p>And as a side effect <strong>revdep-rebuild</strong> (or portage&#8217;s <strong>FEATURES=preserved-rebuild</strong>) can note (and fix) introduced breakages due to upgrades!</p>
<p>Work on the ghc cross-compilation in the ebuild slowly continues (needs some upstream fixes to support toolchains inferred from <strong>build</strong>/<strong>host</strong>/<strong>target</strong> triplets).</p>
<p>Have fun!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=66&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2012/11/24/eapi5-ghc-7-6-and-other-goodies/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>
	</item>
		<item>
		<title>ghc-7.4 in the gentoo tree</title>
		<link>http://gentoohaskell.wordpress.com/2012/03/11/ghc-7-4-in-the-gentoo-tree/</link>
		<comments>http://gentoohaskell.wordpress.com/2012/03/11/ghc-7-4-in-the-gentoo-tree/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 20:31:45 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[ghc]]></category>
		<category><![CDATA[hackage]]></category>
		<category><![CDATA[hackport]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=43</guid>
		<description><![CDATA[A year has passed since last update from gentoo haskell team. Quite a few things have happened in haskell land since: ghc-7.2 and 7.4 were released by GHC HQ hackage got ever increasing ton of package bumps overlay got some of those updates cabal test suite by Thomas Tuegel became more popular and many others! [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=43&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A year has passed since last update from gentoo haskell team. Quite a few things have happened in haskell land since:</p>
<ul>
<li><strong>ghc-7.2</strong> and <strong>7.4</strong> were released by <strong>GHC HQ</strong></li>
<li><strong>hackage</strong> got ever increasing ton of package bumps</li>
<li>overlay got some of those updates</li>
<li>cabal test suite by Thomas Tuegel became more popular</li>
<li>and many others!</li>
</ul>
<p><span id="more-43"></span></p>
<h1 id="ghc-7.4">ghc-7.4</h1>
<p>Yes! <strong>ghc-7.4.1</strong> is now in main tree (but masked). We&#8217;ve just finished building ghc binaries.</p>
<p>Thus far ghc on gentoo is expected to work on:</p>
<blockquote>
<p><strong>alpha</strong>, <strong>amd64</strong>, <strong>ppc</strong>, <strong>ppc64</strong>, <strong>sparc</strong> and <strong>x86</strong>.</p>
</blockquote>
<p>It should also work on <strong>arm</strong>, but you will have to bootstrap it yourself from <strong>ghc-7.0.4</strong> binary. It took me 2 days of CPU time. I&#8217;ll try to build proper <strong>armv5</strong> binary a bit later.</p>
<p><strong>ia64</strong> support was <strong>not</strong> restored yet: it needs either patching <strong>gcc</strong> to support <code>-mcmodel-medium</code> or hacking <strong>ghc</strong> <strong>C Codegen</strong> to generate less global objects.</p>
<p>While things generally work in overlay some <strong>~arch</strong> things in main tree are still broken against <strong>ghc-7.4.1</strong>. Please, drop a note on <strong>#gentoo-haskell</strong> when you find such one. Thanks in advance!</p>
<h1 id="overlay-contributors">Overlay contributors</h1>
<p>For the past year we have got new contributions:</p>
<pre><code>gentoo-haskell $ git shortlog -s -n --since='last year'
2048  Mark Wright
 786  Sergei Trofimovich
  43  Alexander Vershilov
  25  Lennart Kolmodin
   7  Dmitry Dzhus
   5  Mike Limansky
   4  Emil Karlson
   4  jay groven
   3  Florian Schmaus
   3  Tom Prince
   3  exbb2
   2  Jacques Kvam
   2  Oleg 'silver' Osipovich
   1  James Cloos
   1  Jared Hance
   1  Keshav Kini
   1  Naohiro Aota
   1  Oleg Osipovich
   1  Perttu Luukko
   1  Ulya Fokanova
   1  chiro</code></pre>
<p>First of all, a lot of new names!</p>
<p>Mark became the gentoo developer and now helps haskell and science teams to keep the things rolling.</p>
<p>Alexander not only helps us to keep things up-to-date but also managed to tweak hackport to generate <code>USE=profile</code> style depends like the following:</p>
<pre><code>RDEPEND="=dev-haskell/conduit-0.2*[profile?]
         =dev-haskell/stm-2.2*[profile?]
         =dev-haskell/stm-chans-1.3*[profile?]
         =dev-haskell/transformers-0.2*[profile?]
         &gt;=dev-lang/ghc-6.10.1"
DEPEND="${RDEPEND}
        &gt;=dev-haskell/cabal-1.8"</code></pre>
<p>It will help users get less build-time failures when they enable profiling only for a subset of haskell libraries (<a href="http://bugs.gentoo.org/341795">gentoo bug #341795</a>).</p>
<p>I&#8217;ve added a feature to hackport which helps us spy on hackage updates: <code>hackport status --from-hackage</code>.</p>
<p>The following (clickable) sample output should be selfdescriptive:</p>
<p><a href="http://slyfox.ath.cx:8081/i/2012-03-11-23-02-41_s.png"><br />
    <img src="http://slyfox.ath.cx:8081/i/2012-03-11-23-02-41_s.png" width="446px"><br />
</a></p>
<p>You can see there <strong>leksah</strong>, <strong>unordered-containers</strong>, <strong>git-annex</strong> and other updates.</p>
<p>Some upstreams don&#8217;t upload their releases on hackage. Think about it: by uploading you get more users for free, ease distro packaging and get more feedback! Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=43&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2012/03/11/ghc-7-4-in-the-gentoo-tree/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>

		<media:content url="http://slyfox.ath.cx:8081/i/2012-03-11-23-02-41_s.png" medium="image" />
	</item>
		<item>
		<title>Details about the move to Github</title>
		<link>http://gentoohaskell.wordpress.com/2011/02/06/details-about-the-move-to-github/</link>
		<comments>http://gentoohaskell.wordpress.com/2011/02/06/details-about-the-move-to-github/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 13:27:05 +0000</pubDate>
		<dc:creator>Lennart Kolmodin</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hackport]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=34</guid>
		<description><![CDATA[The Gentoo Linux Haskell Project recently moved to using git on github. We&#8217;ve got various repositories, some larger with several contributors and some smaller with only one developer. All repos were based on the darcs revision control system. You may browse the new repos at our new home. Overlay repository The overlay repository is the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=34&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The Gentoo Linux Haskell Project recently moved to using git on <a href="http://gentoohaskell.wordpress.com/2011/02/03/gentoo-haskell-overlay-moved-to-github/">github</a>.</p>
<p>We&#8217;ve got various repositories, some larger with several contributors and some smaller with only one developer. All repos were based on the <a href="http://darcs.net/">darcs</a> revision control system.</p>
<p>You may browse the new repos at our new <a href="https://github.com/gentoo-haskell">home</a>.</p>
<div id="overlay-repository">
<h1>Overlay repository</h1>
<p>The overlay repository is the heart of the <a href="http://www.gentoo.org/proj/en/prog_lang/haskell/index.xml">Gentoo Linux Haskell Project</a>. The most common packages are available in the portage tree, and thus available to all Gentoo Linux users without any additional configuration on their part.</p>
<p>For all other packages we use the overlay. It can be packages that change rapidly, are tricky to build, etc.</p>
<p>It&#8217;s our main repo, ~4000 commits from many users. There was two tools to consider:</p>
<ul>
<li><a href="http://hackage.haskell.org/package/darcs-fastconvert">darcs-fastconvert</a> written in haskell</li>
<li><a href="https://github.com/purcell/darcs-to-git">darcs-to-git</a> written in ruby</li>
</ul>
<p>We&#8217;ve decided to try both.</p>
<div id="darcs-to-git">
<h2>darcs-to-git</h2>
<pre><code>mkdir overlay.git &amp;&amp; cd overlay.git
darcs-to-git ../overlay
git commit --allow-empty -m "phony" # hack, described later
darcs-to-git ../overlay</code></pre>
<p>The hack with &#8211;allow-empty is used to workaround an error:</p>
<pre><code>Running: ["git", "log", "-n1", "--no-color"]
fatal: bad default revision 'HEAD'</code></pre>
<p>git does not track directory creation commits (when no files are affected). It&#8217;s our first commit. To be reported upstream.</p>
<p><code>darcs-to-git</code> took 7.5 hours(!) to convert our repo.</p>
</div>
<div id="darcs-fastconvert">
<h2>darcs-fastconvert</h2>
<pre><code>mkdir overlay.git &amp;&amp; cd overlay.git
(cd ../overlay ; darcs-fastconvert export) | git fast-import</code></pre>
<p>It was very fast! Took less, than 7 minutes to convert everything (~60 times faster than <code>darcs-to-git</code>!)</p>
</div>
<div id="some-notes">
<h2>some notes</h2>
<ul>
<li>
<p><code>darcs-fastconvert</code> does not try to make prettier email-only usernames:</p>
<p>username &#8216;john@doe&#8217; becomes &#8216;john@doe &lt;unknown&gt;&#8217;. Patch to convert such names to &#8216;john &lt;john@doe&gt;&#8217; sent upstream (left copy <a href="http://dev.gentoo.org/~slyfox/darcs-fastconvert-email-only-author.patch">here</a>).</p>
</li>
<li>
<p><code>darcs-fastconvert</code> does not filter out empty commits (directory-adding in darcs), so in order to get the same amount of commits as for <code>darcs-to-git</code> you will need to run <code>git filter-branch --prune-empty -f</code></p>
</li>
</ul>
</div>
</div>
<div id="hackport">
<h1>hackport</h1>
<p>hackport is the tool we use to generate Gentoo ebuilds from Hackage packages. It geatly simplifies the process and enables us to cover hundreds of packages with relatively few developers.</p>
<p>The hackport project started off as part of the overay repository in 2005. At some point we decided that it deserved its own repository, as it really was a standalone project. The development was forked from the overlay repository, and continued without being mixed with the overlay commits. However, the result was a repository with an messy history: hackport and overlay stuff was mixed. Moving to git gave us a new chance to clean it up.</p>
<p>When using git you have the option of changeing the history of your repository. Of course this is a powerful tool, but it should be used carefully. As we were in a transition of moving to git, we used these advantages. In general git will require greater knowledge of your consequences than similar tools (darcs, mercurial).</p>
<p>For this job we used the features of <code>git filter-branch</code>, see the git documentation at <a href="http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html">filter-branch</a>. As the projects where clearly separated it was easy to tell git wich files were interesting:</p>
<pre><code>git filter-branch --tree-filter \
      'rm -rf ignore-this-file and-this-directory' HEAD
git filter-branch --prune-empty -f</code></pre>
<p>We repeated until we&#8217;ve cleared the history from the overlay commits. The result is clean and only contains the hackport project. You find it at <a href="https://github.com/gentoo-haskell/hackport">hackport</a>.</p>
<p>This way we could separate the ~400 commits from the ~1100 commits that had nothing to do with the hackport project.</p>
</div>
<div id="keyword-stat">
<h1>keyword-stat</h1>
<p><code>keyword-stat</code> is a tool to help us see the status of packages regarding Gentoo&#8217;s concept of stable and testing status. Each Gentoo user is able to choose the stability level of each package through the <a href="http://devmanual.gentoo.org/keywording/index.html">keywording</a> concept.</p>
<p>The repo was already at a nice state and the conversion was straight forward:</p>
<pre><code>mkdir keyword-stat.git &amp;&amp; cd keyword-stat.git
git init
( cd ../keyword-stat ; darcs-fastconvert export ) \
    | git fast-import</code></pre>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=34&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2011/02/06/details-about-the-move-to-github/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c1d189a16f5d7c5a648ffbc547b1595d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kolmodin</media:title>
		</media:content>
	</item>
		<item>
		<title>gentoo haskell overlay moved to github</title>
		<link>http://gentoohaskell.wordpress.com/2011/02/03/gentoo-haskell-overlay-moved-to-github/</link>
		<comments>http://gentoohaskell.wordpress.com/2011/02/03/gentoo-haskell-overlay-moved-to-github/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 21:49:19 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=23</guid>
		<description><![CDATA[We have moved gentoo-haskell overlay to github! It will require some additional actions for overlay users: layman -f layman -d haskell layman -a haskell Our move was stimulated by a couple of events: code.haskell.org was not very reliable, and as you might notice haskell overlay was (and still is) inaccessible since last week. Current status [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=23&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>We have moved gentoo-haskell overlay to <a href="http://github.com/gentoo-haskell">github</a>!</p>
<p>It will require some additional actions for overlay users:</p>
<pre><code>layman -f
layman -d haskell
layman -a haskell</code></pre>
<p>Our move was stimulated by a couple of events:</p>
<ul>
<li>
<p>code.haskell.org was not very reliable, and</p>
</li>
<li>
<p>as you might notice <a href="http://code.haskell.org/gentoo/gentoo-haskell/">haskell overlay</a> was (and still is) inaccessible since last week. Current status of code.haskell.org can be tracked <a href="http://osdir.com/ml/haskell-cafe@haskell.org/2011-02/msg00042.html">here</a>.</p>
</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=23&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2011/02/03/gentoo-haskell-overlay-moved-to-github/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>
	</item>
		<item>
		<title>ghc 6.12.3 goes stable</title>
		<link>http://gentoohaskell.wordpress.com/2010/11/03/ghc-6-12-3-goes-stable/</link>
		<comments>http://gentoohaskell.wordpress.com/2010/11/03/ghc-6-12-3-goes-stable/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 20:44:43 +0000</pubDate>
		<dc:creator>Sergei Trofimovich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=19</guid>
		<description><![CDATA[Good news! We&#8217;ve got ghc-6.12.3 stable on x86, amd64 and sparc arches! (more to come) What does it mean for end user? You&#8217;ll get latest haskell compiler and will be able to taste it&#8217;s new features! We also got rid of hacky ghc-updater and switched to haskell-updater. Unfortunately, some haskell packages in main tree might [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=19&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Good news!</p>
<p>We&#8217;ve got <strong>ghc-6.12.3</strong> stable on <strong>x86</strong>, <strong>amd64</strong> and <strong>sparc</strong> arches! (<a href="https://bugs.gentoo.org/show_bug.cgi?id=338652">more to come</a>)</p>
<p>What does it mean for end user?</p>
<p>You&#8217;ll get latest <strong>haskell</strong> compiler and will be able to taste it&#8217;s new features! We also got rid of hacky <strong>ghc-updater</strong> and switched to <a href="/2009/07/22/announcing-haskell-updater/">haskell-updater</a>.</p>
<p>Unfortunately, some haskell packages in main tree might stop building on new compiler. Please report them as problematic to <a href="http://bugs.gentoo.org">gentoo bugzilla</a> or drop a line in #gentoo-haskell on freenode <strong>IRC</strong> network.</p>
<p>I&#8217;ve decided to look back and estimate timeframe it took us to deliver <strong>ghc</strong> for you:</p>
<ul>
<li>12 Oct 2009 &#8211; GHC-6.12 RC1 <a href="http://www.mail-archive.com/glasgow-haskell-users@haskell.org/msg17306.html">appears in public</a></li>
<li>2 Nov 2009 &#8211; GHC-6.12 RC1 hits <a href="http://code.haskell.org/gentoo/gentoo-haskell/">gentoo-haskell overlay</a></li>
<li>12 Jun 2010 &#8211; GHC-6.12.3 <a href="http://www.mail-archive.com/glasgow-haskell-users@haskell.org/msg18378.html">is released</a></li>
<li>26 Sep 2010 &#8211; GHC-6.12.3 goes stable on <strong>amd64</strong></li>
</ul>
<p>So, it took us almost 4 months.</p>
<p>The major problems were:</p>
<ul>
<li>Resurrect <strong>GHC</strong> on exotic architectures (we have 10 patches on top of vanilla ghc!). Unfortunately, <strong>hppa</strong> support was lost.</li>
<li>Fix packages breaking with <strong>6.10/6.12</strong> branch of <strong>ghc</strong> (tons of them)</li>
</ul>
<p>Brave souls can try to install <strong>ghc-7-rc2</strong> (aka 7.0.0.20101028) from overlay (currently masked). It has no <strong>base-3</strong> (deprecated in <strong>ghc-6.10</strong>), so you&#8217;ll have great chance to become a contributor to various haskell projects!</p>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=19&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2010/11/03/ghc-6-12-3-goes-stable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b1d1edfe19c0fda8d24e1a969cc4e750?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trofimovich</media:title>
		</media:content>
	</item>
		<item>
		<title>Announcing haskell-updater</title>
		<link>http://gentoohaskell.wordpress.com/2009/07/22/announcing-haskell-updater/</link>
		<comments>http://gentoohaskell.wordpress.com/2009/07/22/announcing-haskell-updater/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 11:35:01 +0000</pubDate>
		<dc:creator>Ivan Miljenovic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=7</guid>
		<description><![CDATA[haskell-updater is the new Haskell upgrading tool for Gentoo, replacing ghc-updater.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=7&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For those of you who have been hanging around in #gentoo-haskell (especially when I&#8217;m around&#8230; :p) or who have upgraded to dev-lang/ghc-6.10.4, you would probably have noticed the new <a href="http://haskell.org/haskellwiki/Gentoo#haskell-updater">haskell-updater</a> <a href="http://code.haskell.org/gentoo/gentoo-haskell/app-admin/haskell-updater/">package</a>.  This is our replacement to the venerable <em>ghc-updater</em> script that was packaged with previous versions of GHC.</p>
<p>ghc-updater is a bash script that was based long ago on <a href="http://packages.gentoo.org/package/app-admin/python-updater">python-updater</a>.  However, whilst python-updater was updated to let users use alternative package managers like Paludis or PkgCore, it wasn&#8217;t as simple to upgrade ghc-updater as we bundle it with dev-lang/ghc.  So, we (meaning <em>I</em> :p ) decided to split off a new haskell-updater package (with a deliberate name change to avoid problems with name clashes).  At first this was just going to be based off the newer versions of python-updater, but this approach was soon abandoned (I had trouble finding my way through what it was doing).</p>
<p>Thus, haskell-updater is unique as far as I know amongst the various app-admin/*-updater packages (well, the only two that are there are python-updater and emacs-updater :p ) in that it is written in the languages whose packages it aims to update and rebuild.  Using Haskell for haskell-updater gives us several advantages over the &#8220;traditional&#8221; bash-based kludge:</p>
<ul>
<li> It uses our language of choice; this means we&#8217;re more likely to be interested in it and maintain it (and be <em>able</em> to maintain it!) in future.</li>
<li> A more modular design makes it easier to split apart parts of the code rather than a one-file-fits-all bash script.</li>
<li> Ability to use the <a href="http://www.haskell.org/cabal/">Cabal</a> library (more on why this is a good thing later).</li>
<li> Speeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed!  After all, all <a href="http://funroll-loops.info/">Gentoo-ers are ricers</a>, aren&#8217;t we? :p  Seriously, haskell-updater takes roughly 2s for me to run (whilst doing more!  see below), ghc-updater takes 27s and I killed python-updater after 8.5 minutes :s</li>
<li> Have a piece of software written in Haskell that <a href="http://donsbot.wordpress.com/">Don Stewart</a> isn&#8217;t going to <a href="http://article.gmane.org/gmane.comp.lang.haskell.general/16435/">brag</a> about having it <a href="http://article.gmane.org/gmane.comp.lang.haskell.cafe/46463/">available</a> in <a href="http://archhaskell.wordpress.com/">Arch</a> <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>Now, haskell-updater doesn&#8217;t just find packages installed with previous versions of GHC like ghc-updater did; it also finds broken packages, making it equivalent to revdep-rebuild/reconcilio/etc. for Haskell packages (though just for libraries, since at the moment GHC creates statically-linked binaries).  This has become a bigger problem in the last few years as the number of Haskell libraries has almost exploded (especially after the base library being split up).  Until now, however, users have had to manually run &#8220;ghc-pkg check&#8221; and build the corresponding packages by hand (otherwise you face the dreaded <a href="http://blog.well-typed.com/2008/08/solving-the-diamond-dependency-problem/">Diamond Dependency Problem</a>).  However, version 1.6 of the Cabal library includes support for parsing the output of &#8220;ghc-pkg check&#8221;, so we&#8217;re able to use this to have haskell-updater find these broken packages for you as well!</p>
<p>haskell-updater has several other incremental advantages over ghc-updater (supports slotted packages properly; able to find packages installed with previous versions of GHC even if someone manually went and deleted the old GHC directory when they shouldn&#8217;t have, etc.).  As such, we highly recommend that people install it and try it out.  Note, however, that it requires one of the 6.10 series of GHC releases or higher to work (technically it doesn&#8217;t as long as you install the necessary libraries yourself; however, we&#8217;ve stated this in the ebuild to try and avoid dependency problems when upgrading GHC).  With version 6.10.4, it has completely replaced ghc-updater (ghc-updater is still shipped with previous versions) as the used updating tool.</p>
<p>Extra features we&#8217;re considering adding in future releases:</p>
<ul>
<li> Allow user-defined package managers (in case of custom scripts, etc.).</li>
<li> The ability to print out the command to rebuild the packages rather than actually running it.</li>
<li> Detect and fix packages that didn&#8217;t get re-registered by ghc-pkg when re-building the same version of GHC (this seems to be a problem when using Paludis).</li>
<li> Adding colours to the output <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>Note that haskell-updater is not available on <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/">HackageDB</a> like most other Haskell software; this is to avoid name-pollution there, and because we don&#8217;t think non-Gentoo users are going to be interested in it (and Gentoo users will probably have it automatically installed for them anyway).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=7&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2009/07/22/announcing-haskell-updater/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/82401038e87257529066b9e6618d470e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ivanm</media:title>
		</media:content>
	</item>
		<item>
		<title>Haskell in Gentoo</title>
		<link>http://gentoohaskell.wordpress.com/2009/06/28/haskell-in-gentoo/</link>
		<comments>http://gentoohaskell.wordpress.com/2009/06/28/haskell-in-gentoo/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 09:41:09 +0000</pubDate>
		<dc:creator>Lennart Kolmodin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gentoohaskell.wordpress.com/?p=3</guid>
		<description><![CDATA[Gentoo Linux supports Haskell! #gentoo-haskell on freenode<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=3&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Gentoo Linux supports Haskell!</p>
<p>#gentoo-haskell on freenode</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&#038;blog=7667502&#038;post=3&#038;subd=gentoohaskell&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gentoohaskell.wordpress.com/2009/06/28/haskell-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c1d189a16f5d7c5a648ffbc547b1595d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kolmodin</media:title>
		</media:content>
	</item>
	</channel>
</rss>
