Haskell · Compiler · Toolchain
GHC, der Glasgow Haskell Compiler: ein praktischer Leitfaden für 2026
GHC — der Glasgow Haskell Compiler — ist der Standard-Compiler von Haskell und faktisch der Motor unter allem Übrigen des Ökosystems: Cabal, Stack und der Haskell Language Server steuern ihn alle. Dieser Leitfaden erklärt, was GHC ist, wie man ihn 2026 sauber installiert, wie man GHCi nutzt, welche Kompilieroptionen wirklich zählen und wie er mit den Build-Werkzeugen zusammenspielt.
Was GHC ist
GHC kompiliert Haskell-Quellcode in optimierte native Ausführbare und stellt GHCi bereit, ein interaktives REPL zum Erkunden von Code. Er ist ein reifer, stark optimierender Compiler mit einem reichen Typsystem und liefert die Bibliotheken (base und Co.), auf denen Ihre Programme beruhen. Fast alles andere im Haskell-Werkzeugbau ist auf irgendeiner Ebene ein Wrapper, der GHC mit den richtigen Argumenten aufruft.
GHC installieren (nutzen Sie GHCup)
Installieren Sie GHC nicht von Hand. Der saubere, unterstützte Weg ist GHCup, das mehrere GHC-Versionen verwaltet und Ihnen erlaubt, pro Projekt zu wechseln — siehe unseren GHCup-Installationsleitfaden. Kurz gefasst:
ghcup install ghc recommended
ghcup set ghc 9.10.1
ghc --version Warum die Versionsverwaltung wichtig ist: Echte Projekte pinnen bestimmte GHC-Versionen, und GHCup macht das Vorhalten mehrerer Installationen schmerzlos.
GHCi: das interaktive REPL
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 ist der Ort, an dem der Großteil der Haskell-Entwicklung tatsächlich stattfindet — ein Modul laden, Funktionen testen, Typen inspizieren, iterieren.
Die Optionen, die zählen
-O2— volle Optimierung für Release-Builds (langsamere Kompilierung, schnellere Ausführung). Der Standard ist-O0.-Wall— aktiviert den breiten Satz an Warnungen; kombinieren Sie ihn mit-Werrorin der CI, um bei Warnungen scheitern zu lassen.-threaded— bindet das Threaded-Runtime, nötig für echte Nebenläufigkeit/Parallelität.-j— kompiliert Module parallel (siehe wie Haskell-Builds Ihre Kerne ausnutzen).-rtsopts +RTS -N— lässt das Programm zur Laufzeit mehrere Kerne nutzen.
Kompilieren Sie direkt mit ghc -O2 Main.hs, aber für alles, was über eine einzelne Datei hinausgeht, steuern Sie GHC über ein Build-Werkzeug.
Wie GHC mit Cabal und Stack zusammenspielt
Sie rufen ghc bei einem Projekt selten von Hand auf. Cabal und Stack lösen die Abhängigkeiten auf und rufen GHC mit den richtigen Optionen und der richtigen Paketdatenbank für Sie auf — siehe den Kontext des Build-Modells in Cabal 2.0 und die Geschichte der Isolation in den Cabal-Sandboxes. Der Haskell Language Server führt GHC ebenfalls im Hintergrund aus, um Ihrem Editor Typen und Diagnosen zu liefern — siehe unseren HLS-Leitfaden.
FAQ
Ist GHC der einzige Haskell-Compiler? Er ist mit Abstand der dominanteste und 2026 der Standard; andere Compiler existieren, aber GHC ist derjenige, auf den nahezu alle Werkzeuge und Bibliotheken abzielen.
Wie installiere ich GHC? Über GHCup — es verwaltet die Versionen und ist der auf haskell.org empfohlene Installer.
Was macht -O2? Es aktiviert die volle Optimierung: längere Kompilierung, schnellere Ausführung. Nutzen Sie es für Releases; der Standard -O0 eignet sich für schnelles Iterieren.
Soll man GHC direkt aufrufen? Selten — Cabal oder Stack rufen es bei echten Projekten für Sie auf. ghc direkt ist praktisch für Skripte mit einer einzigen Datei.