[Mono-list] Port to symbian?

Andreas Färber andreas.faerber at web.de
Sun Nov 12 15:20:37 EST 2006


Hi,

>> I figured Mono was way too big for my phone and Symbian OS only
>> includes a POSIX compatibility library and otherwise uses C++
>> libraries along with its own conventions, so porting Mono directly
>> seemed problematic at least.
>
> Mono does require very little from the underlying OS other than Posix.
> It might be interesting to get it working on that platform as well.

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.

> Writing a fully compliant CLI is going to take a lot longer than
> carefully turning features off

I'd guess that!

> (we already support turning a few
> features off, see:
>
> 	http://www.mono-project.com/Small_footprint
>
> For more details.

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. changes getting Mono to compile on Intel  
OS X was already a hard thing for me! I can understand that Symbian  
OS (just like Solaris) is not Novell's top priority, but there was  
virtually no response from other potential contributors - the posts  
were originally about porting Mono after all - and alone I am at a  
loss there.

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.

Andreas


More information about the Mono-list mailing list