Unity veröffentlichte am 6. Mai 2015 einen technischen Überblick über die Interna von IL2CPP. Das neue Scripting-Backend war zuvor mit iOS 64 Bit und Unity 5 mit WebGL auf zwei Plattformen eingesetzt worden. Der Beitrag bildete den Auftakt einer geplanten Serie zu Compiler, Laufzeit und generiertem Code.
IL2CPP besteht aus zwei getrennten Teilen: einem Ahead-of-Time-Compiler und einer Laufzeitbibliothek für die virtuelle Maschine. Der Compiler verarbeitet Intermediate Language aus .NET- und Mono-Assemblies. Die Laufzeit stellt unter anderem Speicherbereinigung, Threads, Dateizugriff und interne Aufrufe bereit.
AOT-Compiler erzeugt plattformabhängigen C++-Code
Das Programm il2cpp.exe ist selbst in C Sharp geschrieben und erzeugt aus verwalteten Assemblies C++-Quellcode. Anschließend übernimmt ein Compiler der jeweiligen Zielplattform die Übersetzung in nativen Maschinencode. Dieser Ablauf sollte Unity-Projekte auf Plattformen bringen, auf denen eine Just-in-Time-Ausführung nicht verfügbar oder nicht erwünscht ist.
Unity kündigte weitere technische Beiträge zu generiertem Code, Debugging, Methodenaufrufen, generischen Typen, P/Invoke, Speicherbereinigung und Testframeworks an. Die Serie ergänzte bestehende Unity-Themen wie die Fehlersuche im Mono-JIT des Editors um die Architektur des neuen Backends.
