hackage, cabal and the haskell platform: the second year

21
Hackage, Cabal and The Haskell Platform The Second Year Don Stewart Duncan Coutts Galois Well-Typed

Upload: don-stewart

Post on 08-Apr-2015

28.178 views

Category:

Documents


2 download

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

Page 1: Hackage, Cabal and the Haskell Platform: The Second Year

Hackage, Cabaland

The Haskell Platform

The Second Year

Don Stewart Duncan CouttsGalois Well-Typed

Page 2: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 3: Hackage, Cabal and the Haskell Platform: The Second Year

The Haskell Platform

Page 4: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 5: Hackage, Cabal and the Haskell Platform: The Second Year

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...

Page 6: Hackage, Cabal and the Haskell Platform: The Second Year

● Global Village● 154 countries● US . DE . UK . JP . RU . CA . CH . AU . FR . BR● SE . NL . PL . IN . IT . ES . UA . AR . KR . FI

Page 7: Hackage, Cabal and the Haskell Platform: The Second Year

“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

Page 8: Hackage, Cabal and the Haskell Platform: The Second Year

“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

Page 9: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 10: Hackage, Cabal and the Haskell Platform: The Second Year

Hackage

Page 11: Hackage, Cabal and the Haskell Platform: The Second Year

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)

Page 12: Hackage, Cabal and the Haskell Platform: The Second Year
Page 13: Hackage, Cabal and the Haskell Platform: The Second 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

Page 14: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 15: Hackage, Cabal and the Haskell Platform: The Second Year
Page 16: Hackage, Cabal and the Haskell Platform: The Second Year
Page 17: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 18: Hackage, Cabal and the Haskell Platform: The Second Year

Future work for Cabal

● NixOS-style persistent package management● New constraint solver for dependencies● cabal benchmark?● Parallel builds● Hackage docs as wikis

Page 19: Hackage, Cabal and the Haskell Platform: The Second Year

New Hackage Visual Design

Page 20: Hackage, Cabal and the Haskell Platform: The Second Year

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

Page 21: Hackage, Cabal and the Haskell Platform: The Second Year

Questions!