Haskell Platform: Difference between revisions

From HaskellWiki
m (Changed link to haskell platform documentation - original link returned 404)
 
(107 intermediate revisions by 21 users not shown)
Line 1: Line 1:
'''Haskell: Batteries Included'''
{{HP}}


The Haskell Platform (HP) is the name of a proposed library set
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.
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
[http://haskell.org/platform/contents.html Learn more about the Haskell Platform ⇒]
''Haskell Platform'' may be more appropriate.


There are now more than 500 libraries available for Haskell,  on
__TOC__
[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.


Some, such as Arch Linux, or Gentoo Linux, include as many libraries as
== What's in the platform ==
possible (typically over 400), while others have the bare minimum
required to build ghc and say, darcs and xmonad.


The Haskell community needs to provide direction and blessing to a
See the [https://www.haskell.org/downloads/#platform Haskell Platform documentation] on [https://www.haskell.org haskell.org].
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.


== Discussion ==
== Trouble shooting ==


* [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.
Report bugs on GitHub:
* [http://haskell.org/~duncan/ghc/%23ghc-2008-07-16.log More occured during the #ghc meeting]
[https://github.com/haskell/haskell-platform/issues Haskell Platform Issues].  


== Next Steps==


The next step in the process:
=== Developers ===


* Define admission progress: how does a package get into the HLP
* New [https://github.com/haskell/haskell-platform/wiki/ Haskell Platform Wiki]
* Sort out the release team
* Old [http://trac.haskell.org/haskell-platform/ Trac wiki]
* Define the installation expectations
* Set up a bug tracker for the HLP project.
* Create a repo.


==Criteria==
== Buttons ==


* GHC would build against its own core libraries, but would be generally distributed with the HLP.
We have some buttons to let your friends know about the Haskell Platform.


* The HLP should provide good coverage for all typical tasks one might want to accomplish with the language, given library availability.
[http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png]


* 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.
Use this html in your site:


* HP should be separately upgradable
<code>
<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>


===Quality Control===
[http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png]


* cabal-installable libraries with haddocks.
Use this html in your site:


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


* All packages in a particular HP version must have a consistent install plan.
SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg
  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:
=== Icons ===


* exposed module names must follow the hierarchical module name convention, meaning they must be in an appropriate place in the module namespace.
Icons for the platform installer and desktop.


=== Other heuristics ===
[[Image:Platform-100.png]]


Packages set for inclusion should:
[[Image:Platform-64.png]]


* Have a maintainer
* Have a bug tracker
* Use the correct versioning
* Build with cabal
* Work on all arches.


Further goals:
=== Legal ===


* -Wall clean
* The cherry blossom image used in the 2011 HP release is [http://www.flickr.com/photos/28481088@N00/3291086383/ licensed CC by tanakawho]
* 100% coverage
* Have real world use.


== Distribution format ==


The HP can be a meta package on hackage.haskell.org, that simply
[[Category:HaskellPlatform]]
depends on the core set.
 
    cabal install hp
 
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?
 
== Current library set ==
 
===Core system===
 
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
 
===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

http://www.haskell.org/wikiupload/7/7d/Platform.png
The Haskell Platform


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

Buttons

We have some buttons to let your friends know about the Haskell Platform.

http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png

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>

http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png

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