hackage, cabal and the haskell platform: the second year
DESCRIPTION
The amount of freely available Haskell code has grown exponentially in the pasttwo years as Hackage and Cabal have come online. Managing millions of Haskellcode, partitioned thousands of interdependent packages is a serious engineeringchallenge that has received little attention from the language research community.Meanwhile, new adopters of Haskell struggle to deal with the sheer number oflibraries and tools now available.One pragmatic approach to managing this web is the Haskell Platform (HP), aproject to build a blessed, comprehensive set of libraries meeting objectivequality control criteria, and in doing so make expert recommendations on whichpackages to use. In its first six weeks of operation the HP had over fortythousand downloads.The challenge with such a project is to manage the many conflict constraintsfor diversity, coverage, and quality when assembling the package set. This talkwill outline the state of the Haskell Platform, the technical approaches takento build it, and the roadmap ahead.TRANSCRIPT
Hackage, Cabaland
The Haskell Platform
The Second Year
Don Stewart Duncan CouttsGalois Well-Typed
Goals of the Haskell Platform● Standardized list of compilers, libraries and
tools● Comprehensive: Haskell: Batteries Included● One level of quality control for Hackage● Makes it easier to get your work distributed,
with free marketing support● Move stabilization work from GHC team to
libraries team● One click installers for Windows, Mac, Unix
http://haskell.org/platform
The Haskell Platform
What we did in 2010● First full year of the HP project
● Time-based releases:– 2010.1.x March– 2010.2.x July
● Package Addition Process– http://trac.haskell.org/haskell-platform/wiki/AddingPackages
● Proposals:
– + text– mtl → mtl2 with transformers
HP Results: 2010● 703k total downloads● 138k unique IP addresses downloaded Haskell● ~125k downloads per HP release● Windows dominates the installs, and is 50% of
traffic to the HP site.
● Total world's population of Haskell
programmers would fit on 1155 Boeing 747s...
● Global Village● 154 countries● US . DE . UK . JP . RU . CA . CH . AU . FR . BR● SE . NL . PL . IN . IT . ES . UA . AR . KR . FI
“Try http://hackage.haskell.org/platform/ It's made this sort of stuff a lot easier!”
“Drooling over the Haskell Platform”
“I'm glad to see such an easy way to get up and running with Haskell finally!”
“MSYSGit + MingW + Emacs + HaskellPlatform on Windows is so nice. It's almost like I'm using a real OS.”
“The #Haskell Platform installed beautifully on my machine. I wish that all of my research tools were so nicely packaged”
“it is easier to install the new #haskell #Platform in a mac than the JDK #win
“Cannot believe I still can't apt-get install haskell-platform in Ubuntu 10.04...”
“Haha! Haskell, I hate you! Someone knows why, after installing Haskell Platform on Mac, I can't use cabal?”
“Installing Haskell Platform 2010.2.0.0 using the official DMG. MacPorts sucks!”
“Why is haskell-platform 138MB? Does it include monad of the entire world?”
“Installing Haskell Platform on Linux is a royal pain in the ass.”
“So, you can't compile & install Haskell unless you already have a working version of Haskell...”
Avoiding avoiding success hurts
Haskell Platform and GHC 7
● The new GHC 7 comes out soon● No more base 3● -XMonoBinds with GADTs● -XHaskell2010 by default (e.g. FFI available)● 3 months until HP 2011● Inliner, LLVM, type checker, IO manager new
● So: 3 month “beta testing” for GHC 7 series● Then it is in the standard distribution
Hackage
Hackage Results: growing growth
● Total Hackage downloads :● 1.26 million downloads in Q1-Q3 2010.● 2.92 million downloads total● 160K downloads in August
– Compare with 80 K last August
● Total Packages on Hackage : 2445– (+1000 over last year)
● Total Contributors : 628 developers– (+128 over last year)
Top 20 Haskell Apps on Hackage
cabal-install, xmonad, haddock, cpphs, happy, alex, hscolour, darcs,
pandoc, texmath, hlint, leksah, xmobar, yi, agda, cabal2arch,
uuagc, hoogle, gitit, c2hs
Top 20 Haskell Libs on Hackage
parsec, HTTP, zlib, binary, network, utf8-string, QuickCheck, mtl, Cabal,
haskell-src-exts, regex-base, hslogger, transformers, text,
uniplate, parallel, xml, json, HaXml, stm
Cabal and cabal-install
● cabal test – see the talk● hackage 2 – see the talk● Libraries and build-tools in same package● Support for more compilers
cabal install –uhc
● License checking, clean-room builds, hudson support, build reporting
Future work for Cabal
● NixOS-style persistent package management● New constraint solver for dependencies● cabal benchmark?● Parallel builds● Hackage docs as wikis
New Hackage Visual Design
Work still to do● Ubuntu “Haskell Platform” .deb
● Coming downstream from Debian
● More comprehensive “native” Mac tools● Don't use MacPorts● Need new Mac maintainer team
● “Enterprise” Haskell installers: SunOS/ CentOS● Easy regression testing of Hackage
● Nightly smoke tests, “cabal install –chroot”● Hudson build farm integration...● Source analysis interface to Hackage package code
Questions!