Portierung von Pigz auf Windows: Ein überraschend einfacher plattformübergreifender Prozess

2025-06-23
Portierung von Pigz auf Windows: Ein überraschend einfacher plattformübergreifender Prozess

Pigz, ein Komprimierungstool im Unix-Stil, ließ sich überraschend einfach auf Windows portieren. Der Artikel beschreibt die Herausforderungen, wie z. B. Unterschiede in der pthreads-Thread-Bibliothek und den dirent-Funktionen sowie geringfügige Abweichungen in den Namen der C-Bibliotheksfunktionen. Der Autor nutzte geschickt vorhandene Kompatibilitäts-Patches und das Premake-Build-System, um diese Hürden zu überwinden. Premake vereinfachte die Erstellung und Wartung von Visual Studio-Projektdateien, was letztendlich zu einer erfolgreichen Pigz-Implementierung unter Windows führte.

Mehr lesen
Entwicklung

SumatraPDF-Entwickler lässt std::function nach 16 Jahren fallen und entwickelt seine eigene Lösung

2025-06-15
SumatraPDF-Entwickler lässt std::function nach 16 Jahren fallen und entwickelt seine eigene Lösung

Nach 16 Jahren C++-Entwicklung an SumatraPDF gab der Autor `std::function` und Lambdas auf, da das Debugging schwierig war. Crash-Reports waren aufgrund der automatisch generierten Namen der vom Compiler erzeugten Lambda-Funktionen schwer zu entziffern. Er entwickelte einfachere, benutzerdefinierte Callback-Funktionen `Func0` und `Func1`. Obwohl weniger funktionsreich als `std::function`, bieten sie erhebliche Vorteile in Bezug auf Speicherbedarf und Kompilierungszeit und sind einfacher zu debuggen. Dieser Beitrag beschreibt das Design und die Implementierung von `Func0` und `Func1` und erklärt, warum dieser Ansatz besser zu den Anforderungen von SumatraPDF passt.

Mehr lesen
Entwicklung Callbacks