I was wondering why is IL2CPP the only way to create a 64-build for iOS?
Doesn’t Mono runtime support 64 bit as well? As far as I know, Xamarin apps that use Mono (a newer version than the one used by Unity) support 64 bit.
I was wondering why is IL2CPP the only way to create a 64-build for iOS?
Doesn’t Mono runtime support 64 bit as well? As far as I know, Xamarin apps that use Mono (a newer version than the one used by Unity) support 64 bit.
There’s your answer.
One of the reasons Unity created IL2CPP had to do with an inability to upgrade the Mono runtime as it was. I unfortunately can’t find the post where I first read it, and I think it had to do with licensing limitations on newer versions of Mono. In any case, support for mobile devices is one thing that has held back Unity’s version of Mono for so long, and IL2CPP is their way around it (in addition to having other advantages).
In Unity 5.5 the compiler was upgraded to Mono 4.4 which is quite new.
Is this referring to the compiler and not the runtime?
What you’re linking is an experimental test build, not the main Unity build.
Unity upgraded parts of the runtime for the main build on 5.5, but it’s still on an old C# language version. It’s probably not compatible as of yet.
If you’ve got iOS questions, you can try the iOS specific forums, people probably knows more about iOS there.
@Baste The official release version of Unity 5.5 actually uses Mono 4.4
The problem here is not the C# language version but the runtime. So I am wondering if the update to Mono 4.4 affected the runtime as well, besides the compiler, and, in the iOS case, whether it can provide 64 bit support.
I was thinking of posting this in the iOS question, but the actual question is related to the inner workings of the C# compiler and runtime and is more general. Unfortunately, I didn’t find a forum related to the engine and “under the hood” implementation.
Unity 5.5 uses the C# compiler from Mono 4.4, but not the runtime. The Mono runtime in Unity 5.5 is the same one that was used in previous Unity versions.
Thank you @JoshPeterson . That explains a lot ![]()