Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
443 lines (441 sloc) 12.1 KB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>The Haskell Platform</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<meta name="date" content="" />
<link rel="stylesheet" href="style-info.css" type="text/css" />
</head>
<body>
<h1 class="title">The Haskell Platform</h1>
<div id="haskell:-batteries-included"
><h2
>Haskell: Batteries Included</h2
><p
><a href="index.html"
>The Haskell Platform</a
> is a comprehensive, robust development environment for programming in <a href="http://haskell.org"
>Haskell</a
>. For new users the platform makes it trivial to get up and running with a full Haskell development environment. For experienced developers, the platform provides a comprehensive, standard base for commercial and open source Haskell development that maximises interoperability and stability of your code.</p
><p
><strong
>Download <a href="index.html"
>The Haskell Platform</a
> for your system now!</strong
></p
><p
>To learn more about programming in Haskell:</p
><ul
><li
>Visit <a href="http://haskell.org"
>haskell.org</a
> - the center of the Haskell community, a comprehensive resource.</li
><li
>Follow <a href="http://learnyouahaskell.com"
>Learn You a Haskell</a
> - an online Haskell tutorial with a sense of humor.</li
><li
>Or jump straight to <a href="http://book.realworldhaskell.org"
>Real World Haskell</a
>, O'Reilly's book on professional Haskell programming.</li
><li
>You can even <a href="http://tryhaskell.org"
>Try Haskell</a
> in your browser.</li
></ul
><p
>The following components are provided in the latest revision of The Platform (see the <a href="changelog.html"
>Changelog</a
>):</p
></div
><div id="compiler-and-runtime"
><h2
>Compiler and Runtime</h2
><p
><strong
><a href="http://haskell.org/ghc"
>GHC</a
> 6.12.3</strong
></p
><p
>The state-of-the-art optimzing native code compiler for Haskell.</p
><p
><strong
><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci.html"
>GHCi</a
> 6.12.3</strong
></p
><p
>A bytecode interpreter and interactive REPL environment for Haskell</p
><p
><strong
>The GHC runtime</strong
></p
><p
>A multicore language runtime (virtual machine), providing fast lightweight threads, parallel sparks and futures, software transactional memory, core affinity control, a parallel garbage collector, and much more.</p
></div
><div id="developer-tools"
><h2
>Developer Tools</h2
><p
>The Platform also comes with the most useful developer tools out of the box, including:</p
><p
><strong
><a href="http://hackage.haskell.org/package/Cabal"
>Cabal</a
></strong
></p
><p
>Cabal and cabal-install are tools for building and distributing Haskell libraries and programs. With cabal-install you have immediate access to thousands of Haskell libraries and tools on <a href="http://hackage.haskell.org"
>Hackage</a
> -- you'll be sure to find something interesting.</p
><p
><strong
><a href="http://haskell.org/haddock"
>Haddock</a
></strong
></p
><p
>Haddock is a high quality documentation tool for Haskell. Comments and types in your code are used to generate indexed and cross-referenced online documentation.</p
><p
><strong
><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-debugger.html"
>The GHCi debugger</a
></strong
></p
><p
>The Platform ships with the GHCi debugger - an interactive, imperative-style debugger for Haskell. Type &quot;:help&quot; in GHCi for more information.</p
><p
><strong
>The <a href="http://haskell.org/happy"
>Happy</a
> parser generator</strong
></p
><p
>Happy is a yacc-like parser generator for Haskell for constructing efficient parsers.</p
><p
><strong
>The <a href="http://haskell.org/alex"
>Alex</a
> lexer generator</strong
></p
><p
>Alex is a lex-like lexer generator for Haskell</p
><p
><strong
>The hsc2hs foreign language binding tool</strong
></p
><p
>Often you need to call C libraries from Haskell. hsc2hs is a preprocessor for binding Haskell to C, that automates much of the work.</p
><p
><strong
>The GHC Profiler</strong
></p
><p
>The Platform comes with several tools for analyzing your Haskell programs performance and behaviour. Included are time and space profiling tools, and tools for graphically visualizing the memory use and structure of running Haskell programs.</p
><p
><strong
>Haskell Code Coverage</strong
></p
><p
>The Platform provides HPC - a professional-grade tool generating code coverage information and statistics for Haskell. Code coverage information can tell you how good your testsuite is, or what part of your code is executing at any given time.</p
></div
><div id="packages-and-documentation"
><h2
>Packages and Documentation</h2
><p
>The following libraries are provided by default:</p
><ul
><li
><a href="http://hackage.haskell.org/package/base"
>base</a
>, <a href="http://hackage.haskell.org/package/array"
>array</a
>, <a href="http://hackage.haskell.org/package/bytestring"
>bytestring</a
>, <a href="http://hackage.haskell.org/package/Cabal"
>Cabal</a
>, <a href="http://hackage.haskell.org/package/containers"
>containers</a
>, <a href="http://hackage.haskell.org/package/directory"
>directory</a
>, <a href="http://hackage.haskell.org/package/filepath"
>filepath</a
>, <a href="http://hackage.haskell.org/package/haskell98"
>haskell98</a
>, <a href="http://hackage.haskell.org/package/hpc"
>hpc</a
>, <a href="http://hackage.haskell.org/package/old-locale"
>old-locale</a
>, <a href="http://hackage.haskell.org/package/time"
>time</a
>, <a href="http://hackage.haskell.org/package/old-time"
>old-time</a
>, <a href="http://hackage.haskell.org/package/pretty"
>pretty</a
>, <a href="http://hackage.haskell.org/package/process"
>process</a
>, <a href="http://hackage.haskell.org/package/random"
>random</a
>, <a href="http://hackage.haskell.org/package/syb"
>syb</a
>, <a href="http://hackage.haskell.org/package/template-haskell"
>template-haskell</a
>, <a href="http://hackage.haskell.org/package/unix"
>unix</a
>, <a href="http://hackage.haskell.org/package/Win32"
>Win32</a
>, <a href="http://hackage.haskell.org/package/cgi"
>cgi</a
>, <a href="http://hackage.haskell.org/package/fgl"
>fgl</a
>, <a href="http://hackage.haskell.org/package/GLUT"
>GLUT</a
>, <a href="http://hackage.haskell.org/package/haskell-src"
>haskell-src</a
>, <a href="http://hackage.haskell.org/package/html"
>html</a
>, <a href="http://hackage.haskell.org/package/HUnit"
>HUnit</a
>, <a href="http://hackage.haskell.org/package/mtl"
>mtl</a
>, <a href="http://hackage.haskell.org/package/network"
>network</a
>, <a href="http://hackage.haskell.org/package/OpenGL"
>OpenGL</a
>, <a href="http://hackage.haskell.org/package/parallel"
>parallel</a
>, <a href="http://hackage.haskell.org/package/parsec"
>parsec</a
>, <a href="http://hackage.haskell.org/package/QuickCheck"
>QuickCheck</a
>, <a href="http://hackage.haskell.org/package/regex-base"
>regex-base</a
>, <a href="http://hackage.haskell.org/package/regex-compat"
>regex-compat</a
>, <a href="http://hackage.haskell.org/package/regex-posix"
>regex-posix</a
>, <a href="http://hackage.haskell.org/package/stm"
>stm</a
>, <a href="http://hackage.haskell.org/package/xhtml"
>xhtml</a
>, <a href="http://hackage.haskell.org/package/zlib"
>zlib</a
>, <a href="http://hackage.haskell.org/package/HTTP"
>HTTP</a
>, <a href="http://hackage.haskell.org/package/deepseq"
>deepseq</a
>, <a href="http://hackage.haskell.org/package/extensible-exceptions"
>extensible-exceptions</a
></li
></ul
></div
><div id="functionality"
><h2
>Functionality</h2
><p
>The Haskell Platform comes with the &quot;batteries&quot; installed, with the following rich set of features for programmers to use:</p
><ul
><li
><p
>The Haskell Prelude</p
></li
><li
>Control Structures<ul
><li
>applicatives, arrows, functors, monoids</li
><li
>synchronous and asynchronous (extensible) exceptions</li
><li
>monads: the mtl monad suite</li
><li
>foldables, traversables</li
></ul
></li
><li
>Concurrency and Parallelism<ul
><li
>lightweight threads</li
><li
>thread sparks / futures</li
><li
>software transactional memory</li
><li
>MVars: thread synchronization variables</li
><li
>channels, semaphors, sample vars</li
></ul
></li
><li
>Data Structures<ul
><li
>primitive and standard data types</li
><li
>strings</li
><li
>sequence types</li
><li
>pure, impure arrays, boxed/unboxed, foreign, storable, ST, diff arrays</li
><li
>strict and lazy bytestrings</li
><li
>regular, and inductive graphs</li
><li
>finite maps</li
><li
>patricia tries</li
><li
>sets</li
><li
>fingertrees (as Data.Sequence)</li
><li
>mutable references</li
><li
>mutable hashtables</li
><li
>dynamic types</li
><li
>weak and stable references</li
></ul
></li
><li
>Debugging and Testing<ul
><li
>tracing and debugging</li
><li
>HUnit unit testing</li
><li
>QuickCheck test generation</li
><li
>HPC code coverage framework</li
><li
>Heap profiling</li
><li
>Retainer profiling</li
></ul
></li
><li
>Distribution<ul
><li
>The Cabal distribution framework</li
></ul
></li
><li
>Generics<ul
><li
>Template Haskell</li
><li
>Scrap-Your-Boilerplate generics</li
></ul
></li
><li
>Graphics<ul
><li
>GLUT</li
><li
>OpenGL</li
></ul
></li
><li
>Languages<ul
><li
>The C FFI specification</li
><li
>C errno handling</li
><li
>C types</li
><li
>Haskell98 compatibility layer</li
><li
>Haskell language parsing and pretty printing</li
></ul
></li
><li
>Network<ul
><li
>Sockets, Handles</li
><li
>HTTP protocol client</li
><li
>CGI Common Gateway Interface support.</li
><li
>URI construction</li
></ul
></li
><li
>Math<ul
><li
>arbitrary precision integers and ratios</li
><li
>fixed precision numbers</li
><li
>complex numbers</li
><li
>random number generators</li
></ul
></li
><li
>Text<ul
><li
>Unicode characters</li
><li
>readp parsing combinators</li
><li
>parsec parsing combinators</li
><li
>Hughes/SPJ pretty printing combinators</li
><li
>posix regular expressions</li
></ul
></li
><li
>System<ul
><li
>file and handle abstractions</li
><li
>System IO</li
><li
>garbage collector services</li
><li
>portable process and pipe support</li
><li
>directory handling</li
><li
>OS portable filepath manipulation</li
><li
>environment handling</li
><li
>cpu time, system info, posix, timeouts</li
><li
>Unix Posix support or Win32 support</li
><li
>portable dates and calender times</li
><li
>read/show data serialisation</li
><li
>zlib compression</li
><li
>locale support</li
></ul
></li
><li
>Web<ul
><li
>simple html and xhtml generation</li
></ul
></li
></ul
></div
>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : " http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-15375175-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.