If memory serves me right, Adam Treat wrote:
>  I've been told that  DotGNU/Portable.NET has a working ARM port of 
>  ilrun, which also works with Qt#.  

It did last July ... but dunno about now or current CVS .. See attached
chatlog I had with the guy who tested it on his embedded linux ARM palmtop.

Pnet ran a hello world 10k stack and 200k heap  (for IL) with a full 
build then .. should be a lot smaller for a trimmed down build ...

>  I would love to see a Qt# application  running on the zaurus!  

If libffi does not work in ARM ... PInvoke is out of the way... Still
someone can write a new ilrun.c embedding QT as a set of internal calls.
And avoid the hassle of porting libffi ...

This is more relevant now that the ilinternal tool can generate the
correct marshalling code with C , rather than depend on libffi support.
And we can attach internal call tables to the engine at runtime as well..

> > especially if it would support jitted code.  

Pnet has a JIT ... but not a native JIT ... pnet JITs IL into a simpler
non-polymorphic code called CVM ... Which is a lot faster to run than
the direct IL interpreters ...

> > special mobile .NET version (stripped down runtime libraries, don't

Hmm.... maybe someone should fix the pnetlib/profiles/tiny section 
to actually work :-)

Gopal
-- 
The difference between insanity and genius is measured by success
05:20:19 <fragglet>     i was going to crosscompile pnet to my palmtop
05:20:22 <fragglet>     forgot about that
05:20:29 <t3rmin4t0r>   if it works !!!!
05:20:39 <t3rmin4t0r>   embedded heaven !
05:20:49 <t3rmin4t0r>   afterall rhys is a thin client guru
05:20:53 <fragglet>     heh
.........
05:25:19 <fragglet>     i'm just wrestling with configure and stuff atm
05:25:25 <fragglet>     crosscompiling is a pain
05:25:26 <t3rmin4t0r>   oh the pnet stuff
05:25:28 <t3rmin4t0r>   yes it is
05:25:31 <fragglet>     yeah
05:26:00 <fragglet>     i got the wrong compiler and its trying to compile treecc with 
the arm version
05:26:31 <t3rmin4t0r>   arm ? 
05:26:40 <t3rmin4t0r>   what are you using ?
05:26:43 <fragglet>     yeah
05:27:03 <fragglet>     the gcc arm port
05:28:34 <t3rmin4t0r>   ok
.............................
05:29:27 <fragglet>     its choking on libffi
05:29:38 <t3rmin4t0r>   ./configure --without-libffi
05:29:47 <t3rmin4t0r>   you need libffi only for the PInvoke stuff
05:29:49 <fragglet>     can i do that
05:29:58 <fragglet>     hmm ok
05:30:01 <t3rmin4t0r>   ie dlopening .so files from C#
05:30:18 <t3rmin4t0r>   fragglet: try a profile option
05:30:31 <fragglet>     profile?
05:30:43 <t3rmin4t0r>   profiles/README
05:31:05 <t3rmin4t0r>   if you want to go really tiny
05:31:13 <fragglet>     oh
05:31:17 <t3rmin4t0r>   it sets a lot of the #ifdefs in the code
05:31:20 <fragglet>     you can specify sizes
05:31:21 <t3rmin4t0r>   to reduce memory/code
05:31:21 <fragglet>     thats neat
05:31:37 <fragglet>     well i'll compile it with a standard compile to start off with
05:31:37 <t3rmin4t0r>   I told ya, rhys is a thin client guy ...
05:31:50 <fragglet>     to check that all of the code compile properly for arm
05:31:59 <t3rmin4t0r>   libffi ?
05:32:08 <fragglet>     and then i'll try a tiny compile and try running it
05:32:28 <t3rmin4t0r>   fragglet: the tiny compile has no FS support
05:32:37 <fragglet>     heh well
05:32:37 <t3rmin4t0r>   and there is no tiny mscorlib.dll
05:32:41 <fragglet>     something small then
05:33:00 <t3rmin4t0r>   you might need to write your mscorlib.dll
05:33:07 <t3rmin4t0r>   atleast a *small* implementation
05:33:10 <fragglet>     i dont know if i'll have enough memory to even run this
05:33:22 <t3rmin4t0r>   under 10 Mb
05:33:28 <t3rmin4t0r>   with full mscorlib
05:33:41 <t3rmin4t0r>   which is a feat par excellance
05:33:44 <fragglet>      /home/fraggle/pnet/pnet/engine/cvm_compare.c:74: relocation 
truncated to fit: R_
05:33:50 <fragglet>     ARM_PC24 isnan
................
05:34:44 <fragglet>     its the c library
05:34:48 <fragglet>     i'm using an embedded c library
05:34:58 <t3rmin4t0r>   it does not have this facility ?
05:35:07 <fragglet>     its cut down :)
05:35:25 <t3rmin4t0r>   error or warning ?
05:35:31 <fragglet>     infact it probably has it and i just didnt compile it in
05:35:31 <fragglet>     error
05:35:42 <fragglet>     uclibc doesnt have the isnan function
05:35:52 <t3rmin4t0r>   ok #ifdef over
05:36:03 <fragglet>     my version anyway
05:36:04 <t3rmin4t0r>   how can you check nan ?
05:36:21 *      t3rmin4t0r thinks you can comment it safely ...
05:36:42 <fragglet>     static inline int isnan(double a)
05:36:43 <fragglet>     {
05:36:43 <fragglet>             return 0;
05:36:43 <fragglet>     }
05:36:47 <fragglet>     theres a cheap hack fix
05:36:49 <fragglet>     heheh
05:36:52 <t3rmin4t0r>   hehe
...............
05:42:01 <fragglet>     ../ilasm/ilasm: ../ilasm/ilasm: cannot execute binary file
05:42:03 <fragglet>     haha
05:42:16 <t3rmin4t0r>   why ?
05:42:30 <fragglet>     looks like the build system could need some fixing
05:42:37 <fragglet>     ilasm is an arm executable
05:42:42 <fragglet>     i'm on an intel machine
05:42:46 <t3rmin4t0r>   hehe
05:43:10 <t3rmin4t0r>   well try default ilasm
05:43:27 <fragglet>     no make tried to run it
05:43:45 <t3rmin4t0r>   well not much of a big deal
05:43:50 <fragglet>     hmm can i make a small mscorlib.dll in cscc
05:43:56 <t3rmin4t0r>   yes almost
05:44:12 <t3rmin4t0r>   ask rhys for more details
05:47:48 <fragglet>     -rwxr-xr-x    1 fraggle  fraggle    229376 Mar  2 18:49 
mscorlib.dll
05:47:24 <t3rmin4t0r>   fragglet: so you might be able to compile a *basic* mscorlib
05:47:28 <t3rmin4t0r>   and run helloworld
05:47:34 <fragglet>     yeah maybe
05:48:05 <fragglet>     and its not too big
05:48:06 <t3rmin4t0r>   too large ?
05:48:16 <fragglet>     only 200k
05:48:45 <t3rmin4t0r>   so how much RAM does your system have
05:48:47 <t3rmin4t0r>   4 Mb ?
05:49:34 <t3rmin4t0r>   you need memory to work it on ..
05:49:48 <fragglet>     er
05:49:50 <fragglet>     its 8meg total
05:49:54 <t3rmin4t0r>   ok
05:50:11 <fragglet>     thats including the kernel and the ramdisk with the root fs
05:50:22 <t3rmin4t0r>   ok, so you might have about 2 Mb free
05:50:40 <t3rmin4t0r>   try doing a memprof on pnet
05:50:45 <t3rmin4t0r>   with a helloworld
.......................
05:52:36 <t3rmin4t0r>   fragglet: ilrun runs on 10 kb stack,200 Kb heap for helloworld
05:52:43 <fragglet>     oh wait
05:52:49 <t3rmin4t0r>   ilrun -S 10 -H 200 hello.exe
05:53:18 <fragglet>     -rwxr-xr-x    1 fraggle  fraggle    598264 Jul  5 01:26 ilrun
05:54:14 <t3rmin4t0r>   fragglet: try building with --profile=tiny
....
05:55:14 <fragglet>     what
05:55:20 <t3rmin4t0r>   well recompile from start
05:55:25 <fragglet>     make clean?
05:55:27 <fragglet>     heh
05:55:28 <t3rmin4t0r>   the header files don't change well
05:55:34 <t3rmin4t0r>   with new ./configure
05:55:48 <t3rmin4t0r>   ./configure --with-profile=kernel
05:55:52 <t3rmin4t0r>   and try sizing it
05:55:55 <t3rmin4t0r>   if it doesnot work
05:55:58 <t3rmin4t0r>   try tiny
05:56:15 <t3rmin4t0r>   and mail rhys about issues in crosscompiling
.................
05:56:29 <fragglet>     i have ilrun running
05:56:36 <fragglet>     as in it shows the help text
05:56:36 <t3rmin4t0r>   in your PDA ?
05:56:41 <fragglet>     yeah
05:56:44 <t3rmin4t0r>   ok !!
05:56:50 <fragglet>     one sec i'll get a screenshot
.............
05:56:53 <t3rmin4t0r>   now to proceed to load a new mscorlib.dll
05:56:57 <t3rmin4t0r>   or write one
05:57:26 <fragglet>     i'm not sure i need to
05:57:28 <t3rmin4t0r>   in C# or IL
05:57:38 <t3rmin4t0r>   if you don't have enough memory ie
05:58:32 <t3rmin4t0r>   and if it works 
05:58:36 <t3rmin4t0r>   well .... !!
.....................
05:59:56 <t3rmin4t0r>   now to see if it runs helloworld
06:00:03 <fragglet>     yeah
**********************FRAGGLET TRIES HIS OWN MSCORLIB.DLL************
06:01:22 <fragglet>     hmm
06:01:24 <fragglet>     awww
06:01:38 <fragglet>     Fatal error: System.Security.VerificationException is missing 
from the system library
06:01:42 <t3rmin4t0r>   hehe
06:01:54 <fragglet>     anyone have a recent corlib.dll
06:01:59 <t3rmin4t0r>   get it from CVS
06:02:12 <t3rmin4t0r>   rhys maintains updated versions in CVS
06:02:13 <fragglet>     is there one in cvs
06:02:15 <t3rmin4t0r>   yes
06:02:25 <fragglet>     oh samples/
06:02:28 <t3rmin4t0r>   yeah
06:02:52 *      fragglet downloads
06:03:13 <fragglet>     its on a 115.2k serial lines heh
06:03:27 <t3rmin4t0r>   hehe
06:04:07 <fragglet>     Out of Memory: killed process 546 (ilrun).
06:04:18 <t3rmin4t0r>   hehe
06:04:29 <t3rmin4t0r>   try working out a new mscorlib.dll
06:04:37 <t3rmin4t0r>   or try the -S -H options
06:04:50 <t3rmin4t0r>   or didja build with the full options ?
06:05:15 <fragglet>     i just did a plain build
06:05:34 <t3rmin4t0r>   do a kernel build
06:05:44 <t3rmin4t0r>   this was bound to happen
06:05:47 <t3rmin4t0r>   with a normal build
06:06:06 <t3rmin4t0r>   if possible ask rhys on how to cut down mscorlib.dll
06:06:42 <fragglet>     nice
06:06:52 <fragglet>     i was thinking about working on that for a while
06:06:56 <fragglet>     but never got round to it
..............
06:15:25 <t3rmin4t0r>   and be sure to drop a line if pnet works on the PDA
06:15:33 <t3rmin4t0r>   (or not works ... either way)
06:15:44 <fragglet>     ok sure
06:15:50 <t3rmin4t0r>   so bye for now
06:15:55 <fragglet>     bye

Reply via email to