Buildsysteme mit Haskell

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...

Weihnachtspause

Nach 38 Posts - nahezu jede Woche eines - im Jahr 2013 gönnen wir uns bis ins neue Jahr eine kurze Pause. Wir hoffen, die Beiträge haben Ihnen gefallen - wir freuen uns auf viele neue Beiträge 2014.

Ein frohes Weihnachtsfest wünscht das Team von funktionale Programmierung!


Videos zur CUFP 2013 verfügbar

Die Commercial Users of Functional Programming (CUFP) ist eine jährlich stattfindende Konferenz, zu der sich industrielle Anwender funktionaler Programmierung treffen. Wir hatten sie einem vorigen Beitrag vorgestellt. Die diesjährige CUFP haben Marius Eriksen von Twitter und ich organisiert. Sie fand im September in Boston statt und war (wieder einmal) ein voller Erfolg.

Anlass für dieses Posting ist unter anderem, dass inzwischen Videos zu den Talks der Konferenz online sind. Es lohnt sich, einen Blick darauf zu werfen - die Videos sind allesamt unterhaltsam und liefern nützliche Einblicke in industrielle Anwendungen der funktionalen Programmierung.

Wer sich mit Text eher anfreunden kann: Anil Madhavapeddy hat einen Liveblog-Beitrag mit Kurzberichten zu allen Vorträgen geschrieben.

CUFP 2013 hat einige bemerkenswerte Trends aufgezeigt:

  • Während vor einigen Jahren die CUFP noch vornehmlich durch Startups und kleinere Unternehmen bevölkert war, sind zunehmend große Unternehmen mit kritischen Anwendungen vertreten. Dazu gehörten Twitter, Facebook und Netflix.

  • Für mich überraschend war, wie sehr Haskell Einzug in Server-Anwendungen findet. Für uns ist das keine Neuigkeit, aber dieses Jahr waren noch die Gilt Groupe, FP Complete, skedge.me und GREE dabei.