Basically, at some point after all AOT-compiled platforms (iOS and consoles, from what I recall) have been moved to using IL2CPP. Which isn’t likely to be soon-soon.
That’s new, then, I think? (And nothing about it in the blog that I’ve seen, since almost a year ago). The point, originally - and last mentioned in January somewhere on the forum (probably the IL2CPP thread) - was that the reason that Mono cannot be updated is that Unity has a special agreement with Novell, but not with Xamarin, about the LGPL license. Hence, they can only use the latest version released under Novell, until the LGPL issues are circumvented.
Because AOT means that the Mono object files are not replaceable by an end-user, that breaks some (including Xamarin’s) interpretations of LGPL. For non-AOT platforms, the Mono object files can be replaced. So, Mono AOT needs to be replaced with IL2CPP before a Mono update can happen. Unless there are new hurdles, legally or logistically, it doesn’t need to be on all feasible platforms (which include, yeah, pretty much any platform).
I’d very much like to see that question resolved, because judging from the current progress, then it’s even more up in the air than before (my - very unqualified - guesstimate up until now would be at the very least a year more).
@Zeblote they could and as far as i remember they managed to figure out new license but didnt filled agreement (partially due to looong negotiation i guess) and decide to put money on IL2CPP
Likely simply because it’s a matter of interpretation, not really a matter of money/discussion. Most probably, Novell agrees that a commercial/closed-source release still complies with LGPL even with Mono AOT. Xamarin don’t. (Which isn’t to say that means Unity got Mono licensed from Novell “for free”, just that Xamarin are likely to ask a lot more - or possibly simply refuse).
Can’t really see how any amount of money or debate can overrule a company’s official stance on an open source license. And then it becomes not Unity’s problem, but yours as a developer. Because it’s you breaking the LGPL by releasing your game, not Unity.
(mandatory “I’m not a lawyer” disclaimer here + a disclaimer that this is just guesswork - I prefer not to follow GPL politics)
Xamarin can and does license it under different license terms with those restrictions lifted, but from what I coulld tell the licensing costs were just too high for Unity, and now, with IL2CPP being both faster and easier to port than Mono to AOT platforms, I’m going to end this run-on sentence now.
I’d recommend you just be patient, Unity have every intention of supporting latest .net in their own manner. You don’t need to concern yourselves with licensing issues or performance, only your own patience.
The process will be quicker if people report any issues with IL2CPP on iOS and WebGL. As once those platforms are rock solid, Unity can roll it out everywhere, only takes a few days per platform apparently. Then we can look forward to some language updates
That’s my knowledge of the matter at the time of writing.
Yes but if the Mono/.NET compiler that MonoDevelop uses doesn’t support .NET 3.5 we would be out of luck. I guess this was a silly worry as I know they will ship with Roslyn at some point anyway.
Why? The IDE is just a fancy text editor. Unity compiles things for itself, and most decent IDEs can be set up to use alternative compilers if that’s what you want.
You misunderstand, Unity does not compile the code while its open in MonoDevelop or Visual Studios if you want to build within the IDE. It uses the Mono or .NET version on your computer to compile when open with the native IDE. Why this matters is because the modern Visual Studios and MonoDevelop versions of Mono and .NET used compile much faster and have many bug fixes vs Unity’s version of Mono. For instance Unity’s Mono compiler does not compile yield statements correctly in every context.