|Mono and pNaCl||Faldegast||8/2/13 6:34 AM|
I noticed that there seem to be no pnacl support in Mono yet, are this planned or will Mono apps continue to use platform-specific binaries?
|Re: [native-client-discuss] Mono and pNaCl||Elijah Taylor||8/2/13 8:22 AM|
For the foreseeable future mono will continue to use platform specific binaries. There are problems with making mono support pnacl at the moment. Mono does have an llvm code generator but I don't know how compatible it is with pnacl bitcode. Pnacl also lacks JIT support at the moment, so AOT would be the only option. It would be a significant effort IMO to port it.
In the meantime we do now have an ARM codegen port available. I'm working to move the build of mono we have to the new 3.2 mono release so the builds coming through the nacl SDK are not all up to date right now.
On Aug 2, 2013 6:34 AM, "Faldegast" <fald...@gmail.com> wrote:
I noticed that there seem to be no pnacl support in Mono yet, are this planned or will Mono apps continue to use platform-specific binaries?--
|Re: [native-client-discuss] Mono and pNaCl||Faldegast||8/7/13 8:15 AM|
What about AOT with pnacl as target, similar to how IKVM run Java on Mono. Also, will there be any decent documentation on how to use mono? I was thinking about writing a plugin that can run Java Applets using IKVM but im not really sure on how to tie everything together yet. However as I understand it Pepper security will sandbox the whole plugin so that it dosnt need any internal security model?
|Re: [native-client-discuss] Mono and pNaCl||Elijah Taylor||8/7/13 12:27 PM|
On Wed, Aug 7, 2013 at 8:15 AM, Faldegast <fald...@gmail.com> wrote:
AOT support in NaCl has bitrotted as we haven't used it in as long as we've had the JIT support in NaCl. I think it would be possible to AOT compile to PNaCl, but I would estimate it is a large amount of work. First, I would guess there is no support for AOT+llvm in upstream Mono that outputs bitcode files. Probably they use llvm only internally as a code generator and the final output is whatever target architecture's binary format you're using. You would also have to PNaCl-ize whatever bitcode is being emitted by Mono (I'm not familiar enough with PNaCl's bitcode to estimate this work).
Aside from various posts on this list there is no detailed documentation on how to use Mono in NaCl. You have to embed mono in your executable, and there is some documentation for doing just that, as well as some samples in the naclmono_samples bundle you can add in the SDK. Also, interfacing with Pepper from managed code is not supported directly, you basically have to roll your own interface (either using DllImport or registering internal calls) to use Pepper on the C side.
You will have both the NaCl and Chrome sandboxes to help contain malicious code from the user's computer. But you do potentially open up anything *inside* your app/plugin if you embed the Mono runtime and allow execution of arbitrary code from the internet.