Difference between revisions of "Distributions"

From HaskellWiki
Jump to navigation Jump to search
(Created page with "The standard ways to install the Glasgow Haskell Compiler and related tools are given at the main [http://www.haskell.org/downloads Haskell webpage]. However, there are many o...")
 
(adding ghcup and stack)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
The standard ways to install the Glasgow Haskell Compiler and related tools are given at the main [http://www.haskell.org/downloads Haskell webpage]. However, there are many other ways to install GHC, suited for different purposes.
 
The standard ways to install the Glasgow Haskell Compiler and related tools are given at the main [http://www.haskell.org/downloads Haskell webpage]. However, there are many other ways to install GHC, suited for different purposes.
   
  +
== ghcup ==
== [http://haskellformac.com Haskell for Mac] ==
 
  +
[https://www.haskell.org/ghcup/ Ghcup] by Julian Ospald aka ''maerwald'' can download GHC, [[Haskell Language Server]] and [[cabal-install]], and it can auto-update.
  +
  +
== [[Stack]] ==
  +
Stack can download GHC, as well as build individual projects and their dependencies. One can make a shebang with stack, and use an hs file like a script, but still have dependencies. Stack works with [[Stackage]] which is a package set that works with a particular GHC version.
  +
 
== [http://haskellformac.com Haskell for Mac IDE] ==
   
 
Haskell for Mac is an easy-to-use integrated programming environment for Haskell on OS X. It is a one-click install of a complete Haskell system, including Haskell compiler, editor, many libraries, and a novel form of interactive <em>Haskell playgrounds</em>. Haskell playgrounds support exploration and experimentation with code. They are convenient to learn functional programming, prototype Haskell code, interactively visualize data, and to create interactive animations.
 
Haskell for Mac is an easy-to-use integrated programming environment for Haskell on OS X. It is a one-click install of a complete Haskell system, including Haskell compiler, editor, many libraries, and a novel form of interactive <em>Haskell playgrounds</em>. Haskell playgrounds support exploration and experimentation with code. They are convenient to learn functional programming, prototype Haskell code, interactively visualize data, and to create interactive animations.
   
 
Features include the following:
 
Features include the following:
  +
* Avoid dealing with complicated installation instructions.
* Built-in Haskell editor with customisable themes, or you can use a separate text editor.
+
* Built-in Haskell editor with customisable themes and context-sensitive identifier completion.
* Autosaving and automatic project versioning.
 
* Interactive Haskell playgrounds evaluate your code as you type.
+
* Interactive Haskell playgrounds provide immediate and continuous feedback.
  +
* You can immediately see what you program is doing while you develop it.
 
* Playground results can be text or images produced by the Rasterific, Diagrams, and Chart packages.
 
* Playground results can be text or images produced by the Rasterific, Diagrams, and Chart packages.
 
* Add code and multimedia files to a Haskell project with drag'n'drop.
 
* Add code and multimedia files to a Haskell project with drag'n'drop.
Line 14: Line 21:
   
 
Haskell for Mac requires OS X Yosemite or above.
 
Haskell for Mac requires OS X Yosemite or above.
 
== [http://www.kronosnotebook.com/haskell Kronos Haskell Notebook for Mac] ==
 
 
Based on IPython Notebook and IHaskell, Kronos provides
 
* immediate installation of Haskell and related tools
 
* a beautiful notebook environment for editing and documenting code
 
* an easy interface for external package installation
 
* easy file management and exporting to multiple formats
 
   
 
== [http://nixos.org/nix Nix Package Manager] ==
 
== [http://nixos.org/nix Nix Package Manager] ==
Line 30: Line 29:
   
 
The users' guide to Haskell infrastructure is the most important reference:
 
The users' guide to Haskell infrastructure is the most important reference:
http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure
+
https://haskell4nix.readthedocs.io/nixpkgs-users-guide.html
   
 
Also helpful are blog posts of and articles of various users describing their environments:
 
Also helpful are blog posts of and articles of various users describing their environments:
   
* http://www.cse.chalmers.se/~bernardy/nix.html
+
* https://jyp.github.io/posts/nix.html
 
* https://ocharles.org.uk/blog/posts/2014-02-04-how-i-develop-with-nixos.html
 
* https://ocharles.org.uk/blog/posts/2014-02-04-how-i-develop-with-nixos.html
 
* http://www.pavelkogan.com/2014/07/09/haskell-development-with-nix/
 
* http://www.pavelkogan.com/2014/07/09/haskell-development-with-nix/
Line 40: Line 39:
 
Nix support for Haskell is very much under active development, and many users have begun to adopt the new haskell-ng workflow: http://stackoverflow.com/questions/29033580/how-do-i-use-the-new-haskell-ng-infrastructure-on-nixos
 
Nix support for Haskell is very much under active development, and many users have begun to adopt the new haskell-ng workflow: http://stackoverflow.com/questions/29033580/how-do-i-use-the-new-haskell-ng-infrastructure-on-nixos
   
== [https://halcyon.sh/ Halcyon] ==
+
== [https://thoughtbot.com/blog/building-haskell-projects-with-halcyon Halcyon] ==
  +
 
Halcyon is a system for installing Haskell apps and development tools, including GHC and Cabal. It is a simple system which also archives and caches all build products, and can automatically restore archived build products, saving time during development, continuous integration, and deployment. It allows sandbox sources, build tools, and native OS packages to be declared as dependencies and installed together with the app. It can be used to construct deployment systems, such as [https://mmhaskell.com/blog/2018/4/16/for-all-the-world-to-see-deploying-haskell-with-heroku Deploying Haskell with Heroku].
  +
 
== [https://cocalc.com/ CoCalc] ==
  +
  +
CoCalc is a platform for collaborative computational mathematics. It provides both free and paid accounts. Among the many tools it provides (including SageMath, R, Jupyter, Numpy/Scipy/Matplotlib, Octave, Cython, GAP, Pari, Macaulay2, and Singular) is GHC. It allows the editing of Haskell files and the creation of Haskell projects, and interaction with GHC through an embedded terminal in the command line.
  +
  +
With CoCalc, developers have access to a shared cloud environment for Haskell, usable from any computer with an internet connection, and requiring no installation.
  +
  +
== Other Online Evaluators ==
   
  +
There are other tools available that allow the compilation and execution of small amounts of Haskell code for testing, illustration and education purposes. These include:
Halcyon is a system for installing Haskell apps and development tools, including GHC and Cabal. It is a simple system which also archives and caches all build products, and can automatically restore archived build products, saving time during development, continuous integration, and deployment. It allows sandbox sources, build tools, and native OS packages to be declared as dependencies and installed together with the app. It can be used to construct deployment systems, such as [https://haskellonheroku.com/ Haskell on Heroku].
 
   
  +
* http://codepad.org/
== [https://cloud.sagemath.com/ Sage Math Cloud] ==
 

Latest revision as of 19:54, 9 December 2020

The standard ways to install the Glasgow Haskell Compiler and related tools are given at the main Haskell webpage. However, there are many other ways to install GHC, suited for different purposes.

ghcup

Ghcup by Julian Ospald aka maerwald can download GHC, Haskell Language Server and cabal-install, and it can auto-update.

Stack

Stack can download GHC, as well as build individual projects and their dependencies. One can make a shebang with stack, and use an hs file like a script, but still have dependencies. Stack works with Stackage which is a package set that works with a particular GHC version.

Haskell for Mac IDE

Haskell for Mac is an easy-to-use integrated programming environment for Haskell on OS X. It is a one-click install of a complete Haskell system, including Haskell compiler, editor, many libraries, and a novel form of interactive Haskell playgrounds. Haskell playgrounds support exploration and experimentation with code. They are convenient to learn functional programming, prototype Haskell code, interactively visualize data, and to create interactive animations.

Features include the following:

  • Avoid dealing with complicated installation instructions.
  • Built-in Haskell editor with customisable themes and context-sensitive identifier completion.
  • Interactive Haskell playgrounds provide immediate and continuous feedback.
  • You can immediately see what you program is doing while you develop it.
  • Playground results can be text or images produced by the Rasterific, Diagrams, and Chart packages.
  • Add code and multimedia files to a Haskell project with drag'n'drop.
  • Haskell binding to Apple's 2D animation and games framework SpriteKit.

Haskell for Mac requires OS X Yosemite or above.

Nix Package Manager

The Nix package manager (part of NixOS but usable independently) can install GHC, related tools, and Haskell packages across Linux and other Unix systems (including OS X).

The key advantages of adopting Nix as a Haskell distribution are isolation and reproducibility, with environments fully specified. This can simplify dependency management by reducing hidden state.

The users' guide to Haskell infrastructure is the most important reference: https://haskell4nix.readthedocs.io/nixpkgs-users-guide.html

Also helpful are blog posts of and articles of various users describing their environments:

Nix support for Haskell is very much under active development, and many users have begun to adopt the new haskell-ng workflow: http://stackoverflow.com/questions/29033580/how-do-i-use-the-new-haskell-ng-infrastructure-on-nixos

Halcyon

Halcyon is a system for installing Haskell apps and development tools, including GHC and Cabal. It is a simple system which also archives and caches all build products, and can automatically restore archived build products, saving time during development, continuous integration, and deployment. It allows sandbox sources, build tools, and native OS packages to be declared as dependencies and installed together with the app. It can be used to construct deployment systems, such as Deploying Haskell with Heroku.

CoCalc

CoCalc is a platform for collaborative computational mathematics. It provides both free and paid accounts. Among the many tools it provides (including SageMath, R, Jupyter, Numpy/Scipy/Matplotlib, Octave, Cython, GAP, Pari, Macaulay2, and Singular) is GHC. It allows the editing of Haskell files and the creation of Haskell projects, and interaction with GHC through an embedded terminal in the command line.

With CoCalc, developers have access to a shared cloud environment for Haskell, usable from any computer with an internet connection, and requiring no installation.

Other Online Evaluators

There are other tools available that allow the compilation and execution of small amounts of Haskell code for testing, illustration and education purposes. These include: