dotgnu-pnet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pnet-developers] Profile support in pnetlib


From: Rhys Weatherley
Subject: [Pnet-developers] Profile support in pnetlib
Date: Wed, 16 Apr 2003 14:50:13 +1000
User-agent: KMail/1.4.3

Hi all!

I've been busy inside pnetlib this week, updating the profile support.  
Profiles allow us to build pnetlib in a number of different configurations 
for embedded systems.

To build pnetlib with a profile, "./configure --with-profile=name" when 
configuring pnetlib (don't forget to re-run auto_gen.sh first).  The current 
profiles are supported at present:

    full - turn on everything (default).
    ecma - only enable ECMA-compatible features.
    compact - ecma, without floating point or debug line information.
    compact-fp - ecma without debug line information.
    kernel - compact without reflection.
    kernel-fp - compact-fp without reflection.
    tiny - kernel without assembly loading, PInvoke, and resources.
    tiny-fp - kernel-fp without assembly loading, PInvoke, and resources.

The "compact" and "kernel" profiles are designed to be roughly equivalent to 
the definitions in ECMA Partition IV.  The "tiny" profile essentially reduces 
the system to just the base class library ("BCL" in ECMA terminology).

The "compact-fp" and "ecma" profiles are functionally identical, except that 
debug line information is turned off to save memory.  Here are the sizes in 
bytes of mscorlib.dll in each of the profiles (these numbers may change a bit 
as I fine-tune the library a bit more):

    full - 1184256
    ecma - 615936
    compact - 442880
    compact-fp - 465920
    kernel - 404992
    kernel-fp - 428032
    tiny - 341504
    tiny-fp - 365056

(Those are the on-disk sizes - the in-memory sizes will be larger due to CVM 
conversion overhead and metadata loading).

Note: if you are building software for DotGNU on top of pnetlib (e.g. 
dotgnu-libs), you should regularly test your code with the "ecma" profile to 
ensure that you aren't relying upon non-standard features.  Bonus points if 
it will also run with "kernel" and "tiny". :-)

I still have some work to do to update the profiles in "pnet" to match the 
above, but we are definitely getting closer to the goal of running well in a 
minimal environment.

Cheers,

Rhys.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]