Search Unity

Mono Releases 4.0!

Discussion in 'General Discussion' started by charmandermon, Apr 5, 2015.

  1. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    • Adoption of Microsoft’s open source code
    • C# 6.0
    • Floating point optimizations
    • We dropped support for the 2.0, 3.5 and 4.0 assemblies
    • Updated IKVM
    • Lighter Debugger overhead
    • Basic PowerPC64 LE support
    While we wait for an official cross platform .net this looks pretty impressive. I wish we could use this rather than IL2CPP.

    http://www.mono-project.com/docs/about-mono/releases/4.0.0/
     
    MrEsquire, shkar-noori and rakkarage like this.
  2. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    So when will unity update their mono
     
  3. Jither

    Jither

    Joined:
    Jun 13, 2014
    Posts:
    29
    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.
     
  4. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,448
  5. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Unity will update their mono after IL2CPP has been rolled out to all feasible platforms as far as I'm aware. Check blog.
     
    konsnos likes this.
  6. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    What are "feasible platforms"? In theory it could be used on any platform
     
  7. Jither

    Jither

    Joined:
    Jun 13, 2014
    Posts:
    29
    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).
     
  8. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    How is it possible that a large company like unity cannot figure out a custom license agreement with xamarin for years?
     
    darkhog likes this.
  9. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,205
    Simply being a large company doesn't guarantee you that you'll get a license with the terms you want.
     
    Meltdown and carking1996 like this.
  10. Breyer

    Breyer

    Joined:
    Nov 10, 2012
    Posts:
    412
    @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
     
  11. Jither

    Jither

    Joined:
    Jun 13, 2014
    Posts:
    29
    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)
     
    Last edited: Apr 6, 2015
  12. cannon

    cannon

    Joined:
    Jun 5, 2009
    Posts:
    751
    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.
     
  13. zezba9000

    zezba9000

    Joined:
    Sep 28, 2010
    Posts:
    992
    Microsoft now just started a Open Source MSIL to LLVM compiler: https://github.com/dotnet/llilc
    This is basically an Open Source / Cross Platform .NET Native project. So AOT for iOS could someday work with the full .NET as well. I wonder how fast this will be compared to IL2CPP.

    Now that MonoDevelop won't support .NET 3.5 does this mean I can't use it to build Unity code anymore?!

    EDIT: Downloaded Mono 4.0.0 and the latest tools and you can still compile for .NET 3.5
     
    Last edited: Apr 15, 2015
  14. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    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.
     
    Fortyseven, konsnos and shkar-noori like this.
  15. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Mono is not the same as MonoDevelop! MonoDevelop is just the IDE.
     
  16. zezba9000

    zezba9000

    Joined:
    Sep 28, 2010
    Posts:
    992
    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.
     
  17. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    the waiting game....
     
  18. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    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.
     
    Dantus and Ryiah like this.
  19. zezba9000

    zezba9000

    Joined:
    Sep 28, 2010
    Posts:
    992
    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.
     
  20. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    So you're compiling externally and bringing stuff in as DLLs? In that case...
     
  21. zezba9000

    zezba9000

    Joined:
    Sep 28, 2010
    Posts:
    992
    Maybe I misunderstood what you were saying before, either way it doesn't matter.