• This repository has been archived on 03/Feb/2022
  • Stars
    star
    381
  • Rank 112,502 (Top 3 %)
  • Language
    Haskell
  • License
    Other
  • Created over 12 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Distribution of Haskell with batteries included

**THIS PROJECT IS NOW DEPRECATED **

The Haskell Platform is deprecated and no longer the recommended way to install Haskell. The recommended way is to follow the instructions on the Haskell.org Downloads page.

Haskell Platform

OVERVIEW

"Haskell Platform" is a combination of the GHC compiler and core libraries, plus additional tools and libraries covering a range of common programming tasks. The platform is maintained and released so as to be a consistent, stable base. It aims to be a quick way to a working Haskell environment, and a solid foundation on which to base production software.

While end-users can build the platform themselves, it is generally recommended, if possible, to use the prebuilt binaries available from https://www.haskell.org/platform/

The platform distribution and tooling are more intended instead for those wishing to package a platform installer for use by others.

DISTRIBUTION

Again: If you want to install the haskell platform, this is NOT the right location. You can download prebuilt installers for most systems from

https://www.haskell.org/platform/

From there you can get the following:

installer - For Windows and OS X, the platform is distributed as a standard installer for the operating system. It contains a fully built version of the platform, accompanying documentation, and additional scripts and files needed to integrate well with the standard environment and development tools.

Running the installer is all you need to get a working Haskell environment.

OS distribution packages - For many Linux, BSD, and other similar Posix, the platform has been packaged into packages for the local package manager. These can be selected and installed, from the appropriate package repos, with the standard package manager tools.

generic bindist - For Linux, there is a generic bindist. This is compiled against standard versions of the common system libraries, and if your system has those, you can generally just unpack this tarball, and run a script to get it setup.

DISTRIBUTION OF TOOLKIT FOR BUILDING INSTALLERS

If you really want to get the toolkit to build your own platform installer, then you're in the right spot.

The platform installer toolkit comes in several forms:

source tarball - This is a specially packaged version of the repo that includes the sources of the packages that make up the platform, and excludes some of the ancillary things in the source repo. You can use this to build the platform without access to hackage or even an internet connection. You still need a GHC bindist, as well as cabal and stack binaries, either built from source or available from their respective websites.

This is also available from https://www.haskell.org/platform/

source repo - This is the source of the system that builds the platform. It includes the file that defines the versions of GHC and other packages that make up the platform. You can use this to build the platform from just a GHC bindist.

You can check out the official release from github: http://github.com/haskell/haskell-platform

The master branch is always stable, and releases are tagged like "2014.2.0.0". Development usually happens in other branches.

REQUIREMENTS FOR BUILDING

You need the platform build files, either from the source repo or the source tarball. Build instructions are the same for either.

You need a GHC bindist that matches the OS you are compiling on. It must also match the GHC version used by the platform, which you can find by looking in the Releases*.hs files.

You can get the bindists from

https://www.haskell.org/ghc/download

The machine doing the build needs to have a working Haskell setup: Usually, GHC (7.4 or later), Cabal (1.24 or later), and haddock and HsColour must be on the $PATH.

You also need a proper version of the cabal and stack binaries to be bundled.

You can build a cabal directly from hackage and get a stack from http://docs.haskellstack.org

BUILDING

The platform is now built by a program called hptool. That tool is a shake based build system that creates both the traditional haskell-platform source tarball, and can build a complete, hermetic build of the platform for use in building OS installer packages.

In either the source repo or unpacked source tarball, simply run this:

./platform.sh $PATH_TO_GHC_BINDIST_TARBALL $PATH_TO_CABAL_EXECUTABLE $PATH_TO_STACK_EXECUTABLE

This will build the hptool itself, and then use that tool to build first the platform source tarball, and finally the hermetic build of all the platform packages.

By default this now builds a "minimal" installer that does not install libraries beyond core. To build a "full" installer with a broader range of libraries pre-installed in the global store, pass a "-f" option.

If you are building for a Posix like system (Linux, or BSD), then you can add the command line option --prefix to specify where, on the target system the tree of built things will be placed. It defaults to "/usr/local/haskell". The build will include another directory under that named "ghc-x.y.z-arch" and everything will be installed under there.

Adding -j (no space between the j and the number of cores) to the build invocation will enable building on multiple cores at once.

INSTALLATION

After the build completes, it will print instructions for how to take the build product and install it on systems. The build products are in: build/product

For OS X and Windows, the built product is just a standard installer. Copy it to the target system and install it.

For Posix like systems, the built product is a tarball, which should be unpacked at / (it includes the prefix spec'd in the build). Then, on the target, you must run the activate-hs script in the installed bin dir, usually: /usr/local/haskell/ghc-x.y.z-arch/bin/activate-hs That script will do the final package registrations, and symlink all the command line tools (ghc, haddock, etc..) into /usr/local/bin. Run the script with -n or -? to find out more.

More Repositories

1

haskell-language-server

Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Haskell
2,709
star
2

haskell-ide-engine

The engine for haskell ide-integration. Not an IDE
Haskell
2,383
star
3

cabal

Official upstream development repository for Cabal and cabal-install
Haskell
1,623
star
4

haskell-mode

Emacs mode for Haskell
Emacs Lisp
1,329
star
5

aeson

A fast Haskell JSON library
Haskell
1,254
star
6

stylish-haskell

Haskell code prettifier
Haskell
986
star
7

parsec

A monadic parser combinator library
Haskell
844
star
8

ghcide

A library for building Haskell IDE tooling
Haskell
584
star
9

vscode-haskell

VS Code extension for Haskell, powered by haskell-language-server
TypeScript
561
star
10

attoparsec

A fast Haskell library for parsing ByteStrings
Haskell
514
star
11

criterion

A powerful but simple library for measuring the performance of Haskell code.
Haskell
501
star
12

hackage-server

Hackage-Server: A Haskell Package Repository
Haskell
415
star
13

text

Haskell library for space- and time-efficient operations over Unicode text.
Haskell
406
star
14

wreq

Haskell
379
star
15

lsp

Haskell library for the Microsoft Language Server Protocol
Haskell
366
star
16

mtl

The Monad Transformer Library
Haskell
366
star
17

vector

An efficient implementation of Int-indexed arrays (both mutable and immutable), with a powerful loop optimisation framework .
Haskell
363
star
18

haddock

Haskell Documentation Tool
HTML
361
star
19

network

Low-level networking interface
Haskell
326
star
20

containers

Assorted concrete container types
Haskell
315
star
21

statistics

A fast, high quality library for computing with statistics in Haskell.
Haskell
300
star
22

alex

A lexical analyser generator for Haskell
Haskell
298
star
23

bytestring

An efficient compact, immutable byte string type (both strict and lazy) suitable for binary or 8-bit character data.
Haskell
291
star
24

happy

The Happy parser generator for Haskell
Haskell
287
star
25

ghcup-hs

Haskell
284
star
26

ghcup

DEPRECATED IN FAVOR OF haskell/ghcup-hs
Shell
263
star
27

haskeline

A Haskell library for line input in command-line programs.
Haskell
222
star
28

c2hs

c2hs is a pre-processor for Haskell FFI bindings to C libraries
Haskell
198
star
29

fgl

A Functional Graph Library for Haskell
Haskell
184
star
30

hie-bios

Set up a GHC API session for various Haskell Projects
Haskell
180
star
31

HTTP

Haskell HTTP package
Haskell
177
star
32

ThreadScope

A graphical tool for profiling parallel Haskell programs
Haskell
153
star
33

actions

Github actions for Haskell CI
TypeScript
147
star
34

critbit

A Haskell implementation of crit-bit trees.
Haskell
138
star
35

play-haskell

Haskell Playground
Haskell
129
star
36

time

A time library
Haskell
119
star
37

primitive

This package provides various primitive memory-related operations.
Haskell
114
star
38

unix

POSIX functionality
Haskell
107
star
39

binary

Efficient, pure binary serialisation using ByteStrings in Haskell.
Haskell
106
star
40

rfcs

This repo is archived, consider using https://github.com/ghc-proposals/ghc-proposals instead
TeX
98
star
41

win32

Haskell support for the Win32 API
Haskell
98
star
42

stm

Software Transactional Memory
Haskell
97
star
43

core-libraries-committee

95
star
44

haskell-report

Haskell Language Report
TeX
91
star
45

parallel

a library for parallel programming
Haskell
91
star
46

process

Library for dealing with system processes
Haskell
87
star
47

hoopl

Higher-order optimization library
Haskell
73
star
48

error-messages

72
star
49

pretty

Haskell Pretty-printer library
Haskell
69
star
50

filepath

Haskell FilePath core library
Haskell
66
star
51

docker-haskell

Dockerfile
63
star
52

directory

Platform-independent library for basic file system operations
Haskell
58
star
53

hackage-security

Hackage security framework based on TUF (The Update Framework)
Haskell
56
star
54

mwc-random

A very fast Haskell library for generating high quality pseudo-random numbers.
Haskell
55
star
55

random

Random number library
Haskell
53
star
56

ecosystem-proposals

Proposals for the Haskell Ecosystem
51
star
57

text-icu

This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.
Haskell
47
star
58

base64-bytestring

Fast base64 encoding and decoding for Haskell.
Haskell
45
star
59

security-advisories

Haskell
44
star
60

deepseq

Deep evaluation of data structures
Haskell
41
star
61

tar

Reading, writing and manipulating ".tar" archive files.
Haskell
40
star
62

math-functions

Special mathematical functions
Haskell
40
star
63

hsc2hs

Pre-processor for .hsc files
Haskell
38
star
64

pvp

Haskell Package Version Policy (PVP)
CSS
38
star
65

zlib

Compression and decompression in the gzip and zlib formats
C
35
star
66

ghc-events

Library and tool for parsing .eventlog files from GHC
Haskell
33
star
67

text-format

A Haskell text formatting library optimized for ease of use and high performance.
Haskell
32
star
68

ghcup-metadata

GHCup metadata repository
Haskell
32
star
69

cabal-userguide

A handy user guide for the Cabal build tool
Nix
28
star
70

base16-bytestring

Fast base16 (hexadecimal) encoding and decoding for Haskell bytestrings.
Haskell
27
star
71

network-uri

URI manipulation facilities
Haskell
25
star
72

entropy

Easy entropy source for Haskell users.
Haskell
23
star
73

winghci

Simple Windows GUI for GHCi.
C
17
star
74

double-conversion

A fast Haskell library for converting between double precision floating point numbers and text strings. It is implemented as a binding to the V8-derived C++ double-conversion library.
C++
15
star
75

file-io

File IO (read/write/open) for OsPath API
Haskell
11
star
76

terminfo

Haskell bindings to the terminfo API.
Haskell
10
star
77

array

Haskell
10
star
78

xhtml

XHTML combinator library
Haskell
9
star
79

old-time

This package provides the old time library.
Haskell
7
star
80

meta

A place for discussing & documenting the github.com/haskell organization
7
star
81

blog.haskell.org

Repository of the Haskell Blog
JavaScript
7
star
82

ghc-builder

ghc builder bot
Haskell
6
star
83

cabal-website

The http://www.haskell.org/cabal/ website
HTML
4
star
84

network-bsd

POSIX network database (<netdb.h>) API
Haskell
4
star
85

haskell-wiki-configuration

Issue tracking for Haskell Wiki
PHP
4
star
86

clc-stackage

Meta-package to facilitate impact assessment for CLC proposals
Nix
3
star
87

hiw

Haskell Implementors Workshop
TeX
3
star
88

text-test-data

Test data for the Haskell text project
Text
3
star
89

old-locale

This package provides the ability to adapt to locale conventions such as date and time formats.
Haskell
3
star
90

tokenize

Simple tokenizer for English text
Haskell
3
star
91

bzlib

Compression and decompression in the bzip2 format
Haskell
2
star
92

os-string

Haskell
2
star
93

hpc

1
star