Difference between revisions of "GHC"

From HaskellWiki
Jump to navigation Jump to search
m (→‎Development of GHC: link http://hackage.haskell.org/trac/ghc => http://gitlab.haskell.org/ghc/ghc/wikis/home)
(46 intermediate revisions by 23 users not shown)
Line 1: Line 1:
The '''Glasgow Haskell Compiler''' is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell.
+
The '''Glasgow Haskell Compiler''' is a state-of-the-art, open source compiler and interactive environment for the functional language Haskell.
   
 
* [http://www.haskell.org/ghc/ The GHC Home Page]
 
* [http://www.haskell.org/ghc/ The GHC Home Page]
Line 5: Line 5:
 
== Documentation ==
 
== Documentation ==
   
The documentation below relates to ''using'' GHC. For documentation about the internals of GHC, head over to the [http://hackage.haskell.org/trac/ghc GHC Developer Wiki].
+
The documentation below relates to ''using'' GHC. For documentation about GHC's internals and building GHC, head over to the [https://gitlab.haskell.org/ghc/ghc/wikis/index GHC Developer Wiki].
   
 
These documents relate to the ''latest released'' version of GHC.
 
These documents relate to the ''latest released'' version of GHC.
 
For ''earlier released'' versions click the relevant version on the
 
For ''earlier released'' versions click the relevant version on the
[http://www.haskell.org/ghc/download.html downloads page].
+
[http://www.haskell.org/ghc/download downloads page].
For the the ''current HEAD snapshot'' look at
+
For release candidates, look at
[http://www.haskell.org/ghc/download.html#snapshots the bottom of the downloads page].
+
[http://downloads.haskell.org/~ghc/ the GHC download directory].
 
   
 
; [http://www.haskell.org/ghc/docs/latest/html/users_guide/index.html The User's Guide]: The User's Guide has all you need to know about using GHC: command line options, language extensions, GHCi, etc.
 
; [http://www.haskell.org/ghc/docs/latest/html/users_guide/index.html The User's Guide]: The User's Guide has all you need to know about using GHC: command line options, language extensions, GHCi, etc.
: Download: | [http://www.haskell.org/ghc/docs/latest/users_guide.html.tar.gz HTML.tar.gz] | [http://www.haskell.org/ghc/docs/latest/users_guide.pdf PDF] | [http://www.haskell.org/ghc/docs/latest/users_guide.ps.gz A4 Postscript (gzipped)] |
+
: Download: | [http://www.haskell.org/ghc/docs/latest/users_guide.html.tar.xz HTML.tar.xz] | [http://www.haskell.org/ghc/docs/latest/users_guide.pdf PDF] |
 
 
; [http://www.haskell.org/ghc/docs/latest/html/libraries/index.html Hierarchical Libraries]: Documentation for the hierarchical libraries that come with GHC.
+
; [http://www.haskell.org/ghc/docs/latest/html/libraries/index.html Standard Libraries]: Documentation for the libraries that come with GHC.
: Download: | [http://www.haskell.org/ghc/docs/latest/libraries.html.tar.gz HTML.tar.gz] |
+
: Download: | [http://www.haskell.org/ghc/docs/latest/libraries.html.tar.xz HTML.tar.xz]
 
 
; [http://www.haskell.org/ghc/docs/latest/html/Cabal/index.html Cabal]: An infrastructure for building and distributing Haskell software.
+
; [http://www.haskell.org/cabal/users-guide/ Cabal]: An infrastructure for building and distributing Haskell software.
: Download: | [http://www.haskell.org/ghc/docs/latest/Cabal.html.tar.gz HTML.tar.gz] | [http://www.haskell.org/ghc/docs/latest/Cabal.pdf PDF] | [http://www.haskell.org/ghc/docs/latest/Cabal.ps.gz A4 Postscript (gzipped)] |
 
 
; [http://www.haskell.org/ghc/docs/latest/html/hslibs/index.html (Old) Haskell Libraries]: Previous versions of GHC (before version 5.04) came with a suite of libraries known as <tt>hslibs</tt>, aka the Hugs-GHC libraries. As we are in the process of moving towards using hierarchical libraries for everything, many of these libraries have moved over to the new packages in the hierarchical libraries above. We still provide the old <tt>hslibs</tt> libraries for backwards compatibility and also for those libraries which have yet to move into the hierarchy. For libraries which have moved, the documentation contains a pointer to the location in the new libraries. <em>NOTE: These libraries are scheduled for removal in GHC 6.6.</em> See also: [http://www.haskell.org/ghc/docs/edison/index.html Edison] (part of hslibs/data).
 
: Download: | [http://www.haskell.org/ghc/docs/latest/hslibs.html.tar.gz HTML.tar.gz] | [http://www.haskell.org/ghc/docs/latest/hslibs.pdf PDF] | [http://www.haskell.org/ghc/docs/latest/hslibs.ps.gz A4 Postscript (gzipped)] |
 
 
; [http://www.haskell.org/ghc/docs/latest/html/building/index.html GHC Building Guide]: Information on how to build GHC from sources, access the CVS repository, and port GHC to a new platform.
 
: Download: | [http://www.haskell.org/ghc/docs/latest/building.html.tar.gz HTML.tar.gz] | [http://www.haskell.org/ghc/docs/latest/building.pdf PDF] | [http://www.haskell.org/ghc/docs/latest/building.ps.gz A4 Postscript (gzipped)] |
 
   
 
== Collaborative documentation ==
 
== Collaborative documentation ==
Line 36: Line 28:
 
Please help by adding new sections, and by clarifying and improving existing ones.
 
Please help by adding new sections, and by clarifying and improving existing ones.
   
  +
* Using GHC
* [[/FAQ|GHC FAQ]]
 
  +
** [[How_to_write_a_Haskell_program|How to write a Haskell program]]
* [[/GHCi|Using GHCi]]
 
* [[/GHCiDebugger| The GHCi debugger]]
+
** [[/FAQ|GHC FAQ]]
  +
** [[/Error messages|Error messages]]
* [[Cabal|Using Cabal]] (including with DLLs)
 
* [[/TypeSystem|Type system extensions in GHC]]
+
** [[Upgrading_packages|Guidelines for upgrading your GHC]]
 
** [[/GHCi|Using GHCi]]
* The [[Performance|Haskell Performance Resource]], for advice on improving the performance of your code
 
* [[/As a library|Using GHC as a library]]
+
** [[/GHCi debugger| The GHCi debugger]]
 
** [[Cabal|Using Cabal]] (including with DLLs)
* [[/Concurrency|Concurrent programming in GHC]]
 
 
** The [[Performance|Haskell Performance Resource]], for advice on improving the performance of your code
* [[Template_Haskell|Template Haskell]] is a (GHC) extension to Haskell that adds compile-time metaprogramming facilities.
 
  +
** [[Mutually recursive modules]]
* [http://www.cse.unsw.edu.au/~dons/hs-plugins Dynamically loaded Haskell modules]: Don Stewart's <tt>hs-plugins</tt> library
 
  +
** [[/Memory_Management| Memory management and garbage collection]]
* [[/Using the FFI|Using the Foreign Function Interface]]
 
  +
** [[/Memory Footprint|Memory footprint on the heap of common data-structures]]
* [[/GUI_Programming|GUI programming in GHC]]
 
* [[/Using Rules|Using RULES in GHC]]
+
** [[Evaluation order and state tokens]]
  +
** [[Inlining and Specialisation]]
  +
* Platform related matters
 
** [[GHC under WINE|Running GHC under Wine]]
  +
** [[Mac OS X]]
  +
** [[Windows]]
  +
*** [http://haskell.forkio.com/dotnet Using GHC with .NET]
  +
*** [http://haskell.forkio.com/gmpwindows Dynamically linking GMP on Windows]
  +
  +
* GHC extensions
  +
** [[/Type system|Type system extensions in GHC]]
  +
** [[/As a library|Using GHC as a library]]
 
** [[/Concurrency|Concurrent programming in GHC]]
  +
** [https://ocharles.org.uk/blog/pages/2014-12-01-24-days-of-ghc-extensions.html 24 Days of GHC Extensions], a series of blog articles.
 
** [[Template Haskell]] is a (GHC) extension to Haskell that adds compile-time metaprogramming facilities.
  +
** [[Quasiquotation]] allows the ability for user-definable parsers to provide new concrete syntax for any datatype.
 
** [https://web.archive.org/web/20110429002539/http://www.cse.unsw.edu.au:80/~dons/hs-plugins/ Dynamically loaded Haskell modules]: Don Stewart's <tt>hs-plugins</tt> library (Web Archive)
 
** [[/Using the FFI|Using the Foreign Function Interface]]
 
** [[/GUI programming|GUI programming in GHC]]
  +
** [[/Using rules|Using RULES in GHC]]
 
** [[GHC/Data Parallel Haskell|Data Parallel Haskell: using nested data parallelism in GHC]]
  +
** [[Roles]] are GHC's way of discerning the difference between compile-time type equality (created by type synonyms and type families) and runtime type equality (created by newtypes).
  +
 
* [[Correctness of short cut fusion]]
 
* [[Correctness of short cut fusion]]
* [[GHC under WINE|Running GHC under Wine]]
 
* [[Data Parallel Haskell|Data Parallel Haskell: using nested data parallelism in GHC]]
 
   
 
== Development of GHC ==
 
== Development of GHC ==
   
See the [http://hackage.haskell.org/trac/ghc GHC Developer Wiki]. The latest snapshot of the documentation for the next version can be found [http://haskell.org/ghc/dist/current/docs/ here].
+
See the [http://gitlab.haskell.org/ghc/ghc/wikis/home GHC Developer Wiki]. The latest snapshot of the documentation for the next version can be found [http://haskell.org/ghc/dist/current/docs/ here].
  +
  +
* [http://takenobu-hs.github.io/downloads/ghc_development_flow.pdf GHC development flow] ([https://github.com/takenobu-hs/ghc-development-flow GitHub])
   
 
[[Category:Implementations]]
 
[[Category:Implementations]]
  +
[[Category:GHC]]

Revision as of 21:07, 14 June 2019

The Glasgow Haskell Compiler is a state-of-the-art, open source compiler and interactive environment for the functional language Haskell.

Documentation

The documentation below relates to using GHC. For documentation about GHC's internals and building GHC, head over to the GHC Developer Wiki.

These documents relate to the latest released version of GHC. For earlier released versions click the relevant version on the downloads page. For release candidates, look at the GHC download directory.

The User's Guide
The User's Guide has all you need to know about using GHC: command line options, language extensions, GHCi, etc.
Download: | HTML.tar.xz | PDF |
Standard Libraries
Documentation for the libraries that come with GHC.
Download: | HTML.tar.xz
Cabal
An infrastructure for building and distributing Haskell software.

Collaborative documentation

GHC is a big system. We try to document the core functionality (above), but you can help by writing documentation yourself. This section collects documentation written in a collaborative way, by users and developers together. Please help by adding new sections, and by clarifying and improving existing ones.

Development of GHC

See the GHC Developer Wiki. The latest snapshot of the documentation for the next version can be found here.