You are on page 1of 21

Hackage, Cabal

and
The Haskell Platform
The Second Year

Don Stewart Duncan Coutts


Galois 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
Avoiding avoiding success hurts
“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...”
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!

You might also like