2 Punkte von GN⁺ 2023-07-01 | 2 Kommentare | Auf WhatsApp teilen
  • Im Zig-Projekt wird vorgeschlagen, die Bibliotheken LLVM, Clang und LLD zu entfernen.
  • Zig plant, eigene Optimierungspässe zu haben und Forschungsprojekte sowie Beiträge von Chipherstellern anzuziehen.
  • Entfernung der Kompilierungsfunktionen für C++, Objective-C und Objective-C++ aus Zig
  • Der von Zig erzeugte Maschinencode könnte in naher Zukunft weniger konkurrenzfähig sein, langfristig aber zu LLVM und GCC aufschließen oder sie übertreffen.
  • Zu den Vorteilen der Entfernung von LLVM zählen klare Zuständigkeit für Bugs, einfacheres Build- und Bootstrapping, schnellere Kompilierungsgeschwindigkeiten und die Fähigkeit, benutzerdefinierte Optimierungspässe zu implementieren.
  • Es wurden Bedenken hinsichtlich der Auswirkungen auf Projekte geäußert, die auf C++-Kompilierung angewiesen sind, sowie hinsichtlich einer sinkenden Verbreitung von Zig.
  • Die Entfernung der Abhängigkeiten von DirectXShaderCompiler und Apples Metal-Shader-Compiler könnte schwierig sein.
  • Langfristig soll ein Übergang zu einer reinen Zig-Lösung vorangetrieben werden.
  • Einige Nutzer äußern Bedenken hinsichtlich der Auswirkungen auf ihre Erfahrungen in der Spieleentwicklung und auf die Nutzung bestehender C++-Bibliotheken und -Werkzeuge.
  • Zigs Einfachheit und Cross-Platform-Fähigkeiten werden gelobt.
  • Es wurde vorgeschlagen, das LLVM-Backend als Standard beizubehalten oder die Absenkung auf LLVM IR zu entfernen und gleichzeitig die Unterstützung für die C-Familie beizubehalten.
  • Nutzer betonen die Bedeutung von Zigs Fähigkeit, C/C++-Code nahtlos zu kompilieren und performante Binärdateien zu erzeugen.
  • Diskutiert wurden der potenzielle Verlust bestehender Bibliotheken und der Bedarf an Alternativen für JIT-Kompilierung.
  • Der Vorschlag wird als rein negativ für Nutzer und als potenzieller Köder-und-Wechsel wahrgenommen.
  • Die Bedeutung des Erhalts von Zigs Fähigkeiten für Cross-Compilation und die Integration bestehender Bibliotheken wird hervorgehoben.
  • Es wurde vorgeschlagen, die Abhängigkeiten von LLVM und LLD zu entfernen und clang als optionale Abhängigkeit beizubehalten.
  • Es wurden Bedenken hinsichtlich der Auswirkungen auf die Performance und der Umsetzbarkeit eines Ersatzes für LLVM geäußert.
  • Die Bedeutung der Unterstützung für C++-Kompilierung für Spieleentwicklung und andere Projekte wird betont.
  • Es wurde die Möglichkeit erwähnt, dass Zig die Funktionen von LLVM im Laufe der Zeit ersetzen könnte.
  • Diskutiert wurden die Notwendigkeit einer vernünftigen Performance-Garantie und der potenzielle Verlust von Optimierungsmöglichkeiten.
  • Die Auswirkungen auf bestimmte Bibliotheken und Werkzeuge wie ImGui und Tracy wurden erwähnt.
  • Der Vorschlag, LLVM aus Zigs Toolchain zu entfernen, könnte zu einer Spaltung der Zig-Community führen.
  • Einige Nutzer könnten ältere Versionen von Zig verwenden, um eine Migration zu vermeiden.
  • Die Beibehaltung von LLVM bringt Herausforderungen und Einschränkungen mit sich.
  • Ein Plugin-System für den Zig-Compiler könnte eine langfristige Lösung sein.
  • Das Kompilieren von Zig-Programmen für andere Plattformen und Sprachen könnte weiterhin unterstützt werden.
  • zig cc, eine einzigartige Funktion von Zig, könnte sich als eigenes Projekt weiterentwickeln.
  • Es wurde noch keine endgültige Entscheidung über den Vorschlag getroffen.
  • Die Diskussion über die Entfernung von LLVM verbreitet sich in den sozialen Medien.
  • zig cc wird in der Community hoch geschätzt und bietet Vorteile gegenüber anderen Toolchains.
  • Es ist möglich, zig cc ohne Clang beizubehalten.
  • Ein separates Projekt, das Clang bündelt, könnte bestehende Anwendungsfälle unterstützen, in denen mit Zig C++-Code gebaut wird.
  • Die Aufspaltung in separate Werkzeuge oder die Einstellung von Maintainern für den Erhalt von zig cc sind mögliche Lösungen.
  • Für Codebasen, die von entfernten Funktionen abhängen, könnten Migrationswerkzeuge entwickelt werden.
  • Kürzlich migrierte ein Softwareingenieur ein Projekt auf eine neuere GHC-Version, die einen nativen Codegenerator verwendet und dadurch schnellere Kompilierungszeiten bietet.
  • Das Silk.NET-Projekt nutzt zig cc und zig c++, um eine reproduzierbare Build-Umgebung für native Bibliotheken bereitzustellen und so einfache Cross-Compilation und lokale Setups zu ermöglichen.
  • Ein Softwareingenieur nutzt zig cc und zig c++ in privaten Projekten, um die einfache Cross-Compilation von Bibliotheken und ein einheitliches build.zig-Setup zu ermöglichen.
  • Der Intel-C/C++-Compiler hat die Einführung von LLVM abgeschlossen und bietet damit schnellere Kompilierzeiten, bessere Optimierung und Unterstützung für GPU- und FPGA-Offloading.
  • Der Vorschlag, den LLVM-Teil von Zig in ein separates, von der Community gepflegtes Projekt auszulagern, wurde gemischt aufgenommen.
  • Einige Nutzer äußern Bedenken über die Entfernung der C++-Unterstützung aus Zig, während andere argumentieren, dass die Unterstützung teuer ist und nicht im Budget liegt.
  • Das Zig-Team schlägt vor, dass diejenigen, denen die C++-Unterstützung wichtig ist, erwägen sollten, die Funktion finanziell oder mit ihrer Zeit zu unterstützen.
  • Einige Nutzer meinen, dass die Entfernung von LLVM langfristige Vorteile bringen könnte, äußern jedoch Bedenken über die vollständige Entfernung der Unterstützung für C++ und Obj-C(++).
  • Es gibt Vorschläge, den Zig-Compiler auf kleinere, schlankere Binärdateien zu reduzieren und LLVM-Funktionen als Erweiterung hinzuzufügen.

2 Kommentare

 
alstjr7375 2023-07-02

Wird damit eine Optimierung und Plattformunterstützung wie bei LLVM überhaupt möglich sein..

 
GN⁺ 2023-07-01
Hacker-News-Kommentare
  • Das Zig-Entwicklungsteam erwägt, die Abhängigkeit von LLVM zu entfernen
  • Einige befürchten, dass ein solcher Wechsel weg von LLVM den Fokus des Zig-Teams von Zig selbst ablenken wird
  • Andere glauben, dass es ein cooles und ambitioniertes Projekt sein könnte, Teile von LLVM in Zig neu zu schreiben
  • Falls Zig nicht mehr von LLVM abhängt, gibt es Bedenken hinsichtlich Codegenerierung und Bootstrapping
  • Einige halten das Entfernen von LLVM für eine übereilte Entscheidung, die die Plattformunterstützung von Zig einschränken könnte
  • Ein Kommentator kritisiert, der Vorschlag unterschätze den Arbeitsaufwand und ignoriere die bisherige Arbeit an LLVM
  • Zu den Opfern einer Entfernung von LLVM zählen der Verlust der C++-Kompatibilität und potenzielle Performance-Einbußen
  • Einige Nutzer befürchten, dass das Einstellen der Unterstützung für bestimmte Architekturen die Popularität von Zig beeinträchtigen wird
  • Ein Kommentator merkt an, dass die Popularität von Zig teilweise auf C/C++-Kompatibilität und die einfache Installation zurückzuführen ist
  • Es wird vorgeschlagen, dass Zig für Debug-Builds benutzerdefinierten Bytecode verwendet und für Release-Builds weiterhin von LLVM abhängt
  • Die Sprache D hat mehrere Compiler mit verschiedenen Backends, und die Nutzer schätzen diese Auswahl
  • Die Toolchain von Zig wird hoch geschätzt, und das Entfernen von Zig cc und Zig c++ könnte Sprach-Nutzer zögern lassen
  • Einige Kommentatoren glauben, dass die Entscheidung, C++-Funktionen zu entfernen, dem zukünftigen Erfolg von Zig schaden könnte.