Hier kommt der neue Silicon-Compiler!

In einem früheren Blog-Beitrag haben wir Ihnen bereits unseren neuen Silicon-Compiler vorgestellt. Dieser neue Compiler wird für die Erstellung nativer Silicon-Anwendungen verwendet und ist nur im Projektmodus verfügbar.

Native Intel-Anwendungen (auf Windows und Mac) werden weiterhin den klassischen Compiler verwenden.
Schauen wir uns genauer an, wie er funktioniert.

Der 4D Silicon Compiler ist etwas Besonderes: Er ist ein 2-Schritt-Compiler.

Zunächst übersetzt er 4D Code in C++ Quelldateien. Dann wird der C++ Code mit Clang kompiliert, einem modernen Open-Source-Compiler für den Mac.
Dieser Ansatz hat eine Reihe von Vorteilen:
– Optimiert: Die resultierende Anwendung wird mit den besten Optimierungen kompiliert und ist so schnell wie reiner C++-Code.
– Aktualität: Apple gibt nur wenige Informationen über seine Prozessoren heraus, so dass wir seine Compiler verwenden müssen, um native Silicon-Anwendungen zu erhalten. Diese Einschränkung ist aber auch ein Vorteil, denn mit jedem neuen Prozessor kommt auch eine neue Version von Clang. So profitieren Ihre Anwendungen von den neuesten Verbesserungen und bleiben mit jeder neuen Generation von Silicon-Maschinen kompatibel.

Was hat sich geändert?

Dieser neue Ansatz bringt einige Änderungen mit sich.

Erstens haben Sie jetzt die Möglichkeit, für Silicon und/oder Intel Prozessoren zu kompilieren. Auf der Registerkarte Compiler in den Anwendungseinstellungen gibt es einen neuen Parameter namens Kompilierungsziel.

Compiler Settings

Sie können ihn auf Ihren Prozessor (Silicon auf Silicon Mac, sonst Intel) oder auf alle Prozessoren (Silicon und Intel) einstellen. Nebenbei bemerkt: Sie können für Silicon auf jedem Mac (Intel oder Silicon) kompilieren, aber nicht auf einem Windows-Rechner:

blank

Um für Silicon zu kompilieren, benötigen Sie Clang. Clang wird mit der neuesten Version von XCode geliefert. Wenn Sie es nicht haben, führt 4D Sie zum AppStore, um XCode zu installieren.

Inkrementelle Kompilierung

Der Silicon-Compiler verwendet inkrementelle Kompilierung. Das bedeutet, dass beim ersten Mal, wenn Sie eine Anwendung kompilieren, oder kurz nach dem Löschen des kompilierten Codes, die Kompilierungszeit erheblich länger ist, da 4D alles kompilieren wird. Bei den nachfolgenden Kompilierungen werden jedoch nur die von Ihnen geänderten Dateien kompiliert, so dass die Kompilierungszeit in etwa der üblichen Zeit entspricht.
Sobald die Kompilierung abgeschlossen ist, sehen Sie in Ihrem Paketordner ein neues Verzeichnis namens Libraries. Darin wird die Systembibliothek lib4d-arm64.dylib den kompilierten Code Ihrer Anwendung enthalten.

Das war’s schon. Starten Sie einfach im kompilierten Modus neu und Sie können Ihre Anwendung nativ auf Silicon verwenden.

Wenn Sie Kommentare oder Fragen haben, fragen Sie uns im 4D Forum.

Viel Spaß beim Kompilieren!

Nicolas Brachfogel
Product Owner & Senior Developer - Nicolas Brachfogel kam 2017 als Senior Developer (4D Server und Netzwerke) zu 4D. Als Product Owner, der die Freigabe von Apple Silicon verwaltet, ist er für das Schreiben von User Stories und deren Umsetzung in funktionale Spezifikationen zuständig und stellt sicher, dass die Implementierungen der Funktionen den Kundenanforderungen entsprechen. Nicolas ist Absolvent des Institut Supérieur d'Informatique Appliquée (INSIA) und begann seine Karriere als Softwareentwickler im Jahr 2001. Nachdem er mehrere Jahre in Java und C++ programmiert hatte, spezialisierte er sich auf die Client-Server-Entwicklung für Videospielunternehmen. Als Server-Entwickler/Architekt arbeitete er erfolgreich an den Server-Architekturen vieler Spiele (Dofus Arena, Drakerz, Trivial Pursuit Go!).