coldwa.st
Alle LeitfädenProgrammierungWebDatenWerkzeugeDatenbankenHaskellKonzepteCabal & BuildsToolchainCompilerPerformanceEditor & HLS

Haskell · Compiler · Toolchain

GHC, der Glasgow Haskell Compiler: ein praktischer Leitfaden für 2026

Von ColdwastAktualisiert am 14. Juni 20267 Min. Lesezeit#haskell#ghc#compiler
Quellcode auf dem Bildschirm
GHC verwandelt Ihren Haskell-Quellcode in schnelle native Binärdateien — und treibt GHCi sowie die gesamte Toolchain an.

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

Ein aufgeklappter Laptop, der Code auf einem Schreibtisch anzeigt
Ein aufgeklappter Laptop, der Code anzeigt — GHCi lässt Sie Module laden und Funktionen interaktiv testen.
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 -Werror in 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.

Unabhängiger, von der Community gepflegter Leitfaden. coldwa.st ist eine Website mit Programmierressourcen; dieser Artikel ist ein neuer, eigenständiger Text über GHC und die aktuelle Haskell-Toolchain, ohne Verbindung zu den Projekt-Maintainern und nicht von ihnen verfasst. Die Befehle spiegeln das dokumentierte Verhalten von GHC/GHCup wider — die aktuellen Versionsnummern entnehmen Sie der offiziellen Dokumentation.