Haskell · compilateur · chaîne d’outils
GHC, le Glasgow Haskell Compiler : un guide pratique 2026
GHC — le Glasgow Haskell Compiler — est le compilateur standard de Haskell, et de fait le moteur sous tout le reste de l’écosystème : Cabal, Stack et le Haskell Language Server le pilotent tous. Ce guide explique ce qu’est GHC, comment l’installer proprement en 2026, comment utiliser GHCi, les options de compilation qui comptent réellement, et comment il s’articule avec les outils de build.
Ce qu’est GHC
GHC compile le source Haskell en exécutables natifs optimisés et fournit GHCi, un REPL interactif pour explorer le code. C’est un compilateur mûr et fortement optimisant, doté d’un riche système de types, et il livre les bibliothèques (base et consorts) sur lesquelles vos programmes reposent. Presque tout le reste de l’outillage Haskell est, à un certain niveau, un wrapper qui invoque GHC avec les bons arguments.
Installer GHC (utilisez GHCup)
N’installez pas GHC à la main. Le chemin propre et pris en charge est GHCup, qui gère plusieurs versions de GHC et vous laisse basculer par projet — voyez notre guide d’installation de GHCup. En bref :
ghcup install ghc recommended
ghcup set ghc 9.10.1
ghc --version Pourquoi la gestion des versions compte : les vrais projets épinglent des versions GHC spécifiques, et GHCup rend indolore le fait d’en avoir plusieurs installées.
GHCi : le REPL interactif
ghci # start the REPL
:load Main.hs # load a module (:l)
:type foldr # show a type (:t)
:reload # reload after edits (:r)
:quit # exit (:q) GHCi est l’endroit où se fait réellement l’essentiel du développement Haskell — charger un module, tester des fonctions, inspecter des types, itérer.
Les options qui comptent
-O2— optimisation complète pour les builds de release (compilation plus lente, exécution plus rapide). Le défaut est-O0.-Wall— active le large jeu d’avertissements ; associez-le à-Werroren CI pour échouer sur les avertissements.-threaded— lie le runtime threadé, nécessaire pour la vraie concurrence/parallélisme.-j— compile les modules en parallèle (voir comment les builds Haskell exploitent vos cœurs).-rtsopts +RTS -N— laisse le programme utiliser plusieurs cœurs à l’exécution.
Compilez directement avec ghc -O2 Main.hs, mais pour tout ce qui dépasse un seul fichier, vous piloterez GHC via un outil de build.
Comment GHC s’articule avec Cabal et Stack
Vous appelez rarement ghc à la main sur un projet. Cabal et Stack résolvent les dépendances et invoquent GHC avec les bonnes options et la bonne base de paquets pour vous — voyez le contexte du modèle de build dans Cabal 2.0 et l’historique de l’isolation dans les sandboxes Cabal. Le Haskell Language Server exécute aussi GHC en coulisses pour fournir à votre éditeur les types et les diagnostics — voyez notre guide HLS.
FAQ
GHC est-il le seul compilateur Haskell ? C’est de loin le plus dominant et standard en 2026 ; d’autres compilateurs existent mais GHC est celui que visent quasiment tous l’outillage et les bibliothèques.
Comment installer GHC ? Via GHCup — il gère les versions et c’est l’installeur recommandé sur haskell.org.
Que fait -O2 ? Il active l’optimisation complète : compilation plus longue, exécution plus rapide. Utilisez-le pour les releases ; le défaut -O0 convient pour une itération rapide.
Faut-il appeler GHC directement ? Rarement — Cabal ou Stack l’invoquent pour vous sur les vrais projets. ghc en direct est pratique pour les scripts mono-fichier.