[Mono-dev] Porting Mono to 'asm.js'

Robert Jordan robertj at gmx.net
Sun Mar 15 15:17:01 UTC 2015


On 15.03.2015 10:59, Nirmal Lankathilaka wrote:
> I've been using Mono for developing desktop apps for a couple of years and
> would love to contribute to the project. Since I'm still a student, I think
> GSoC is a splendid opportunity to start.
>
> "Porting Mono to `asm.js`", presented for GSoC, caught my attention
> recently. I spent some time researching this and I'd like some
> clarification from the community:
>
> Since Mono-LLVM support does exist[mono-llvm]
> <http://www.mono-project.com/docs/advanced/mono-llvm/>, why would the need
> arise for a port? I understand that there are limitations
> [mono-llvm#limitations]
> <http://www.mono-project.com/docs/advanced/mono-llvm/#limitations> in the
> above approach as LLVM doesn't fully support all the needs of Mono; but
> since there is no specifications given which would require one to avoid the
> above approach (mono-llvm-->llvm-->emscripten-->asm.js), I'm a bit confused.

The proposal assumes a slightly deeper understanding of the Mono
internals.

http://www.mono-project.com/community/google-summer-of-code/projects/#port-mono-to-asmjs

"mono runtime" is here the part of Mono that provides the OS
abstraction layer (file, network etc.) and GC. It's that minimal
part of Mono that's needed for running static AOT (ahead-of-time
compilation) assemblies that were compiled to native shared objects
or included into the main executable. Basically, it's Mono sans
code generation, suitable to run on the target.

The target is here "emscripten/asm.js", so it needs a port.

"mono cross compiler that can target emscripten"
is a Mono LLVM AOT target that generates LLVM code suitable
for emscripten. This part is supposed to run on the host, i.e.
it has access to a full tool chain etc.

>
> On a different note, could you explain to me whether I should use the
> forums instead of the mailing-lists (which I prefer) for communication
> regarding GSoC and the `asm.js` port.

The forums are just a mirror of this list.

Robert




More information about the Mono-devel-list mailing list