01.03, 15:30–17:30 (Europe/Berlin), Workshops 2. OG
Zig ist nicht nur eine schöne Sprache, sondern auch eine Toolchain. Es lässt sich damit mit dem Zig-Compiler nicht nur C/C++ übersetzen, sondern auch über das sprach-eigene Build-System. Warum es sich lohnen kann, seine eigenen C/C++-Projekte mit Zig zu bauen, und wie das geht, erfahrt ihr in diesem Workshop.
./configure && make && sudo make install
: Dieser Dreisatz ist allen, die einmal C-Projekte selbst kompiliert haben, gut bekannt. Doch ganz so einfach ist es meistens nicht. Was nach einem Skript und einen Werkzeug aussieht, ist ein ganzer Satz an Sprachen, Skripten und Werkzeugen, die alle mit ihren eingen Fehler und Eigenheiten kommen, und nur gemeinsam ein funktionierendes Binary erzeugen. Dazu kommen ggf. noch CMake, Meson, Ninja und Konsorten, um Nutzer:innen das Leben (angeblich) leichter zu machen. Und wenn man sich durchgekämpft hat, stellt man fest, dass das Binary nur für die aktuelle Plattform funktioniert. Und dann?
Zig ist angetreten, vieles besser zu machen als C, aber gleichzeitig den Respekt vor dem, was bisher geschaffen wurde, zu wahren. Daher ist nicht nur die Integration von C-Code in Zig direkt möglich, sondern auch das Übersetzen von C-Code mittels Zig-Compiler und Build-System. Nutzer:innen brauchen nichts weiter als zig build
aufzurufen, um ein C-Projekt zu übersetzen. Dazu braucht es nur eine build.zig
-Datei mit etwas (deklarativen) Zig-Code, und es gibt korrektes Caching, verschiedene Build-Modi, Cross Compilation und andere Goodies direkt dazu. Einfacher (und oftmals schneller) wird es nicht.
In diesem Workshop soll es darum gehen, wie man sein eigenes Projekt über das Zig Build System bauen kann, und welche Vorteile es hat. Zig-Kenntnisse werden nicht vorausgesetzt! Nach einer kurzen Einführung in die Funktion und Fähigkeiten des Build-Systems werden wir gemeinsam eine build.zig
-Datei für ein bestehendes, kleines C-Projekt schreiben. Wir gehen dafür gemeinsam Schritt für Schritt vor. Wenn am Ende noch Zeit bleibt, können Teilnehmende auch an ihrem eigenen C-Projekt arbeiten.
Teilnehmer:innen werden gebeten, vorab Zig in Version 0.13.0 zu installieren. (Dazu auf der Download-Seite etwas nach unten scrollen. Ansonsten ist nur ein Text-Editor nötig.
Hauro ist Gründungsmitglied des Chaospott und inoffizieller "Chaos-Opa" des C3E. Obwohl er schon lange (und gerne!) Kotlin programmiert, hatte er schon immer ein Faible für Sytems Programming, und sich vor einiger Zeit in Zig verliebt. Am Liebsten beschäftigt er sich aber mit dem Programmieren als solches, unabhängig von Sprachen.