Difference between revisions of "Haskell Platform"
DonStewart (talk | contribs) |
m (Changed link to haskell platform documentation - original link returned 404) |
||
(108 intermediate revisions by 21 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{HP}} |
||
− | '''Haskell: Batteries Included''' |
||
+ | The Haskell Platform is a single, standard [[Haskell]] development environment for everyone. It offers a set of blessed libraries and tools, to save you the task of picking and choosing which core Haskell libraries to use. |
||
− | 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. |
||
+ | [http://haskell.org/platform/contents.html Learn more about the Haskell Platform ⇒] |
||
− | More generally, if we want tools as well as libraries, then the simpler name |
||
− | ''Haskell Platform'' may be more appropriate. |
||
+ | __TOC__ |
||
− | There are now more than 500 libraries available for Haskell, on |
||
− | [http://hackage.haskell.org 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. |
||
+ | == What's in the platform == |
||
− | Some, such as Arch Linux, or Gentoo Linux, include as many libraries as |
||
− | possible (typically over 400), while others have the bare minimum |
||
− | required to build ghc and say, darcs and xmonad. |
||
+ | See the [https://www.haskell.org/downloads/#platform Haskell Platform documentation] on [https://www.haskell.org haskell.org]. |
||
− | The Haskell community needs to provide direction and blessing to a |
||
− | library set that should be available and adopted, to further encourage |
||
− | Haskell use. |
||
− | Ensuring that the chosen set of library versions works well together, and |
||
− | with a particular version of GHC (and other tools), is a major goal. |
||
− | == |
+ | == Trouble shooting == |
+ | Report bugs on GitHub: |
||
− | * [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. |
||
+ | [https://github.com/haskell/haskell-platform/issues Haskell Platform Issues]. |
||
− | * [http://haskell.org/~duncan/ghc/%23ghc-2008-07-16.log More occured during the #ghc meeting] |
||
− | == Next Steps== |
||
+ | === Developers === |
||
− | The next step in the process: |
||
+ | * New [https://github.com/haskell/haskell-platform/wiki/ Haskell Platform Wiki] |
||
− | * Define admission progress: how does a package get into the HLP |
||
+ | * Old [http://trac.haskell.org/haskell-platform/ Trac wiki] |
||
− | * Sort out the release team |
||
− | * Define the installation expectations |
||
− | * Set up a bug tracker for the HLP project. |
||
− | * Create a repo. |
||
− | == |
+ | == Buttons == |
+ | We have some buttons to let your friends know about the Haskell Platform. |
||
− | * GHC would build against its own core libraries, but would be generally distributed with the HLP. |
||
+ | [http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png] |
||
− | * The HLP should provide good coverage for all typical tasks one might want to accomplish with the language, given library availability. |
||
+ | Use this html in your site: |
||
− | * No bottlenecks: release of the HLP should be entirely independent from GHC, and also independent of the development cycle of any individual library or tool. |
||
+ | <code> |
||
− | ===Quality Control=== |
||
+ | <nowiki> |
||
+ | <a href="http://haskell.org/platform"> |
||
+ | <img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png"></a> |
||
+ | </nowiki> |
||
+ | </code> |
||
+ | [http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png] |
||
− | * 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. |
||
+ | Use this html in your site: |
||
− | There is code in cabal-install to check the last two requirements. |
||
+ | <code> |
||
− | Other possible ideas for quality standards we might want to require: |
||
+ | <nowiki> |
||
+ | <a href="http://hackage.haskell.org/platform"> |
||
+ | <img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png"></a> |
||
+ | </nowiki> |
||
+ | </code> |
||
+ | SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg |
||
− | * exposed module names must follow the hierarchical module name convention, meaning they must be in an appropriate place in the module namespace. |
||
− | == Distribution format == |
||
+ | === Icons === |
||
− | The HP can be a meta package on hackage.haskell.org, that simply |
||
− | depends on the core set. |
||
+ | Icons for the platform installer and desktop. |
||
− | cabal install hp |
||
+ | [[Image:Platform-100.png]] |
||
− | should work, for example. |
||
+ | [[Image:Platform-64.png]] |
||
− | Beyond this, we'll need a why to provide single tarballs of the set, |
||
− | windows installers et al. Will GHC need cabal-install? |
||
− | == Current library set == |
||
− | === |
+ | === Legal === |
+ | * The cherry blossom image used in the 2011 HP release is [http://www.flickr.com/photos/28481088@N00/3291086383/ licensed CC by tanakawho] |
||
− | This will be on every system, as they're required for GHC to build: |
||
− | * array |
||
− | * base |
||
− | * bytestring |
||
− | * Cabal |
||
− | * containers |
||
− | * directory |
||
− | * editline |
||
− | * filepath |
||
− | * haskell98 |
||
− | * hpc |
||
− | * integer-gmp |
||
− | * old-locale |
||
− | * old-time |
||
− | * packedstring |
||
− | * pretty |
||
− | * process |
||
− | * random |
||
− | * template-haskell |
||
− | * unix OR Win32 |
||
+ | [[Category:HaskellPlatform]] |
||
− | ===Extra libraries=== |
||
− | |||
− | Current libraries available in the 'extralibs' bundle provided with GHC, |
||
− | a descendent of what used to by fptools, with a few additions. |
||
− | |||
− | * ALUT |
||
− | * GLUT |
||
− | * HUnit |
||
− | * ObjectIO |
||
− | * OpenAL |
||
− | * OpenGL |
||
− | * QuickCheck |
||
− | * cgi |
||
− | * fgl |
||
− | * haskell-src |
||
− | * html |
||
− | * mtl |
||
− | * network |
||
− | * parsec |
||
− | * parallel |
||
− | * regex-base |
||
− | * regex-compat |
||
− | * regex-posix |
||
− | * stm |
||
− | * time |
||
− | * xhtml |
||
− | |||
− | == HLP: Batteries Included== |
||
− | |||
− | [[/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 |
||
− | |||
− | ==Release mechanics== |
||
− | |||
− | ==Public "Haskell Platform Compliant" list== |
||
− | |||
− | To encourage adoption of the HLP, distributions that support the HLP |
||
− | will be publically listed as e.g. "Haskell Platform Compliant" |
||
− | |||
− | |||
− | ==History== |
||
− | |||
− | * fptools |
||
− | * extralibs/ core libs |
||
− | |||
− | == Related == |
||
− | |||
− | * [http://docs.python.org/lib/lib.html Python libraries] |
||
− | * [http://live.gnome.org/ReleasePlanning Gnome's release process] |
||
− | * [http://live.gnome.org/ReleasePlanning/ModuleProposing How to propose modules for GNOME] |
||
− | |||
− | [[Category:Community]] |
Latest revision as of 13:28, 21 January 2020
|
The Haskell Platform is a single, standard Haskell development environment for everyone. It offers a set of blessed libraries and tools, to save you the task of picking and choosing which core Haskell libraries to use.
Learn more about the Haskell Platform ⇒
What's in the platform
See the Haskell Platform documentation on haskell.org.
Trouble shooting
Report bugs on GitHub: Haskell Platform Issues.
Developers
- New Haskell Platform Wiki
- Old Trac wiki
Buttons
We have some buttons to let your friends know about the Haskell Platform.
Use this html in your site:
<a href="http://haskell.org/platform">
<img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png"></a>
Use this html in your site:
<a href="http://hackage.haskell.org/platform">
<img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png"></a>
SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg
Icons
Icons for the platform installer and desktop.
Legal
- The cherry blossom image used in the 2011 HP release is licensed CC by tanakawho