Wie führt Apples Swift Playgrounds App für das iPad Code aus?

8

Wie führt die Swift Playgrounds App für das iPad Code aus?

Haben sie die LLVM-Toolchain auf ARM portiert und kompilieren sie im laufenden Betrieb oder verwenden sie Swift-Code auf eine völlig andere Art und Weise?

Wie kann ich etwas ähnliches in iOS erreichen (d. h. dynamische Ausführung von Swift-Code)?

    
antfarm 14.11.2016, 16:54
quelle

1 Antwort

8

Weder Apples allgemeines Publikum noch Entwickler Marketingmaterialien sagen nicht viel mehr als Swift Playgrounds ist" echter Code ". Aber es ist möglich, für sich selbst zu überprüfen (oder zumindest einige starke Beweise dafür zu finden), dass Swift Playgrounds tatsächlich die vollständige Compiler-Toolchain ausführt und nativen arm64-Code erzeugt.

Tipp: Wenn Sie eine App Store-App in iTunes auf Ihrem Mac (oder auch auf Windows) herunterladen, können Sie die entsprechende .ipa -Datei in Ihrem lokalen Dateisystem finden. Sofern Sie keine Bierperson sind, sind IPAs nur Zip-Archive, die das App-Paket enthalten, das bei der Synchronisierung auf einem iOS-Gerät installiert wird. Sie können sie also mit Ihrem bevorzugten Dienstprogramm entpacken (einschließlich des integrierten Archivdienstprogramms in macOS oder% co_de) % command line tool) und stochern ein wenig in ihrem Inneren herum.

Wenn Sie dies mit Swift Playgrounds tun, finden Sie eine nahezu vollständige Replik der SDKs und Toolchains, die in Xcode gefunden werden, einschließlich einiger Dateien, die für die Verknüpfung von Binärdateien für die unzip -Architektur spezifisch sind. (Sie werden keine Befehlszeilenbinärdateien für den Compiler und verwandte Tools finden, aber es gibt nichts Neues an der Ausführung von Teilen der LLVM-Toolchain. als Bibliotheken .) Sie können auch einige Beweise für arm64 als Compiler-Host-Architektur im Open-Source-Code des Swift-Compilers.

Also, ja - kurz vor der offiziellen Bestätigung von Apple sieht es so aus, als ob Swift Playgrounds nativen Code auf iOS-Geräten kompiliert und ausführt. (Wenn man ein wenig darüber nachdenkt, macht es nicht viel Sinn, es anders zu machen - Swift-Code in einer Art interpretierter / emulierter Umgebung zu kopieren würde die Leistung zerstören. Und wahrscheinlich Apples erklärte Ziel , den Zugriff auf das gesamte iOS Toolkit unglaublich schwierig zu gestalten.

Und nein, Apps von Drittanbietern können das immer noch nicht . Seit 2010 ist es für Apps von Drittanbietern möglich, Tools zu verwenden, die eingebettete Scripting-Umgebungen bereitstellen - Game-Engines nutzen dies, um das Gamedesign zu beschleunigen. Entwicklung und andere Apps bieten Codierungsumgebungen für Python und Lua , zum Beispiel. Aber Sie können sich wahrscheinlich vorstellen, dass die Kompilierung und Ausführung von nativem Code durch Apps von Drittanbietern ein Albtraum für die Sicherheit sein könnte ...

    
rickster 14.11.2016, 21:01
quelle

Tags und Links