<?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/"
	>

<channel>
	<title>Alson Kemp &#187; Tools</title>
	<atom:link href="http://www.alsonkemp.com/tag/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alsonkemp.com</link>
	<description>Hackfoofery</description>
	<lastBuildDate>Thu, 05 Jan 2012 03:53:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Plea For &#8220;cabal install&#8221;</title>
		<link>http://www.alsonkemp.com/haskell/a-plea-for-cabal-install/</link>
		<comments>http://www.alsonkemp.com/haskell/a-plea-for-cabal-install/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 20:43:40 +0000</pubDate>
		<dc:creator>alson</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Turbinado]]></category>
		<category><![CDATA[cabal]]></category>
		<category><![CDATA[cabal install]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.alsonkemp.com/?p=177</guid>
		<description><![CDATA[Updated per Ganesh&#8217;s comments. Over here, Adolfo commented: &#8220;Hi,I tried to do follow the example, but I couldn’t even install the packages, hsx and hs-plugins were impossible. I tried with cabal and manually, and neither of those worked . any suggestion, known issue with this packages?&#8221; I&#8217;ve been busy adding features to Turbinado and haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Updated per Ganesh&#8217;s comments.</p>

<hr />

<p>Over <a href="http://www.alsonkemp.com/haskell/turbinado-implementing-a-poor-mans-wiki/" target="_blank">here</a>, Adolfo commented:</p>

<blockquote>&#8220;Hi,I tried to do follow the example, but I couldn’t even install the packages, hsx and hs-plugins were impossible. I tried with cabal and manually, and neither of those worked . any suggestion, known issue with this packages?&#8221;</blockquote>

<p>I&#8217;ve been busy adding features to Turbinado and haven&#8217;t circled back around to making sure that it&#8217;s easy to build, so I can claim a lot of the blame for the build problems.  Turns out to be really important that publicly released packages are easily buildable&#8230;</p>

<p>Thinking back, I have really struggled to build Turbinado&#8230; and I wrote Turbinado!  Turbinado depends on some particular bugfix-ish library releases (e.g. GSomething 0.6.<strong>1</strong>).  With GHC 6.10, a bunch of libraries have broken or have changed so much that they badly break Turbinado.  (I need to specify better the versions in turbinado.cabal.)</p>

<p>At times, I&#8217;ve considered bundling the dependencies into Turbinado so that building Turbinado would be easy, but that&#8217;s always felt like a cop-out.  So I&#8217;m pleading for &#8220;cabal install&#8221;.  Given Turbinado&#8217;s dependence on particular versions of libraries, I would love to able to do:
<pre>cabal install turbinado
  OR  (from /home/alson/turbinado)
cabal build</pre></p>

<h3><a href="http://hackage.haskell.org/trac/hackage/wiki/CabalInstall">Cabal Install</a></h3>

<p>Most casual users of Ruby, Python, Perl, Java, etc, know that those languages have automagic build/dependencies system (respectively, gem, eggs, CPAN, maven).  The tools may be of varying quality, but many <a href="http://www.rubygems.org/read/chapter/1">tutorials</a> include something like &#8220;First, use GEM to install the package: gem install rails&#8221; and demonstrate just how simple it is to get a useful piece of software installed.</p>

<p>This is not the case in Haskell.  I&#8217;d guess that no more than 5% of Haskellers know about the <em>cabal</em> command line tool and &#8220;cabal install&#8221;.  On the other hand, I&#8217;d guess that 95% of novice Rubyers know about &#8220;gem install&#8221;.  These automated build/dependency system are now critical to the success of languages.  As a beginner in Ruby, I always knew that I could easily try out various libraries by using GEM to install bits of software.  I&#8217;m now fairly experienced with Haskell and, <em>partly because of that experience</em>, I <em>don&#8217;t believe</em> that I can easily try out various Haskell libraries.</p>

<p><a href="http://www.cs.chalmers.se/~d00nibro/">Niklas Broberg&#8217;s</a> <a href="http://code.haskell.org/HSP/">HSP</a> is a great example of the challenge of building Haskell programs.  HSP is very nicely separated into modular libraries which: makes it easy to apply pieces of HSP&#8217;s functionality to a program; makes it hard for a human (at least for me) to build any one part of HSP because each part depends on so many other parts.  A build/dependency tool would make HSP much easier to build into existing programs.</p>

<h3>The Plea</h3>

<p>I love using Haskell and Haskell will only get better if more people are able to use it.  IMO, a pre-condition to the growth of the language is a solid, easy to use build/dependency system.  Cabal is that system for GHC and the <em><a href="http://hackage.haskell.org/trac/hackage/wiki/CabalInstall">cabal</a></em> command line tool is a key part of that system.</p>

<p>Unfortunately, the <em>cabal</em> command line tool isn&#8217;t bundled with GHC, but &#8230;  Please get it, build it, use it, report any bugs, compliment the Cabal team, etc.  It&#8217;ll be a great help to the Haskell community.
<pre>darcs get http://darcs.haskell.org/cabal-install
cd cabal-install
sh bootstrap.sh</pre></p>

<h3> Update: Haskell Platform </h3>

<p>Ganesh points out the Haskell Platform Proposal, so it looks as though there is a plan to incorporate the cabal command line tool.  See the following:</p>

<p><a href="http://www.haskell.org/haskellwiki/Haskell_Platform">http://www.haskell.org/haskellwiki/Haskell_Platform</a></p>

<p><a href="http://www.haskell.org/haskellwiki/Haskell_Platform/FAQ">http://www.haskell.org/haskellwiki/Haskell_Platform/FAQ</a></p>

<hr />

<p><del datetime="2008-12-27T01:04:10+00:00">P.S.  Anyone know if the <em>cabal</em> command line tool is going to make it into GHC?</del></p>

<hr />

<p>Links to <em>cabal install</em> information:</p>

<p><a href="http://hackage.haskell.org/trac/hackage/wiki/CabalInstall">http://hackage.haskell.org/trac/hackage/wiki/CabalInstall</a></p>

<p><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cabal-install">http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cabal-install</a></p>

<p><a href="http://ghcmutterings.wordpress.com/2008/11/10/bootstrapping-cabal-install/">http://ghcmutterings.wordpress.com/2008/11/10/bootstrapping-cabal-install/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alsonkemp.com/haskell/a-plea-for-cabal-install/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

