dotgnu-general
[Top][All Lists]
Advanced

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

Re: [DotGNU]Ml-pnet , status report 04-06-2003


From: Gopal V
Subject: Re: [DotGNU]Ml-pnet , status report 04-06-2003
Date: Wed, 4 Jun 2003 09:41:54 +0530
User-agent: Mutt/1.2.5i

If memory serves me right, Rhys Weatherley wrote:
> On Wednesday 04 June 2003 05:49 am, Gopal V wrote:
> > Hey all,
> >     I've just finished updating the Npgsql (a Managed ADO provider)
> > to ml-pnet , which rounds off my first round of porting libraries.
> > So now you can access Sql databases from Portable.net ..
> 
> Great work Gopal!

SSL , SQL , we're moving along well ;-)

> > Pnet will require its own embedding  , internal calls and other framework
> > changes to this .
> 
> If we can get some details on what this "stub" needs to do, then it shouldn't 
> be too hard to auto-detect winelib in configure and then build an 
> "ilrun-wine" binary to hold it.

Generally speaking this shouldn't be much of a big deal .. but a Wine
binary is a lot less attractive than a true blue VM . But I guess it's
possible :-)

The stub code seems to be just under a thousand lines... but on the 
other hand , this would mean that some of the code will need to be 
linked against Wine instead of being a local binary (ie "gc.dll" instead
of linking in libgc). I'm not sure how big a performance hit this is ,
but I think this will be slower than the stock VM :-(

> > >   with garbage collection disabled as there is a problem using WineLib 
> > > with
> > >   garbage collection enabled
> 
> I thought they'd fixed this.

Hmm... maybe I need a new winelib ? (or somebody needs to update that readme)

The monogc.c in code shows a lot of function pointers and dlsym into 
"gc.dll" (not "libgc.so" !) ...

> Not wasted.  Those compiler bugs wouldn't have been found or fixed otherwise. 
>  
These are not compiler bugs but errors like :-

-               object IAccessible.get_accRole(object childID) {
-                       throw new NotImplementedException ();
+               [IndexerName("accRole")]
+               Object IAccessible.this[Object varChild]
+               {

And since they are using "/nowarn:0114" , I had to add a lot of missing
"override" stuff and ended up generating a script from the error messages
due to sheer volume (s/$2/override $2/) and all this to compile code 
having just NotImplementedException() :-(

Due to "/nowarn:0114" most of their compiled code is plain wrong as well,
because some overrides become non-virtual instance methods ...

Not to mention that Mono's Accessibility.dll is not signature correct 
with pnetlib and there fore had to add a lot of [In] [Out] etc...

And removed a bit of pointer arithmetic (ie (p-q) > 256 stuff) from Pinvoke
return values and replaced it with just 'String' in the pinvoke sig.

You can have that 200 line patch to avoid going through that again !

Generally speaking -- a soul testing experience

> Even when we can't run the code yet, flushing the bugs out of the compiler 
> and pnetlib helps make the system better overall.

Yus, the enum bug got fixed :-)

Gopal
-- 
The difference between insanity and genius is measured by success


reply via email to

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