[Mono-list] Port to symbian?
Miguel de Icaza
miguel at ximian.com
Sun Nov 12 18:04:09 EST 2006
> I defintely agree that this would have been the easiest, yes. Mono
> does use TLS so would be okay, however I am not aware of any of its
> dependencies (glib, etc.) being available, also Symbian uses its own
> (ugly) Perl-based make system on Windows.
Mono now ships with an embedded glib, it passes all the runtime tests:
This will use its own tiny and embeddable glib, instead of having a
> Last time I checked I believe Mono was about 8 MB in whole. By
> comparison my phone has 4 MB in whole minus RAM and data (with no
> memory expansion possibilities) so a CLI should be no larger than
> maybe 500 KB - I doubt a compiler optimization, stripped debug
> symbols and locales would make such a big difference, and regarding
> the required autoconf etc.
A full Mono runtime, with full localization and a complete corlib and
System takes 4 megs of space (this is from looking at bundles like
Unity's web player for Windows).
You can reduce 150k from glib alone, 500k from removing the tables, and
when it comes to the class libraries, you can remove all the
functionality not needed (or better yet, use the linker, it needs a few
fixes for mscorlib, but you get the idea).
> Symbian OS rarely uses exes but mostly dlls even for applications up
> to Symbian OS 8.x, so memory cleanup is key which it does using
> strict two-phase object construction, a cleanup stack and its own
> exception handling mechanism (C++ exceptions only on Symbian OS 9.x);
> to support this infrastructure there are so-called descriptors that
> wrap access to arrays or memory areas. Supporting all this would make
> the Mono codebase pretty ugly with lots of #ifdefs.
Not really, we just have to factor things out, for instance, instead of
using ifdefs for architectures, we use separate files for each
architecture. Nothing is stopping us from doing the same here.
But then again, if we are talking about 10 ifdefs, thats probably
manageable, if we are talking about 1000 then we might want to put them
in a separate file.
More information about the Mono-list