Haskell Platform: Difference between revisions
(no clash requirement) |
DonStewart (talk | contribs) No edit summary |
||
Line 4: | Line 4: | ||
that would be the minimum standard for Haskell library support on a | that would be the minimum standard for Haskell library support on a | ||
system. | system. | ||
[[Image:Small-package-bubbles.png]] | |||
More generally, if we want tools as well as libraries, then the simpler name | More generally, if we want tools as well as libraries, then the simpler name | ||
''Haskell Platform'' may be more appropriate than the original name ''Haskell Library Platform''. | ''Haskell Platform'' may be more appropriate than the original name ''Haskell Library Platform''. | ||
There are now | There are now around 800 libraries available for Haskell, on | ||
[http://hackage.haskell.org hackage]. Choosing which libraries to | [http://hackage.haskell.org hackage]. Choosing which libraries to | ||
support on a distro is currently done on an ad hoc basis, with | support on a distro is currently done on an ad hoc basis, with | ||
significant variation from one distribution to another. | significant variation from one distribution to another. | ||
The goal of the Haskell Platform is to provide a comprehensive, reliable base of libraries on which Haskell programmers can build anything they may wish. It should supply a significant percent of the dependencies required to build everything on hackage.haskell.org, and have a clear process for moving forward. | |||
required to build | |||
== Developers == | |||
Haskell Platform core team: | |||
* Duncan Coutts (Well Typed) | |||
* Don Stewart (Galois) | |||
== Resources == | |||
* [http://code.haskell.org/haskell-platform Haskell Platform project repository]. | |||
* [http://trac.haskell.org/haskell-platform/ Project bug tracker] | |||
== Documentation == | |||
* | * [http://cgi.cse.unsw.edu.au/~dons/blog/2008/07/29#batteries The Haskell Platform Proposal] for the 2008 Haskell Symposium | ||
* Bryan O'Sullivan's [http://www.serpentine.com/blog/2008/09/26/some-notes-on-the-future-of-haskell-and-fp/ writeup] of the future of Haskell discussion | |||
* | * [http://thread.gmane.org/gmane.comp.lang.haskell.cvs.ghc/28062/focus=28807 A discussion] took place in June and July 2008 about the direction of the HLP. | ||
* | * [http://haskell.org/~duncan/ghc/%23ghc-2008-07-16.log More occurred during the #ghc meeting] | ||
===Quality Control=== | ===Quality Control=== | ||
Line 81: | Line 69: | ||
* 100% coverage | * 100% coverage | ||
* Have real world use. | * Have real world use. | ||
* Answer a notable set of build dependencies. | |||
== Distribution format == | == Distribution format == | ||
* Source distribution | |||
* .tar.gz bundle compatible with extra-libs | |||
* Windows Installed | |||
* Native distro packages | |||
The HP can be a meta package on hackage.haskell.org, that simply | The HP can be a meta package on hackage.haskell.org, that simply | ||
depends on the core set. | depends on the core set. | ||
cabal install | cabal install haskell-platform | ||
should work, for example. | should work, for example. | ||
Line 93: | Line 87: | ||
Beyond this, we'll need a why to provide single tarballs of the set, | Beyond this, we'll need a why to provide single tarballs of the set, | ||
windows installers et al. Will GHC need cabal-install? | windows installers et al. Will GHC need cabal-install? | ||
== HLP: Batteries Included== | == HLP: Batteries Included== | ||
Line 170: | Line 109: | ||
* c2hs | * c2hs | ||
* hsc2hs | * hsc2hs | ||
== Related == | == Related == | ||
Line 189: | Line 115: | ||
* [http://live.gnome.org/ReleasePlanning Gnome's release process] | * [http://live.gnome.org/ReleasePlanning Gnome's release process] | ||
* [http://live.gnome.org/ReleasePlanning/ModuleProposing How to propose modules for GNOME] | * [http://live.gnome.org/ReleasePlanning/ModuleProposing How to propose modules for GNOME] | ||
* [http://dutherenverseauborddelatable.wordpress.com/2008/08/29/ocaml-batteries-included-release-0-where-it-should-all-have-begun/ OCaml Batteries] | |||
[[Category:Community]] | [[Category:Community]] |
Revision as of 06:25, 30 September 2008
Haskell: Batteries Included
The Haskell Platform (HP) is the name of a proposed library set that would be the minimum standard for Haskell library support on a system.
More generally, if we want tools as well as libraries, then the simpler name Haskell Platform may be more appropriate than the original name Haskell Library Platform.
There are now around 800 libraries available for Haskell, on hackage. Choosing which libraries to support on a distro is currently done on an ad hoc basis, with significant variation from one distribution to another.
The goal of the Haskell Platform is to provide a comprehensive, reliable base of libraries on which Haskell programmers can build anything they may wish. It should supply a significant percent of the dependencies required to build everything on hackage.haskell.org, and have a clear process for moving forward.
Developers
Haskell Platform core team:
- Duncan Coutts (Well Typed)
- Don Stewart (Galois)
Resources
Documentation
- The Haskell Platform Proposal for the 2008 Haskell Symposium
- Bryan O'Sullivan's writeup of the future of Haskell discussion
- A discussion took place in June and July 2008 about the direction of the HLP.
Quality Control
- cabal-installable libraries with haddocks.
- The set of HP packages + core libs must be closed. That is all haskell dependencies must be from within the HP packages or core libs. Dependencies on C libs can be external.
- All packages in a particular HP version must have a consistent install plan.
That means only one version of each package and all dependencies on packages must be satisfied by the version in the HP package set.
There is code in cabal-install to check the last two requirements.
Other possible ideas for quality standards we might want to require:
- exposed module names must follow the hierarchical module name convention, meaning they must be in an appropriate place in the module namespace. In particular, no clash of module names should occur within the HP.
Other heuristics
Packages set for inclusion should:
- Have a maintainer
- Have a bug tracker
- Use the correct versioning
- Build with cabal
- Work on all arches.
Further goals:
- -Wall clean
- 100% coverage
- Have real world use.
- Answer a notable set of build dependencies.
Distribution format
- Source distribution
- .tar.gz bundle compatible with extra-libs
- Windows Installed
- Native distro packages
The HP can be a meta package on hackage.haskell.org, that simply depends on the core set.
cabal install haskell-platform
should work, for example.
Beyond this, we'll need a why to provide single tarballs of the set, windows installers et al. Will GHC need cabal-install?
HLP: Batteries Included
Tools
Language-processing tools should probably also be considered to be part of the platform. Commonly-needed tools include:
- ghc
- happy
- alex
- haddock
- cpphs
- cabal-install (now known simply as cabal?)
What else might we consider?
- DrIFT or derive
- throw in another compiler - e.g. Hugs?
- c2hs
- hsc2hs