Willkommen im Neuen Jahr! Der Blog Funktionale Programmierung startet direkt
durch und beschäftigt sich im ersten Artikel im Jahr 2014 mit einem
in Haskell geschriebenen Buildsystem namens shake
.
Größere Softwareprojekte benutzen (fast) alle ein Buildsystem, um aus Quellcode
automatisch ein fertiges Softwareprodukt zu erstellen. Dazu gehört z.B.
das Kompilieren von Quelldateien, das Linken von Objektdateien, das Generieren
von Dokumentation oder das Zusammenstellen von Distributions-Archiven.
Dieser Blogartikel gibt eine Einführung in das in Haskell geschriebene Buildsystem
shake. Dieses System hat den Vorteil,
dass Abhängigkeiten
zwischen Build-Artefakten dynamisch, d.h. während das Buildsystem läuft, entstehen können.
Bei make, dem wohl bekanntesten Buildsystem, müssen Abhängigkeiten hingegen
vor Aufruf des Buildsystems bekannt sein, was in der Praxis häufig zu Einschränkungen
und Problemen führt.
Wir benutzen bei uns in der Firma shake, um unser Produkt
Checkpad MED zu kompilieren. Hier spielt
shake seine Stärken voll aus, denn ein wichtiger Bestandteil der Checkpad-Infrastruktur
ist Codegenerierung. Dank dynamischer Abhängigkeiten ist es möglich, mit einem Aufruf des
Buildsystems das Programm zur Codegenerierung zu kompilieren, den Code selbst zu generieren
und den generierten Code zu kompilieren und zu linken.
Neil Mitchell, der Autor von shake, hat eine Variante des Tools für den Einsatz
bei Standard Chartered entwickelt, um wirklich große Softwareprojekte effizient
kompilieren zu können. Details hierzu sowie detaillierte Infos zur internen
Architektur von shake finden Sie in diesem Artikel.
Weiterlesen...