Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable optional full AOT compilation #14

Open
ztzg opened this issue Jul 9, 2014 · 4 comments
Open

Enable optional full AOT compilation #14

ztzg opened this issue Jul 9, 2014 · 4 comments

Comments

@ztzg
Copy link
Contributor

ztzg commented Jul 9, 2014

No description provided.

@bobsummerwill
Copy link
Member

See http://www.mono-project.com/AOT#Full_AOT

Quick random question for you ... is Mono AOT on Android actually feasible with only the content available in Mono master? I'm thinking that it is actually EXACTLY the same scenario as Tizen with regard to JIT/AOT, and it is just that running JIT is more performant than AOT on Android.

http://stackoverflow.com/questions/19072897/xamarin-android-does-native-code-compilation-make-reverse-engineering-harder

Which would mean that the only proprietary technology within Xamarin.Android is the bindings and the IDE integration. So AOT and even full AOT should be feasible on Tizen, I think, though full AOT is only supported on ARM as per those docs. But that's fine. Would mean we can ship an optional full AOT mode for the Samsung Z, which should be better performance and more likely to be accepted in the Tizen Store.

@ztzg
Copy link
Contributor Author

ztzg commented Jul 11, 2014

Hi Bob,

AOT refers to one thing in particular, and what Xamarin is doing on iOS/Android is a bit more than "Full AOT". As far as I can tell:

  • "Full" AOT seems to work on x86_64 (even though I'm getting "8 methods have other problems (0%)" when AOTing mscorlib.dll), and I would be surprised if it did not work on i386 (caveat: I haven't tried);
  • Static AOT (--aot=full,static) seems to be supported by recent versions of Mono, out of the box, but I don't think a stub generator is provided with the framework. This means that you still have to write main and arrange for the assemblies to be registered "by hand";

Based on the above, I don't think it would be a huge amount of effort to get static AOT working in MonoDevelop.Tizen, on both platforms. But it's not "just a flag." More about this ASAP.

HTH, -D

@bobsummerwill
Copy link
Member

Great - thanks for the clarification.

@bobsummerwill
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants