GHC: Difference between revisions
(→Development of GHC: Added link to GHC development flow) |
|||
(11 intermediate revisions by 6 users not shown) | |||
Line 5: | Line 5: | ||
== Documentation == | == Documentation == | ||
The documentation below relates to ''using'' GHC. For documentation about GHC's internals and building GHC, head over to the [ | 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. | ||
Line 14: | Line 14: | ||
; [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. | : 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 Standard Libraries]: Documentation for the 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. | : Download: | [http://www.haskell.org/ghc/docs/latest/libraries.html.tar.xz HTML.tar.xz] | ||
; [http://www.haskell.org/cabal/users-guide/ 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. | ||
Line 41: | Line 41: | ||
** [[/Memory Footprint|Memory footprint on the heap of common data-structures]] | ** [[/Memory Footprint|Memory footprint on the heap of common data-structures]] | ||
** [[Evaluation order and state tokens]] | ** [[Evaluation order and state tokens]] | ||
** [[Inlining and Specialisation]] | |||
* Platform related matters | * Platform related matters | ||
** [[GHC under WINE|Running GHC under Wine]] | ** [[GHC under WINE|Running GHC under Wine]] | ||
Line 50: | Line 50: | ||
* GHC extensions | * GHC extensions | ||
** [https://limperg.de/ghc-extensions/ A Guide to GHC's Extensions] | |||
** [[/Type system|Type system extensions in GHC]] | ** [[/Type system|Type system extensions in GHC]] | ||
** [[/As a library|Using GHC as a library]] | ** [[/As a library|Using GHC as a library]] | ||
Line 56: | Line 57: | ||
** [[Template Haskell]] is a (GHC) extension to Haskell that adds compile-time metaprogramming facilities. | ** [[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. | ** [[Quasiquotation]] allows the ability for user-definable parsers to provide new concrete syntax for any datatype. | ||
** [http://www.cse.unsw.edu.au/~dons/hs-plugins Dynamically loaded Haskell modules]: Don Stewart's <tt>hs-plugins</tt> library | ** [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]] | ** [[/Using the FFI|Using the Foreign Function Interface]] | ||
** [[/GUI programming|GUI programming in GHC]] | ** [[/GUI programming|GUI programming in GHC]] | ||
Line 67: | Line 68: | ||
== Development of GHC == | == Development of GHC == | ||
See the [http:// | 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]) | * [http://takenobu-hs.github.io/downloads/ghc_development_flow.pdf GHC development flow] ([https://github.com/takenobu-hs/ghc-development-flow GitHub]) | ||
Review of the recent updates to GHC by V.Zavialov. [https://serokell.io/blog/developing-ghc-for-a-living Developing GHC for a living]. | |||
[[Category:Implementations]] | [[Category:Implementations]] | ||
[[Category:GHC]] | [[Category:GHC]] |
Latest revision as of 14:08, 14 July 2020
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.
- Using GHC
- How to write a Haskell program
- GHC FAQ
- Error messages
- Guidelines for upgrading your GHC
- Using GHCi
- The GHCi debugger
- Using Cabal (including with DLLs)
- The Haskell Performance Resource, for advice on improving the performance of your code
- Mutually recursive modules
- Memory management and garbage collection
- Memory footprint on the heap of common data-structures
- Evaluation order and state tokens
- Inlining and Specialisation
- Platform related matters
- GHC extensions
- A Guide to GHC's Extensions
- Type system extensions in GHC
- Using GHC as a library
- Concurrent programming in GHC
- 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.
- Dynamically loaded Haskell modules: Don Stewart's hs-plugins library (Web Archive)
- Using the Foreign Function Interface
- GUI programming in GHC
- Using RULES in GHC
- 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).
Development of GHC
See the GHC Developer Wiki. The latest snapshot of the documentation for the next version can be found here.
Review of the recent updates to GHC by V.Zavialov. Developing GHC for a living.